1//! This module contains all actions supported by [`Editor`].
2use super::*;
3use gpui::{Action, actions};
4use project::project_settings::GoToDiagnosticSeverityFilter;
5use schemars::JsonSchema;
6use util::serde::default_true;
7
8/// Selects the next occurrence of the current selection.
9#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
10#[action(namespace = editor)]
11#[serde(deny_unknown_fields)]
12pub struct SelectNext {
13 #[serde(default)]
14 pub replace_newest: bool,
15}
16
17/// Selects the previous occurrence of the current selection.
18#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
19#[action(namespace = editor)]
20#[serde(deny_unknown_fields)]
21pub struct SelectPrevious {
22 #[serde(default)]
23 pub replace_newest: bool,
24}
25
26/// Moves the cursor to the beginning of the current line.
27#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
28#[action(namespace = editor)]
29#[serde(deny_unknown_fields)]
30pub struct MoveToBeginningOfLine {
31 #[serde(default = "default_true")]
32 pub stop_at_soft_wraps: bool,
33 #[serde(default)]
34 pub stop_at_indent: bool,
35}
36
37/// Selects from the cursor to the beginning of the current line.
38#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
39#[action(namespace = editor)]
40#[serde(deny_unknown_fields)]
41pub struct SelectToBeginningOfLine {
42 #[serde(default)]
43 pub(super) stop_at_soft_wraps: bool,
44 #[serde(default)]
45 pub stop_at_indent: bool,
46}
47
48/// Deletes from the cursor to the beginning of the current line.
49#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
50#[action(namespace = editor)]
51#[serde(deny_unknown_fields)]
52pub struct DeleteToBeginningOfLine {
53 #[serde(default)]
54 pub(super) stop_at_indent: bool,
55}
56
57/// Moves the cursor up by one page.
58#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
59#[action(namespace = editor)]
60#[serde(deny_unknown_fields)]
61pub struct MovePageUp {
62 #[serde(default)]
63 pub(super) center_cursor: bool,
64}
65
66/// Moves the cursor down by one page.
67#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
68#[action(namespace = editor)]
69#[serde(deny_unknown_fields)]
70pub struct MovePageDown {
71 #[serde(default)]
72 pub(super) center_cursor: bool,
73}
74
75/// Moves the cursor to the end of the current line.
76#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
77#[action(namespace = editor)]
78#[serde(deny_unknown_fields)]
79pub struct MoveToEndOfLine {
80 #[serde(default = "default_true")]
81 pub stop_at_soft_wraps: bool,
82}
83
84/// Selects from the cursor to the end of the current line.
85#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
86#[action(namespace = editor)]
87#[serde(deny_unknown_fields)]
88pub struct SelectToEndOfLine {
89 #[serde(default)]
90 pub(super) stop_at_soft_wraps: bool,
91}
92
93/// Toggles the display of available code actions at the cursor position.
94#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
95#[action(namespace = editor)]
96#[serde(deny_unknown_fields)]
97pub struct ToggleCodeActions {
98 // Source from which the action was deployed.
99 #[serde(default)]
100 #[serde(skip)]
101 pub deployed_from: Option<CodeActionSource>,
102 // Run first available task if there is only one.
103 #[serde(default)]
104 #[serde(skip)]
105 pub quick_launch: bool,
106}
107
108#[derive(PartialEq, Clone, Debug)]
109pub enum CodeActionSource {
110 Indicator(DisplayRow),
111 RunMenu(DisplayRow),
112 QuickActionBar,
113}
114
115/// Confirms and accepts the currently selected completion suggestion.
116#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
117#[action(namespace = editor)]
118#[serde(deny_unknown_fields)]
119pub struct ConfirmCompletion {
120 #[serde(default)]
121 pub item_ix: Option<usize>,
122}
123
124/// Composes multiple completion suggestions into a single completion.
125#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
126#[action(namespace = editor)]
127#[serde(deny_unknown_fields)]
128pub struct ComposeCompletion {
129 #[serde(default)]
130 pub item_ix: Option<usize>,
131}
132
133/// Confirms and applies the currently selected code action.
134#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
135#[action(namespace = editor)]
136#[serde(deny_unknown_fields)]
137pub struct ConfirmCodeAction {
138 #[serde(default)]
139 pub item_ix: Option<usize>,
140}
141
142/// Toggles comment markers for the selected lines.
143#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
144#[action(namespace = editor)]
145#[serde(deny_unknown_fields)]
146pub struct ToggleComments {
147 #[serde(default)]
148 pub advance_downwards: bool,
149 #[serde(default)]
150 pub ignore_indent: bool,
151}
152
153/// Moves the cursor up by a specified number of lines.
154#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
155#[action(namespace = editor)]
156#[serde(deny_unknown_fields)]
157pub struct MoveUpByLines {
158 #[serde(default)]
159 pub(super) lines: u32,
160}
161
162/// Moves the cursor down by a specified number of lines.
163#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
164#[action(namespace = editor)]
165#[serde(deny_unknown_fields)]
166pub struct MoveDownByLines {
167 #[serde(default)]
168 pub(super) lines: u32,
169}
170
171/// Extends selection up by a specified number of lines.
172#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
173#[action(namespace = editor)]
174#[serde(deny_unknown_fields)]
175pub struct SelectUpByLines {
176 #[serde(default)]
177 pub(super) lines: u32,
178}
179
180/// Extends selection down by a specified number of lines.
181#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
182#[action(namespace = editor)]
183#[serde(deny_unknown_fields)]
184pub struct SelectDownByLines {
185 #[serde(default)]
186 pub(super) lines: u32,
187}
188
189/// Expands all excerpts in the editor.
190#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
191#[action(namespace = editor)]
192#[serde(deny_unknown_fields)]
193pub struct ExpandExcerpts {
194 #[serde(default)]
195 pub(super) lines: u32,
196}
197
198/// Expands excerpts above the current position.
199#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
200#[action(namespace = editor)]
201#[serde(deny_unknown_fields)]
202pub struct ExpandExcerptsUp {
203 #[serde(default)]
204 pub(super) lines: u32,
205}
206
207/// Expands excerpts below the current position.
208#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
209#[action(namespace = editor)]
210#[serde(deny_unknown_fields)]
211pub struct ExpandExcerptsDown {
212 #[serde(default)]
213 pub(super) lines: u32,
214}
215
216/// Shows code completion suggestions at the cursor position.
217#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
218#[action(namespace = editor)]
219#[serde(deny_unknown_fields)]
220pub struct ShowCompletions {
221 #[serde(default)]
222 pub(super) trigger: Option<String>,
223}
224
225/// Handles text input in the editor.
226#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
227#[action(namespace = editor)]
228pub struct HandleInput(pub String);
229
230/// Deletes from the cursor to the end of the next word.
231#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
232#[action(namespace = editor)]
233#[serde(deny_unknown_fields)]
234pub struct DeleteToNextWordEnd {
235 #[serde(default)]
236 pub ignore_newlines: bool,
237}
238
239/// Deletes from the cursor to the start of the previous word.
240#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
241#[action(namespace = editor)]
242#[serde(deny_unknown_fields)]
243pub struct DeleteToPreviousWordStart {
244 #[serde(default)]
245 pub ignore_newlines: bool,
246}
247
248/// Folds all code blocks at the specified indentation level.
249#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
250#[action(namespace = editor)]
251pub struct FoldAtLevel(pub u32);
252
253/// Spawns the nearest available task from the current cursor position.
254#[derive(PartialEq, Clone, Deserialize, Default, JsonSchema, Action)]
255#[action(namespace = editor)]
256#[serde(deny_unknown_fields)]
257pub struct SpawnNearestTask {
258 #[serde(default)]
259 pub reveal: task::RevealStrategy,
260}
261
262#[derive(Clone, PartialEq, Action)]
263#[action(no_json, no_register)]
264pub struct DiffClipboardWithSelectionData {
265 pub clipboard_text: String,
266 pub editor: Entity<Editor>,
267}
268
269#[derive(Debug, PartialEq, Eq, Clone, Copy, Deserialize, Default)]
270pub enum UuidVersion {
271 #[default]
272 V4,
273 V7,
274}
275
276/// Goes to the next diagnostic in the file.
277#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
278#[action(namespace = editor)]
279#[serde(deny_unknown_fields)]
280pub struct GoToDiagnostic {
281 #[serde(default)]
282 pub severity: GoToDiagnosticSeverityFilter,
283}
284
285/// Goes to the previous diagnostic in the file.
286#[derive(PartialEq, Clone, Default, Debug, Deserialize, JsonSchema, Action)]
287#[action(namespace = editor)]
288#[serde(deny_unknown_fields)]
289pub struct GoToPreviousDiagnostic {
290 #[serde(default)]
291 pub severity: GoToDiagnosticSeverityFilter,
292}
293
294actions!(
295 debugger,
296 [
297 /// Runs program execution to the current cursor position.
298 RunToCursor,
299 /// Evaluates the selected text in the debugger context.
300 EvaluateSelectedText
301 ]
302);
303
304actions!(
305 go_to_line,
306 [
307 /// Toggles the go to line dialog.
308 #[action(name = "Toggle")]
309 ToggleGoToLine
310 ]
311);
312
313actions!(
314 editor,
315 [
316 /// Accepts the full edit prediction.
317 AcceptEditPrediction,
318 /// Accepts a partial Copilot suggestion.
319 AcceptPartialCopilotSuggestion,
320 /// Accepts a partial edit prediction.
321 AcceptPartialEditPrediction,
322 /// Adds a cursor above the current selection.
323 AddSelectionAbove,
324 /// Adds a cursor below the current selection.
325 AddSelectionBelow,
326 /// Applies all diff hunks in the editor.
327 ApplyAllDiffHunks,
328 /// Applies the diff hunk at the current position.
329 ApplyDiffHunk,
330 /// Deletes the character before the cursor.
331 Backspace,
332 /// Shows git blame information for the current line.
333 BlameHover,
334 /// Cancels the current operation.
335 Cancel,
336 /// Cancels the running flycheck operation.
337 CancelFlycheck,
338 /// Cancels pending language server work.
339 CancelLanguageServerWork,
340 /// Clears flycheck results.
341 ClearFlycheck,
342 /// Confirms the rename operation.
343 ConfirmRename,
344 /// Confirms completion by inserting at cursor.
345 ConfirmCompletionInsert,
346 /// Confirms completion by replacing existing text.
347 ConfirmCompletionReplace,
348 /// Navigates to the first item in the context menu.
349 ContextMenuFirst,
350 /// Navigates to the last item in the context menu.
351 ContextMenuLast,
352 /// Navigates to the next item in the context menu.
353 ContextMenuNext,
354 /// Navigates to the previous item in the context menu.
355 ContextMenuPrevious,
356 /// Converts indentation from tabs to spaces.
357 ConvertIndentationToSpaces,
358 /// Converts indentation from spaces to tabs.
359 ConvertIndentationToTabs,
360 /// Converts selected text to kebab-case.
361 ConvertToKebabCase,
362 /// Converts selected text to lowerCamelCase.
363 ConvertToLowerCamelCase,
364 /// Converts selected text to lowercase.
365 ConvertToLowerCase,
366 /// Toggles the case of selected text.
367 ConvertToOppositeCase,
368 /// Converts selected text to sentence case.
369 ConvertToSentenceCase,
370 /// Converts selected text to snake_case.
371 ConvertToSnakeCase,
372 /// Converts selected text to Title Case.
373 ConvertToTitleCase,
374 /// Converts selected text to UpperCamelCase.
375 ConvertToUpperCamelCase,
376 /// Converts selected text to UPPERCASE.
377 ConvertToUpperCase,
378 /// Applies ROT13 cipher to selected text.
379 ConvertToRot13,
380 /// Applies ROT47 cipher to selected text.
381 ConvertToRot47,
382 /// Copies selected text to the clipboard.
383 Copy,
384 /// Copies selected text to the clipboard with leading/trailing whitespace trimmed.
385 CopyAndTrim,
386 /// Copies the current file location to the clipboard.
387 CopyFileLocation,
388 /// Copies the highlighted text as JSON.
389 CopyHighlightJson,
390 /// Copies the current file name to the clipboard.
391 CopyFileName,
392 /// Copies the file name without extension to the clipboard.
393 CopyFileNameWithoutExtension,
394 /// Copies a permalink to the current line.
395 CopyPermalinkToLine,
396 /// Cuts selected text to the clipboard.
397 Cut,
398 /// Cuts from cursor to end of line.
399 CutToEndOfLine,
400 /// Deletes the character after the cursor.
401 Delete,
402 /// Deletes the current line.
403 DeleteLine,
404 /// Deletes from cursor to end of line.
405 DeleteToEndOfLine,
406 /// Deletes to the end of the next subword.
407 DeleteToNextSubwordEnd,
408 /// Deletes to the start of the previous subword.
409 DeleteToPreviousSubwordStart,
410 /// Diffs the text stored in the clipboard against the current selection.
411 DiffClipboardWithSelection,
412 /// Displays names of all active cursors.
413 DisplayCursorNames,
414 /// Duplicates the current line below.
415 DuplicateLineDown,
416 /// Duplicates the current line above.
417 DuplicateLineUp,
418 /// Duplicates the current selection.
419 DuplicateSelection,
420 /// Expands all diff hunks in the editor.
421 #[action(deprecated_aliases = ["editor::ExpandAllHunkDiffs"])]
422 ExpandAllDiffHunks,
423 /// Expands macros recursively at cursor position.
424 ExpandMacroRecursively,
425 /// Finds all references to the symbol at cursor.
426 FindAllReferences,
427 /// Finds the next match in the search.
428 FindNextMatch,
429 /// Finds the previous match in the search.
430 FindPreviousMatch,
431 /// Folds the current code block.
432 Fold,
433 /// Folds all foldable regions in the editor.
434 FoldAll,
435 /// Folds all function bodies in the editor.
436 FoldFunctionBodies,
437 /// Folds the current code block and all its children.
438 FoldRecursive,
439 /// Folds the selected ranges.
440 FoldSelectedRanges,
441 /// Toggles focus back to the last active buffer.
442 ToggleFocus,
443 /// Toggles folding at the current position.
444 ToggleFold,
445 /// Toggles recursive folding at the current position.
446 ToggleFoldRecursive,
447 /// Toggles all folds in a buffer or all excerpts in multibuffer.
448 ToggleFoldAll,
449 /// Formats the entire document.
450 Format,
451 /// Formats only the selected text.
452 FormatSelections,
453 /// Goes to the declaration of the symbol at cursor.
454 GoToDeclaration,
455 /// Goes to declaration in a split pane.
456 GoToDeclarationSplit,
457 /// Goes to the definition of the symbol at cursor.
458 GoToDefinition,
459 /// Goes to definition in a split pane.
460 GoToDefinitionSplit,
461 /// Goes to the next diff hunk.
462 GoToHunk,
463 /// Goes to the previous diff hunk.
464 GoToPreviousHunk,
465 /// Goes to the implementation of the symbol at cursor.
466 GoToImplementation,
467 /// Goes to implementation in a split pane.
468 GoToImplementationSplit,
469 /// Goes to the next change in the file.
470 GoToNextChange,
471 /// Goes to the parent module of the current file.
472 GoToParentModule,
473 /// Goes to the previous change in the file.
474 GoToPreviousChange,
475 /// Goes to the type definition of the symbol at cursor.
476 GoToTypeDefinition,
477 /// Goes to type definition in a split pane.
478 GoToTypeDefinitionSplit,
479 /// Scrolls down by half a page.
480 HalfPageDown,
481 /// Scrolls up by half a page.
482 HalfPageUp,
483 /// Shows hover information for the symbol at cursor.
484 Hover,
485 /// Increases indentation of selected lines.
486 Indent,
487 /// Inserts a UUID v4 at cursor position.
488 InsertUuidV4,
489 /// Inserts a UUID v7 at cursor position.
490 InsertUuidV7,
491 /// Joins the current line with the next line.
492 JoinLines,
493 /// Cuts to kill ring (Emacs-style).
494 KillRingCut,
495 /// Yanks from kill ring (Emacs-style).
496 KillRingYank,
497 /// Moves cursor down one line.
498 LineDown,
499 /// Moves cursor up one line.
500 LineUp,
501 /// Moves cursor down.
502 MoveDown,
503 /// Moves cursor left.
504 MoveLeft,
505 /// Moves the current line down.
506 MoveLineDown,
507 /// Moves the current line up.
508 MoveLineUp,
509 /// Moves cursor right.
510 MoveRight,
511 /// Moves cursor to the beginning of the document.
512 MoveToBeginning,
513 /// Moves cursor to the enclosing bracket.
514 MoveToEnclosingBracket,
515 /// Moves cursor to the end of the document.
516 MoveToEnd,
517 /// Moves cursor to the end of the paragraph.
518 MoveToEndOfParagraph,
519 /// Moves cursor to the end of the next subword.
520 MoveToNextSubwordEnd,
521 /// Moves cursor to the end of the next word.
522 MoveToNextWordEnd,
523 /// Moves cursor to the start of the previous subword.
524 MoveToPreviousSubwordStart,
525 /// Moves cursor to the start of the previous word.
526 MoveToPreviousWordStart,
527 /// Moves cursor to the start of the paragraph.
528 MoveToStartOfParagraph,
529 /// Moves cursor to the start of the current excerpt.
530 MoveToStartOfExcerpt,
531 /// Moves cursor to the start of the next excerpt.
532 MoveToStartOfNextExcerpt,
533 /// Moves cursor to the end of the current excerpt.
534 MoveToEndOfExcerpt,
535 /// Moves cursor to the end of the previous excerpt.
536 MoveToEndOfPreviousExcerpt,
537 /// Moves cursor up.
538 MoveUp,
539 /// Inserts a new line and moves cursor to it.
540 Newline,
541 /// Inserts a new line above the current line.
542 NewlineAbove,
543 /// Inserts a new line below the current line.
544 NewlineBelow,
545 /// Navigates to the next edit prediction.
546 NextEditPrediction,
547 /// Scrolls to the next screen.
548 NextScreen,
549 /// Opens the context menu at cursor position.
550 OpenContextMenu,
551 /// Opens excerpts from the current file.
552 OpenExcerpts,
553 /// Opens excerpts in a split pane.
554 OpenExcerptsSplit,
555 /// Opens the proposed changes editor.
556 OpenProposedChangesEditor,
557 /// Opens documentation for the symbol at cursor.
558 OpenDocs,
559 /// Opens a permalink to the current line.
560 OpenPermalinkToLine,
561 /// Opens the file whose name is selected in the editor.
562 #[action(deprecated_aliases = ["editor::OpenFile"])]
563 OpenSelectedFilename,
564 /// Opens all selections in a multibuffer.
565 OpenSelectionsInMultibuffer,
566 /// Opens the URL at cursor position.
567 OpenUrl,
568 /// Organizes import statements.
569 OrganizeImports,
570 /// Decreases indentation of selected lines.
571 Outdent,
572 /// Automatically adjusts indentation based on context.
573 AutoIndent,
574 /// Scrolls down by one page.
575 PageDown,
576 /// Scrolls up by one page.
577 PageUp,
578 /// Pastes from clipboard.
579 Paste,
580 /// Navigates to the previous edit prediction.
581 PreviousEditPrediction,
582 /// Redoes the last undone edit.
583 Redo,
584 /// Redoes the last selection change.
585 RedoSelection,
586 /// Renames the symbol at cursor.
587 Rename,
588 /// Restarts the language server for the current file.
589 RestartLanguageServer,
590 /// Reveals the current file in the system file manager.
591 RevealInFileManager,
592 /// Reverses the order of selected lines.
593 ReverseLines,
594 /// Reloads the file from disk.
595 ReloadFile,
596 /// Rewraps text to fit within the preferred line length.
597 Rewrap,
598 /// Runs flycheck diagnostics.
599 RunFlycheck,
600 /// Scrolls the cursor to the bottom of the viewport.
601 ScrollCursorBottom,
602 /// Scrolls the cursor to the center of the viewport.
603 ScrollCursorCenter,
604 /// Cycles cursor position between center, top, and bottom.
605 ScrollCursorCenterTopBottom,
606 /// Scrolls the cursor to the top of the viewport.
607 ScrollCursorTop,
608 /// Selects all text in the editor.
609 SelectAll,
610 /// Selects all matches of the current selection.
611 SelectAllMatches,
612 /// Selects to the start of the current excerpt.
613 SelectToStartOfExcerpt,
614 /// Selects to the start of the next excerpt.
615 SelectToStartOfNextExcerpt,
616 /// Selects to the end of the current excerpt.
617 SelectToEndOfExcerpt,
618 /// Selects to the end of the previous excerpt.
619 SelectToEndOfPreviousExcerpt,
620 /// Extends selection down.
621 SelectDown,
622 /// Selects the enclosing symbol.
623 SelectEnclosingSymbol,
624 /// Selects the next larger syntax node.
625 SelectLargerSyntaxNode,
626 /// Extends selection left.
627 SelectLeft,
628 /// Selects the current line.
629 SelectLine,
630 /// Extends selection down by one page.
631 SelectPageDown,
632 /// Extends selection up by one page.
633 SelectPageUp,
634 /// Extends selection right.
635 SelectRight,
636 /// Selects the next smaller syntax node.
637 SelectSmallerSyntaxNode,
638 /// Selects to the beginning of the document.
639 SelectToBeginning,
640 /// Selects to the end of the document.
641 SelectToEnd,
642 /// Selects to the end of the paragraph.
643 SelectToEndOfParagraph,
644 /// Selects to the end of the next subword.
645 SelectToNextSubwordEnd,
646 /// Selects to the end of the next word.
647 SelectToNextWordEnd,
648 /// Selects to the start of the previous subword.
649 SelectToPreviousSubwordStart,
650 /// Selects to the start of the previous word.
651 SelectToPreviousWordStart,
652 /// Selects to the start of the paragraph.
653 SelectToStartOfParagraph,
654 /// Extends selection up.
655 SelectUp,
656 /// Shows the system character palette.
657 ShowCharacterPalette,
658 /// Shows edit prediction at cursor.
659 ShowEditPrediction,
660 /// Shows signature help for the current function.
661 ShowSignatureHelp,
662 /// Shows word completions.
663 ShowWordCompletions,
664 /// Randomly shuffles selected lines.
665 ShuffleLines,
666 /// Navigates to the next signature in the signature help popup.
667 SignatureHelpNext,
668 /// Navigates to the previous signature in the signature help popup.
669 SignatureHelpPrevious,
670 /// Sorts selected lines by length.
671 SortLinesByLength,
672 /// Sorts selected lines case-insensitively.
673 SortLinesCaseInsensitive,
674 /// Sorts selected lines case-sensitively.
675 SortLinesCaseSensitive,
676 /// Splits selection into individual lines.
677 SplitSelectionIntoLines,
678 /// Stops the language server for the current file.
679 StopLanguageServer,
680 /// Switches between source and header files.
681 SwitchSourceHeader,
682 /// Inserts a tab character or indents.
683 Tab,
684 /// Removes a tab character or outdents.
685 Backtab,
686 /// Toggles a breakpoint at the current line.
687 ToggleBreakpoint,
688 /// Toggles the case of selected text.
689 ToggleCase,
690 /// Disables the breakpoint at the current line.
691 DisableBreakpoint,
692 /// Enables the breakpoint at the current line.
693 EnableBreakpoint,
694 /// Edits the log message for a breakpoint.
695 EditLogBreakpoint,
696 /// Toggles automatic signature help.
697 ToggleAutoSignatureHelp,
698 /// Toggles inline git blame display.
699 ToggleGitBlameInline,
700 /// Opens the git commit for the blame at cursor.
701 OpenGitBlameCommit,
702 /// Toggles the diagnostics panel.
703 ToggleDiagnostics,
704 /// Toggles indent guides display.
705 ToggleIndentGuides,
706 /// Toggles inlay hints display.
707 ToggleInlayHints,
708 /// Toggles inline values display.
709 ToggleInlineValues,
710 /// Toggles inline diagnostics display.
711 ToggleInlineDiagnostics,
712 /// Toggles edit prediction feature.
713 ToggleEditPrediction,
714 /// Toggles line numbers display.
715 ToggleLineNumbers,
716 /// Toggles the minimap display.
717 ToggleMinimap,
718 /// Swaps the start and end of the current selection.
719 SwapSelectionEnds,
720 /// Sets a mark at the current position.
721 SetMark,
722 /// Toggles relative line numbers display.
723 ToggleRelativeLineNumbers,
724 /// Toggles diff display for selected hunks.
725 #[action(deprecated_aliases = ["editor::ToggleHunkDiff"])]
726 ToggleSelectedDiffHunks,
727 /// Toggles the selection menu.
728 ToggleSelectionMenu,
729 /// Toggles soft wrap mode.
730 ToggleSoftWrap,
731 /// Toggles the tab bar display.
732 ToggleTabBar,
733 /// Transposes characters around cursor.
734 Transpose,
735 /// Undoes the last edit.
736 Undo,
737 /// Undoes the last selection change.
738 UndoSelection,
739 /// Unfolds all folded regions.
740 UnfoldAll,
741 /// Unfolds lines at cursor.
742 UnfoldLines,
743 /// Unfolds recursively at cursor.
744 UnfoldRecursive,
745 /// Removes duplicate lines (case-insensitive).
746 UniqueLinesCaseInsensitive,
747 /// Removes duplicate lines (case-sensitive).
748 UniqueLinesCaseSensitive,
749 ]
750);