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