397 lines · 9.6 KB · Rust
RawDownload
//! This module contains all actions supported by [`Editor`].use super::*;use gpui::{action_as, action_with_deprecated_aliases};use schemars::JsonSchema;use util::serde::default_true; #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SelectNext {    #[serde(default)]    pub replace_newest: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SelectPrevious {    #[serde(default)]    pub replace_newest: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct MoveToBeginningOfLine {    #[serde(default = "default_true")]    pub stop_at_soft_wraps: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SelectToBeginningOfLine {    #[serde(default)]    pub(super) stop_at_soft_wraps: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct MovePageUp {    #[serde(default)]    pub(super) center_cursor: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct MovePageDown {    #[serde(default)]    pub(super) center_cursor: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct MoveToEndOfLine {    #[serde(default = "default_true")]    pub stop_at_soft_wraps: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SelectToEndOfLine {    #[serde(default)]    pub(super) stop_at_soft_wraps: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ToggleCodeActions {    // Display row from which the action was deployed.    #[serde(default)]    #[serde(skip)]    pub deployed_from_indicator: Option<DisplayRow>,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ConfirmCompletion {    #[serde(default)]    pub item_ix: Option<usize>,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ComposeCompletion {    #[serde(default)]    pub item_ix: Option<usize>,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ConfirmCodeAction {    #[serde(default)]    pub item_ix: Option<usize>,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ToggleComments {    #[serde(default)]    pub advance_downwards: bool,    #[serde(default)]    pub ignore_indent: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct FoldAt {    #[serde(skip)]    pub buffer_row: MultiBufferRow,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct UnfoldAt {    #[serde(skip)]    pub buffer_row: MultiBufferRow,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct MoveUpByLines {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct MoveDownByLines {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SelectUpByLines {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SelectDownByLines {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ExpandExcerpts {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ExpandExcerptsUp {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ExpandExcerptsDown {    #[serde(default)]    pub(super) lines: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct ShowCompletions {    #[serde(default)]    pub(super) trigger: Option<String>,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct HandleInput(pub String); #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct DeleteToNextWordEnd {    #[serde(default)]    pub ignore_newlines: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct DeleteToPreviousWordStart {    #[serde(default)]    pub ignore_newlines: bool,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct FoldAtLevel {    pub level: u32,} #[derive(PartialEq, Clone, Deserialize, Default, JsonSchema)]pub struct SpawnNearestTask {    #[serde(default)]    pub reveal: task::RevealStrategy,} #[derive(Debug, PartialEq, Eq, Clone, Copy, Deserialize, Default)]pub enum UuidVersion {    #[default]    V4,    V7,} impl_actions!(    editor,    [        ComposeCompletion,        ConfirmCodeAction,        ConfirmCompletion,        DeleteToNextWordEnd,        DeleteToPreviousWordStart,        ExpandExcerpts,        ExpandExcerptsDown,        ExpandExcerptsUp,        FoldAt,        HandleInput,        MoveDownByLines,        MovePageDown,        MovePageUp,        MoveToBeginningOfLine,        MoveToEndOfLine,        MoveUpByLines,        SelectDownByLines,        SelectNext,        SelectPrevious,        SelectToBeginningOfLine,        SelectToEndOfLine,        SelectUpByLines,        SpawnNearestTask,        ShowCompletions,        ToggleCodeActions,        ToggleComments,        UnfoldAt,        FoldAtLevel,    ]); gpui::actions!(    editor,    [        AcceptInlineCompletion,        AcceptPartialCopilotSuggestion,        AcceptPartialInlineCompletion,        AddSelectionAbove,        AddSelectionBelow,        ApplyAllDiffHunks,        ApplyDiffHunk,        Backspace,        Cancel,        CancelLanguageServerWork,        ConfirmRename,        ContextMenuFirst,        ContextMenuLast,        ContextMenuNext,        ContextMenuPrev,        ConvertToKebabCase,        ConvertToLowerCamelCase,        ConvertToLowerCase,        ConvertToOppositeCase,        ConvertToSnakeCase,        ConvertToTitleCase,        ConvertToUpperCamelCase,        ConvertToUpperCase,        Copy,        CopyFileLocation,        CopyHighlightJson,        CopyPath,        CopyPermalinkToLine,        CopyRelativePath,        Cut,        CutToEndOfLine,        Delete,        DeleteLine,        DeleteToBeginningOfLine,        DeleteToEndOfLine,        DeleteToNextSubwordEnd,        DeleteToPreviousSubwordStart,        DisplayCursorNames,        DuplicateLineDown,        DuplicateLineUp,        DuplicateSelection,        ExpandAllHunkDiffs,        ExpandMacroRecursively,        FindAllReferences,        Fold,        FoldAll,        FoldFunctionBodies,        FoldRecursive,        FoldSelectedRanges,        ToggleFold,        ToggleFoldRecursive,        Format,        FormatSelections,        GoToDeclaration,        GoToDeclarationSplit,        GoToDefinition,        GoToDefinitionSplit,        GoToDiagnostic,        GoToHunk,        GoToImplementation,        GoToImplementationSplit,        GoToPrevDiagnostic,        GoToPrevHunk,        GoToTypeDefinition,        GoToTypeDefinitionSplit,        HalfPageDown,        HalfPageUp,        Hover,        Indent,        InsertUuidV4,        InsertUuidV7,        JoinLines,        KillRingCut,        KillRingYank,        LineDown,        LineUp,        MoveDown,        MoveLeft,        MoveLineDown,        MoveLineUp,        MoveRight,        MoveToBeginning,        MoveToEnclosingBracket,        MoveToEnd,        MoveToEndOfParagraph,        MoveToNextSubwordEnd,        MoveToNextWordEnd,        MoveToPreviousSubwordStart,        MoveToPreviousWordStart,        MoveToStartOfParagraph,        MoveUp,        Newline,        NewlineAbove,        NewlineBelow,        NextInlineCompletion,        NextScreen,        OpenContextMenu,        OpenExcerpts,        OpenExcerptsSplit,        OpenProposedChangesEditor,        OpenDocs,        OpenPermalinkToLine,        OpenUrl,        Outdent,        AutoIndent,        PageDown,        PageUp,        Paste,        PreviousInlineCompletion,        Redo,        RedoSelection,        Rename,        RestartLanguageServer,        RevealInFileManager,        ReverseLines,        RevertFile,        ReloadFile,        RevertSelectedHunks,        Rewrap,        ScrollCursorBottom,        ScrollCursorCenter,        ScrollCursorCenterTopBottom,        ScrollCursorTop,        SelectAll,        SelectAllMatches,        SelectDown,        SelectEnclosingSymbol,        SelectLargerSyntaxNode,        SelectLeft,        SelectLine,        SelectPageDown,        SelectPageUp,        SelectRight,        SelectSmallerSyntaxNode,        SelectToBeginning,        SelectToEnd,        SelectToEndOfParagraph,        SelectToNextSubwordEnd,        SelectToNextWordEnd,        SelectToPreviousSubwordStart,        SelectToPreviousWordStart,        SelectToStartOfParagraph,        SelectUp,        ShowCharacterPalette,        ShowInlineCompletion,        ShowSignatureHelp,        ShuffleLines,        SortLinesCaseInsensitive,        SortLinesCaseSensitive,        SplitSelectionIntoLines,        SwitchSourceHeader,        Tab,        TabPrev,        ToggleAutoSignatureHelp,        ToggleGitBlame,        ToggleGitBlameInline,        ToggleHunkDiff,        ToggleIndentGuides,        ToggleInlayHints,        ToggleInlineCompletions,        ToggleLineNumbers,        ToggleRelativeLineNumbers,        ToggleSelectionMenu,        ToggleSoftWrap,        ToggleTabBar,        Transpose,        Undo,        UndoSelection,        UnfoldAll,        UnfoldLines,        UnfoldRecursive,        UniqueLinesCaseInsensitive,        UniqueLinesCaseSensitive,    ]); action_as!(go_to_line, ToggleGoToLine as Toggle); action_with_deprecated_aliases!(editor, OpenSelectedFilename, ["editor::OpenFile"]);