1use gpui::{Action, actions};
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5// If the zed binary doesn't use anything in this crate, it will be optimized away
6// and the actions won't initialize. So we just provide an empty initialization function
7// to be called from main.
8//
9// These may provide relevant context:
10// https://github.com/rust-lang/rust/issues/47384
11// https://github.com/mmastrac/rust-ctor/issues/280
12pub fn init() {}
13
14/// Opens a URL in the system's default web browser.
15#[derive(Clone, PartialEq, Deserialize, JsonSchema, Action)]
16#[action(namespace = zed)]
17#[serde(deny_unknown_fields)]
18pub struct OpenBrowser {
19 pub url: String,
20}
21
22/// Opens a zed:// URL within the application.
23#[derive(Clone, PartialEq, Deserialize, JsonSchema, Action)]
24#[action(namespace = zed)]
25#[serde(deny_unknown_fields)]
26pub struct OpenZedUrl {
27 pub url: String,
28}
29
30/// Opens the keymap to either add a keybinding or change an existing one
31#[derive(PartialEq, Clone, Default, Action, JsonSchema, Serialize, Deserialize)]
32#[action(namespace = zed, no_json, no_register)]
33pub struct ChangeKeybinding {
34 pub action: String,
35}
36
37actions!(
38 zed,
39 [
40 /// Opens the settings editor.
41 #[action(deprecated_aliases = ["zed_actions::OpenSettingsEditor"])]
42 OpenSettings,
43 /// Opens the settings JSON file.
44 #[action(deprecated_aliases = ["zed_actions::OpenSettings"])]
45 OpenSettingsFile,
46 /// Opens project-specific settings.
47 #[action(deprecated_aliases = ["zed_actions::OpenProjectSettings"])]
48 OpenProjectSettings,
49 /// Opens the default keymap file.
50 OpenDefaultKeymap,
51 /// Opens the user keymap file.
52 #[action(deprecated_aliases = ["zed_actions::OpenKeymap"])]
53 OpenKeymapFile,
54 /// Opens the keymap editor.
55 #[action(deprecated_aliases = ["zed_actions::OpenKeymapEditor"])]
56 OpenKeymap,
57 /// Opens account settings.
58 OpenAccountSettings,
59 /// Opens server settings.
60 OpenServerSettings,
61 /// Quits the application.
62 Quit,
63 /// Shows information about Zed.
64 About,
65 /// Opens the documentation website.
66 OpenDocs,
67 /// Views open source licenses.
68 OpenLicenses,
69 /// Opens the telemetry log.
70 OpenTelemetryLog,
71 /// Opens the performance profiler.
72 OpenPerformanceProfiler,
73 /// Opens the onboarding view.
74 OpenOnboarding,
75 /// Shows the auto-update notification for testing.
76 ShowUpdateNotification,
77 ]
78);
79
80#[derive(PartialEq, Clone, Copy, Debug, Deserialize, JsonSchema)]
81#[serde(rename_all = "snake_case")]
82pub enum ExtensionCategoryFilter {
83 Themes,
84 IconThemes,
85 Languages,
86 Grammars,
87 LanguageServers,
88 ContextServers,
89 AgentServers,
90 Snippets,
91 DebugAdapters,
92}
93
94/// Opens the extensions management interface.
95#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
96#[action(namespace = zed)]
97#[serde(deny_unknown_fields)]
98pub struct Extensions {
99 /// Filters the extensions page down to extensions that are in the specified category.
100 #[serde(default)]
101 pub category_filter: Option<ExtensionCategoryFilter>,
102 /// Focuses just the extension with the specified ID.
103 #[serde(default)]
104 pub id: Option<String>,
105}
106
107/// Opens the ACP registry.
108#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
109#[action(namespace = zed)]
110#[serde(deny_unknown_fields)]
111pub struct AcpRegistry;
112
113/// Show call diagnostics and connection quality statistics.
114#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
115#[action(namespace = collab)]
116#[serde(deny_unknown_fields)]
117pub struct ShowCallStats;
118
119/// Decreases the font size in the editor buffer.
120#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
121#[action(namespace = zed)]
122#[serde(deny_unknown_fields)]
123pub struct DecreaseBufferFontSize {
124 #[serde(default)]
125 pub persist: bool,
126}
127
128/// Increases the font size in the editor buffer.
129#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
130#[action(namespace = zed)]
131#[serde(deny_unknown_fields)]
132pub struct IncreaseBufferFontSize {
133 #[serde(default)]
134 pub persist: bool,
135}
136
137/// Opens the settings editor at a specific path.
138#[derive(PartialEq, Clone, Debug, Deserialize, JsonSchema, Action)]
139#[action(namespace = zed)]
140#[serde(deny_unknown_fields)]
141pub struct OpenSettingsAt {
142 /// A path to a specific setting (e.g. `theme.mode`)
143 pub path: String,
144}
145
146/// Resets the buffer font size to the default value.
147#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
148#[action(namespace = zed)]
149#[serde(deny_unknown_fields)]
150pub struct ResetBufferFontSize {
151 #[serde(default)]
152 pub persist: bool,
153}
154
155/// Decreases the font size of the user interface.
156#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
157#[action(namespace = zed)]
158#[serde(deny_unknown_fields)]
159pub struct DecreaseUiFontSize {
160 #[serde(default)]
161 pub persist: bool,
162}
163
164/// Increases the font size of the user interface.
165#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
166#[action(namespace = zed)]
167#[serde(deny_unknown_fields)]
168pub struct IncreaseUiFontSize {
169 #[serde(default)]
170 pub persist: bool,
171}
172
173/// Resets the UI font size to the default value.
174#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
175#[action(namespace = zed)]
176#[serde(deny_unknown_fields)]
177pub struct ResetUiFontSize {
178 #[serde(default)]
179 pub persist: bool,
180}
181
182/// Resets all zoom levels (UI and buffer font sizes, including in the agent panel) to their default values.
183#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
184#[action(namespace = zed)]
185#[serde(deny_unknown_fields)]
186pub struct ResetAllZoom {
187 #[serde(default)]
188 pub persist: bool,
189}
190
191pub mod editor {
192 use gpui::actions;
193 actions!(
194 editor,
195 [
196 /// Moves cursor up.
197 MoveUp,
198 /// Moves cursor down.
199 MoveDown,
200 /// Reveals the current file in the system file manager.
201 RevealInFileManager,
202 ]
203 );
204}
205
206pub mod dev {
207 use gpui::actions;
208
209 actions!(
210 dev,
211 [
212 /// Toggles the developer inspector for debugging UI elements.
213 ToggleInspector
214 ]
215 );
216}
217
218pub mod remote_debug {
219 use gpui::actions;
220
221 actions!(
222 remote_debug,
223 [
224 /// Simulates a disconnection from the remote server for testing purposes.
225 /// This will trigger the reconnection logic.
226 SimulateDisconnect,
227 /// Simulates a timeout/slow connection to the remote server for testing purposes.
228 /// This will cause heartbeat failures and trigger reconnection.
229 SimulateTimeout,
230 /// Simulates a timeout/slow connection to the remote server for testing purposes.
231 /// This will cause heartbeat failures and attempting a reconnection while having exhausted all attempts.
232 SimulateTimeoutExhausted,
233 ]
234 );
235}
236
237pub mod workspace {
238 use gpui::actions;
239
240 actions!(
241 workspace,
242 [
243 #[action(deprecated_aliases = ["editor::CopyPath", "outline_panel::CopyPath", "project_panel::CopyPath"])]
244 CopyPath,
245 #[action(deprecated_aliases = ["editor::CopyRelativePath", "outline_panel::CopyRelativePath", "project_panel::CopyRelativePath"])]
246 CopyRelativePath,
247 /// Opens the selected file with the system's default application.
248 #[action(deprecated_aliases = ["project_panel::OpenWithSystem"])]
249 OpenWithSystem,
250 ]
251 );
252}
253
254pub mod git {
255 use gpui::actions;
256
257 actions!(
258 git,
259 [
260 /// Checks out a different git branch.
261 CheckoutBranch,
262 /// Switches to a different git branch.
263 Switch,
264 /// Selects a different repository.
265 SelectRepo,
266 /// Filter remotes.
267 FilterRemotes,
268 /// Create a git remote.
269 CreateRemote,
270 /// Opens the git branch selector.
271 #[action(deprecated_aliases = ["branches::OpenRecent"])]
272 Branch,
273 /// Opens the git stash selector.
274 ViewStash,
275 /// Opens the git worktree selector.
276 Worktree,
277 /// Creates a pull request for the current branch.
278 CreatePullRequest
279 ]
280 );
281}
282
283pub mod toast {
284 use gpui::actions;
285
286 actions!(
287 toast,
288 [
289 /// Runs the action associated with a toast notification.
290 RunAction
291 ]
292 );
293}
294
295pub mod command_palette {
296 use gpui::actions;
297
298 actions!(
299 command_palette,
300 [
301 /// Toggles the command palette.
302 Toggle,
303 ]
304 );
305}
306
307pub mod project_panel {
308 use gpui::actions;
309
310 actions!(
311 project_panel,
312 [
313 /// Toggles the project panel.
314 Toggle,
315 /// Toggles focus on the project panel.
316 ToggleFocus
317 ]
318 );
319}
320pub mod feedback {
321 use gpui::actions;
322
323 actions!(
324 feedback,
325 [
326 /// Opens email client to send feedback to Zed support.
327 EmailZed,
328 /// Opens the bug report form.
329 FileBugReport,
330 /// Opens the feature request form.
331 RequestFeature
332 ]
333 );
334}
335
336pub mod theme {
337 use gpui::actions;
338
339 actions!(theme, [ToggleMode]);
340}
341
342pub mod theme_selector {
343 use gpui::Action;
344 use schemars::JsonSchema;
345 use serde::Deserialize;
346
347 /// Toggles the theme selector interface.
348 #[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
349 #[action(namespace = theme_selector)]
350 #[serde(deny_unknown_fields)]
351 pub struct Toggle {
352 /// A list of theme names to filter the theme selector down to.
353 pub themes_filter: Option<Vec<String>>,
354 }
355}
356
357pub mod icon_theme_selector {
358 use gpui::Action;
359 use schemars::JsonSchema;
360 use serde::Deserialize;
361
362 /// Toggles the icon theme selector interface.
363 #[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
364 #[action(namespace = icon_theme_selector)]
365 #[serde(deny_unknown_fields)]
366 pub struct Toggle {
367 /// A list of icon theme names to filter the theme selector down to.
368 pub themes_filter: Option<Vec<String>>,
369 }
370}
371
372pub mod search {
373 use gpui::actions;
374 actions!(
375 search,
376 [
377 /// Toggles searching in ignored files.
378 ToggleIncludeIgnored
379 ]
380 );
381}
382pub mod buffer_search {
383 use gpui::{Action, actions};
384 use schemars::JsonSchema;
385 use serde::Deserialize;
386
387 /// Opens the buffer search interface with the specified configuration.
388 #[derive(PartialEq, Clone, Deserialize, JsonSchema, Action)]
389 #[action(namespace = buffer_search)]
390 #[serde(deny_unknown_fields)]
391 pub struct Deploy {
392 #[serde(default = "util::serde::default_true")]
393 pub focus: bool,
394 #[serde(default)]
395 pub replace_enabled: bool,
396 #[serde(default)]
397 pub selection_search_enabled: bool,
398 }
399
400 impl Deploy {
401 pub fn find() -> Self {
402 Self {
403 focus: true,
404 replace_enabled: false,
405 selection_search_enabled: false,
406 }
407 }
408
409 pub fn replace() -> Self {
410 Self {
411 focus: true,
412 replace_enabled: true,
413 selection_search_enabled: false,
414 }
415 }
416 }
417
418 actions!(
419 buffer_search,
420 [
421 /// Deploys the search and replace interface.
422 DeployReplace,
423 /// Dismisses the search bar.
424 Dismiss,
425 /// Focuses back on the editor.
426 FocusEditor
427 ]
428 );
429}
430pub mod settings_profile_selector {
431 use gpui::Action;
432 use schemars::JsonSchema;
433 use serde::Deserialize;
434
435 #[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
436 #[action(namespace = settings_profile_selector)]
437 pub struct Toggle;
438}
439
440pub mod agent {
441 use gpui::{Action, SharedString, actions};
442 use schemars::JsonSchema;
443 use serde::Deserialize;
444
445 actions!(
446 agent,
447 [
448 /// Opens the agent settings panel.
449 #[action(deprecated_aliases = ["agent::OpenConfiguration"])]
450 OpenSettings,
451 /// Opens the agent onboarding modal.
452 OpenOnboardingModal,
453 /// Resets the agent onboarding state.
454 ResetOnboarding,
455 /// Starts a chat conversation with the agent.
456 Chat,
457 /// Toggles the language model selector dropdown.
458 #[action(deprecated_aliases = ["assistant::ToggleModelSelector", "assistant2::ToggleModelSelector"])]
459 ToggleModelSelector,
460 /// Triggers re-authentication on Gemini
461 ReauthenticateAgent,
462 /// Add the current selection as context for threads in the agent panel.
463 #[action(deprecated_aliases = ["assistant::QuoteSelection", "agent::QuoteSelection"])]
464 AddSelectionToThread,
465 /// Resets the agent panel zoom levels (agent UI and buffer font sizes).
466 ResetAgentZoom,
467 /// Pastes clipboard content without any formatting.
468 PasteRaw,
469 ]
470 );
471
472 /// Opens a new agent thread with the provided branch diff for review.
473 #[derive(Clone, PartialEq, Deserialize, JsonSchema, Action)]
474 #[action(namespace = agent)]
475 #[serde(deny_unknown_fields)]
476 pub struct ReviewBranchDiff {
477 /// The full text of the diff to review.
478 pub diff_text: SharedString,
479 /// The base ref that the diff was computed against (e.g. "main").
480 pub base_ref: SharedString,
481 }
482
483 /// A single merge conflict region extracted from a file.
484 #[derive(Clone, Debug, PartialEq, Deserialize, JsonSchema)]
485 pub struct ConflictContent {
486 pub file_path: String,
487 pub conflict_text: String,
488 pub ours_branch_name: String,
489 pub theirs_branch_name: String,
490 }
491
492 /// Opens a new agent thread to resolve specific merge conflicts.
493 #[derive(Clone, PartialEq, Deserialize, JsonSchema, Action)]
494 #[action(namespace = agent)]
495 #[serde(deny_unknown_fields)]
496 pub struct ResolveConflictsWithAgent {
497 /// Individual conflicts with their full text.
498 pub conflicts: Vec<ConflictContent>,
499 }
500
501 /// Opens a new agent thread to resolve merge conflicts in the given file paths.
502 #[derive(Clone, PartialEq, Deserialize, JsonSchema, Action)]
503 #[action(namespace = agent)]
504 #[serde(deny_unknown_fields)]
505 pub struct ResolveConflictedFilesWithAgent {
506 /// File paths with unresolved conflicts (for project-wide resolution).
507 pub conflicted_file_paths: Vec<String>,
508 }
509}
510
511pub mod assistant {
512 use gpui::{Action, actions};
513 use schemars::JsonSchema;
514 use serde::Deserialize;
515 use uuid::Uuid;
516
517 actions!(
518 agent,
519 [
520 /// Toggles the agent panel.
521 Toggle,
522 #[action(deprecated_aliases = ["assistant::ToggleFocus"])]
523 ToggleFocus,
524 FocusAgent,
525 ]
526 );
527
528 /// Opens the rules library for managing agent rules and prompts.
529 #[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
530 #[action(namespace = agent, deprecated_aliases = ["assistant::OpenRulesLibrary", "assistant::DeployPromptLibrary"])]
531 #[serde(deny_unknown_fields)]
532 pub struct OpenRulesLibrary {
533 #[serde(skip)]
534 pub prompt_to_select: Option<Uuid>,
535 }
536
537 /// Deploys the assistant interface with the specified configuration.
538 #[derive(Clone, Default, Deserialize, PartialEq, JsonSchema, Action)]
539 #[action(namespace = assistant)]
540 #[serde(deny_unknown_fields)]
541 pub struct InlineAssist {
542 pub prompt: Option<String>,
543 }
544}
545
546/// Opens the recent projects interface.
547#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
548#[action(namespace = projects)]
549#[serde(deny_unknown_fields)]
550pub struct OpenRecent {
551 #[serde(default)]
552 pub create_new_window: bool,
553}
554
555/// Creates a project from a selected template.
556#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
557#[action(namespace = projects)]
558#[serde(deny_unknown_fields)]
559pub struct OpenRemote {
560 #[serde(default)]
561 pub from_existing_connection: bool,
562 #[serde(default)]
563 pub create_new_window: bool,
564}
565
566/// Opens the dev container connection modal.
567#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
568#[action(namespace = projects)]
569#[serde(deny_unknown_fields)]
570pub struct OpenDevContainer;
571
572/// Where to spawn the task in the UI.
573#[derive(Default, Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
574#[serde(rename_all = "snake_case")]
575pub enum RevealTarget {
576 /// In the central pane group, "main" editor area.
577 Center,
578 /// In the terminal dock, "regular" terminal items' place.
579 #[default]
580 Dock,
581}
582
583/// Spawns a task with name or opens tasks modal.
584#[derive(Debug, PartialEq, Clone, Deserialize, JsonSchema, Action)]
585#[action(namespace = task)]
586#[serde(untagged)]
587pub enum Spawn {
588 /// Spawns a task by the name given.
589 ByName {
590 task_name: String,
591 #[serde(default)]
592 reveal_target: Option<RevealTarget>,
593 },
594 /// Spawns a task by the tag given.
595 ByTag {
596 task_tag: String,
597 #[serde(default)]
598 reveal_target: Option<RevealTarget>,
599 },
600 /// Spawns a task via modal's selection.
601 ViaModal {
602 /// Selected task's `reveal_target` property override.
603 #[serde(default)]
604 reveal_target: Option<RevealTarget>,
605 },
606}
607
608impl Spawn {
609 pub fn modal() -> Self {
610 Self::ViaModal {
611 reveal_target: None,
612 }
613 }
614}
615
616/// Reruns the last task.
617#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
618#[action(namespace = task)]
619#[serde(deny_unknown_fields)]
620pub struct Rerun {
621 /// Controls whether the task context is reevaluated prior to execution of a task.
622 /// If it is not, environment variables such as ZED_COLUMN, ZED_FILE are gonna be the same as in the last execution of a task
623 /// If it is, these variables will be updated to reflect current state of editor at the time task::Rerun is executed.
624 /// default: false
625 #[serde(default)]
626 pub reevaluate_context: bool,
627 /// Overrides `allow_concurrent_runs` property of the task being reran.
628 /// Default: null
629 #[serde(default)]
630 pub allow_concurrent_runs: Option<bool>,
631 /// Overrides `use_new_terminal` property of the task being reran.
632 /// Default: null
633 #[serde(default)]
634 pub use_new_terminal: Option<bool>,
635
636 /// If present, rerun the task with this ID, otherwise rerun the last task.
637 #[serde(skip)]
638 pub task_id: Option<String>,
639}
640
641pub mod outline {
642 use std::sync::OnceLock;
643
644 use gpui::{AnyView, App, Window, actions};
645
646 actions!(
647 outline,
648 [
649 #[action(name = "Toggle")]
650 ToggleOutline
651 ]
652 );
653 /// A pointer to outline::toggle function, exposed here to sewer the breadcrumbs <-> outline dependency.
654 pub static TOGGLE_OUTLINE: OnceLock<fn(AnyView, &mut Window, &mut App)> = OnceLock::new();
655}
656
657actions!(
658 zed_predict_onboarding,
659 [
660 /// Opens the Zed Predict onboarding modal.
661 OpenZedPredictOnboarding
662 ]
663);
664actions!(
665 git_onboarding,
666 [
667 /// Opens the git integration onboarding modal.
668 OpenGitIntegrationOnboarding
669 ]
670);
671
672pub mod debug_panel {
673 use gpui::actions;
674 actions!(
675 debug_panel,
676 [
677 /// Toggles the debug panel.
678 Toggle,
679 /// Toggles focus on the debug panel.
680 ToggleFocus
681 ]
682 );
683}
684
685actions!(
686 debugger,
687 [
688 /// Toggles the enabled state of a breakpoint.
689 ToggleEnableBreakpoint,
690 /// Removes a breakpoint.
691 UnsetBreakpoint,
692 /// Opens the project debug tasks configuration.
693 OpenProjectDebugTasks,
694 ]
695);
696
697pub mod vim {
698 use gpui::actions;
699
700 actions!(
701 vim,
702 [
703 /// Opens the default keymap file.
704 OpenDefaultKeymap
705 ]
706 );
707}
708
709#[derive(Debug, Clone, PartialEq, Eq, Hash)]
710pub struct WslConnectionOptions {
711 pub distro_name: String,
712 pub user: Option<String>,
713}
714
715#[cfg(target_os = "windows")]
716pub mod wsl_actions {
717 use gpui::Action;
718 use schemars::JsonSchema;
719 use serde::Deserialize;
720
721 /// Opens a folder inside Wsl.
722 #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
723 #[action(namespace = projects)]
724 #[serde(deny_unknown_fields)]
725 pub struct OpenFolderInWsl {
726 #[serde(default)]
727 pub create_new_window: bool,
728 }
729
730 /// Open a wsl distro.
731 #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
732 #[action(namespace = projects)]
733 #[serde(deny_unknown_fields)]
734 pub struct OpenWsl {
735 #[serde(default)]
736 pub create_new_window: bool,
737 }
738}
739
740pub mod preview {
741 pub mod markdown {
742 use gpui::actions;
743
744 actions!(
745 markdown,
746 [
747 /// Opens a markdown preview for the current file.
748 OpenPreview,
749 /// Opens a markdown preview in a split pane.
750 OpenPreviewToTheSide,
751 ]
752 );
753 }
754
755 pub mod svg {
756 use gpui::actions;
757
758 actions!(
759 svg,
760 [
761 /// Opens an SVG preview for the current file.
762 OpenPreview,
763 /// Opens an SVG preview in a split pane.
764 OpenPreviewToTheSide,
765 ]
766 );
767 }
768}
769
770pub mod agents_sidebar {
771 use gpui::{Action, actions};
772 use schemars::JsonSchema;
773 use serde::Deserialize;
774
775 /// Toggles the thread switcher popup when the sidebar is focused.
776 #[derive(PartialEq, Clone, Deserialize, JsonSchema, Default, Action)]
777 #[action(namespace = agents_sidebar)]
778 #[serde(deny_unknown_fields)]
779 pub struct ToggleThreadSwitcher {
780 #[serde(default)]
781 pub select_last: bool,
782 }
783
784 actions!(
785 agents_sidebar,
786 [
787 /// Moves focus to the sidebar's search/filter editor.
788 FocusSidebarFilter,
789 ]
790 );
791}
792
793pub mod notebook {
794 use gpui::actions;
795
796 actions!(
797 notebook,
798 [
799 /// Opens a Jupyter notebook file.
800 OpenNotebook,
801 /// Runs all cells in the notebook.
802 RunAll,
803 /// Runs the current cell and stays on it.
804 Run,
805 /// Runs the current cell and advances to the next cell.
806 RunAndAdvance,
807 /// Clears all cell outputs.
808 ClearOutputs,
809 /// Moves the current cell up.
810 MoveCellUp,
811 /// Moves the current cell down.
812 MoveCellDown,
813 /// Adds a new markdown cell.
814 AddMarkdownBlock,
815 /// Adds a new code cell.
816 AddCodeBlock,
817 /// Restarts the kernel.
818 RestartKernel,
819 /// Interrupts the current execution.
820 InterruptKernel,
821 /// Move down in cells.
822 NotebookMoveDown,
823 /// Move up in cells.
824 NotebookMoveUp,
825 /// Enters the current cell's editor (edit mode).
826 EnterEditMode,
827 /// Exits the cell editor and returns to cell command mode.
828 EnterCommandMode,
829 ]
830 );
831}