actions.rs

  1//! This module contains all actions supported by [`Editor`].
  2use super::*;
  3use gpui::action_as;
  4use util::serde::default_true;
  5
  6#[derive(PartialEq, Clone, Deserialize, Default)]
  7pub struct SelectNext {
  8    #[serde(default)]
  9    pub replace_newest: bool,
 10}
 11
 12#[derive(PartialEq, Clone, Deserialize, Default)]
 13pub struct SelectPrevious {
 14    #[serde(default)]
 15    pub replace_newest: bool,
 16}
 17
 18#[derive(PartialEq, Clone, Deserialize, Default)]
 19pub struct MoveToBeginningOfLine {
 20    #[serde(default = "default_true")]
 21    pub(super) stop_at_soft_wraps: bool,
 22}
 23
 24#[derive(PartialEq, Clone, Deserialize, Default)]
 25pub struct SelectToBeginningOfLine {
 26    #[serde(default)]
 27    pub(super) stop_at_soft_wraps: bool,
 28}
 29
 30#[derive(PartialEq, Clone, Deserialize, Default)]
 31pub struct MovePageUp {
 32    #[serde(default)]
 33    pub(super) center_cursor: bool,
 34}
 35
 36#[derive(PartialEq, Clone, Deserialize, Default)]
 37pub struct MovePageDown {
 38    #[serde(default)]
 39    pub(super) center_cursor: bool,
 40}
 41
 42#[derive(PartialEq, Clone, Deserialize, Default)]
 43pub struct MoveToEndOfLine {
 44    #[serde(default = "default_true")]
 45    pub stop_at_soft_wraps: bool,
 46}
 47
 48#[derive(PartialEq, Clone, Deserialize, Default)]
 49pub struct SelectToEndOfLine {
 50    #[serde(default)]
 51    pub(super) stop_at_soft_wraps: bool,
 52}
 53
 54#[derive(PartialEq, Clone, Deserialize, Default)]
 55pub struct ToggleCodeActions {
 56    // Display row from which the action was deployed.
 57    #[serde(default)]
 58    pub deployed_from_indicator: Option<DisplayRow>,
 59}
 60
 61#[derive(PartialEq, Clone, Deserialize, Default)]
 62pub struct ConfirmCompletion {
 63    #[serde(default)]
 64    pub item_ix: Option<usize>,
 65}
 66
 67#[derive(PartialEq, Clone, Deserialize, Default)]
 68pub struct ConfirmCodeAction {
 69    #[serde(default)]
 70    pub item_ix: Option<usize>,
 71}
 72
 73#[derive(PartialEq, Clone, Deserialize, Default)]
 74pub struct ToggleComments {
 75    #[serde(default)]
 76    pub advance_downwards: bool,
 77}
 78
 79#[derive(PartialEq, Clone, Deserialize, Default)]
 80pub struct FoldAt {
 81    pub buffer_row: MultiBufferRow,
 82}
 83
 84#[derive(PartialEq, Clone, Deserialize, Default)]
 85pub struct UnfoldAt {
 86    pub buffer_row: MultiBufferRow,
 87}
 88
 89#[derive(PartialEq, Clone, Deserialize, Default)]
 90pub struct MoveUpByLines {
 91    #[serde(default)]
 92    pub(super) lines: u32,
 93}
 94
 95#[derive(PartialEq, Clone, Deserialize, Default)]
 96pub struct MoveDownByLines {
 97    #[serde(default)]
 98    pub(super) lines: u32,
 99}
100#[derive(PartialEq, Clone, Deserialize, Default)]
101pub struct SelectUpByLines {
102    #[serde(default)]
103    pub(super) lines: u32,
104}
105
106#[derive(PartialEq, Clone, Deserialize, Default)]
107pub struct SelectDownByLines {
108    #[serde(default)]
109    pub(super) lines: u32,
110}
111
112#[derive(PartialEq, Clone, Deserialize, Default)]
113pub struct ExpandExcerpts {
114    #[serde(default)]
115    pub(super) lines: u32,
116}
117
118#[derive(PartialEq, Clone, Deserialize, Default)]
119pub struct ExpandExcerptsUp {
120    #[serde(default)]
121    pub(super) lines: u32,
122}
123
124#[derive(PartialEq, Clone, Deserialize, Default)]
125pub struct ExpandExcerptsDown {
126    #[serde(default)]
127    pub(super) lines: u32,
128}
129#[derive(PartialEq, Clone, Deserialize, Default)]
130pub struct ShowCompletions {
131    #[serde(default)]
132    pub(super) trigger: Option<String>,
133}
134
135#[derive(PartialEq, Clone, Deserialize, Default)]
136pub struct HandleInput(pub String);
137
138impl_actions!(
139    editor,
140    [
141        ConfirmCodeAction,
142        ConfirmCompletion,
143        ExpandExcerpts,
144        ExpandExcerptsUp,
145        ExpandExcerptsDown,
146        FoldAt,
147        HandleInput,
148        MoveDownByLines,
149        MovePageDown,
150        MovePageUp,
151        MoveToBeginningOfLine,
152        MoveToEndOfLine,
153        MoveUpByLines,
154        SelectDownByLines,
155        SelectNext,
156        SelectPrevious,
157        SelectToBeginningOfLine,
158        SelectToEndOfLine,
159        SelectUpByLines,
160        ShowCompletions,
161        ToggleCodeActions,
162        ToggleComments,
163        UnfoldAt,
164    ]
165);
166
167gpui::actions!(
168    editor,
169    [
170        AcceptPartialCopilotSuggestion,
171        AcceptInlineCompletion,
172        AcceptPartialInlineCompletion,
173        AddSelectionAbove,
174        AddSelectionBelow,
175        Backspace,
176        Cancel,
177        CancelLanguageServerWork,
178        ConfirmRename,
179        ContextMenuFirst,
180        ContextMenuLast,
181        ContextMenuNext,
182        ContextMenuPrev,
183        ConvertToKebabCase,
184        ConvertToLowerCamelCase,
185        ConvertToLowerCase,
186        ConvertToOppositeCase,
187        ConvertToSnakeCase,
188        ConvertToTitleCase,
189        ConvertToUpperCamelCase,
190        ConvertToUpperCase,
191        Copy,
192        CopyHighlightJson,
193        CopyPath,
194        CopyPermalinkToLine,
195        CopyRelativePath,
196        Cut,
197        CutToEndOfLine,
198        Delete,
199        DeleteLine,
200        DeleteToBeginningOfLine,
201        DeleteToEndOfLine,
202        DeleteToNextSubwordEnd,
203        DeleteToNextWordEnd,
204        DeleteToPreviousSubwordStart,
205        DeleteToPreviousWordStart,
206        DisplayCursorNames,
207        DuplicateLineDown,
208        DuplicateLineUp,
209        ExpandAllHunkDiffs,
210        ExpandMacroRecursively,
211        FindAllReferences,
212        Fold,
213        FoldSelectedRanges,
214        Format,
215        GoToDefinition,
216        GoToDefinitionSplit,
217        GoToDeclaration,
218        GoToDeclarationSplit,
219        GoToDiagnostic,
220        GoToHunk,
221        GoToImplementation,
222        GoToImplementationSplit,
223        GoToPrevDiagnostic,
224        GoToPrevHunk,
225        GoToTypeDefinition,
226        GoToTypeDefinitionSplit,
227        HalfPageDown,
228        HalfPageUp,
229        Hover,
230        Indent,
231        JoinLines,
232        LineDown,
233        LineUp,
234        MoveDown,
235        MoveLeft,
236        MoveLineDown,
237        MoveLineUp,
238        MoveRight,
239        MoveToBeginning,
240        MoveToEnclosingBracket,
241        MoveToEnd,
242        MoveToEndOfParagraph,
243        MoveToNextSubwordEnd,
244        MoveToNextWordEnd,
245        MoveToPreviousSubwordStart,
246        MoveToPreviousWordStart,
247        MoveToStartOfParagraph,
248        MoveUp,
249        Newline,
250        NewlineAbove,
251        NewlineBelow,
252        NextInlineCompletion,
253        NextScreen,
254        OpenExcerpts,
255        OpenExcerptsSplit,
256        OpenPermalinkToLine,
257        OpenUrl,
258        Outdent,
259        PageDown,
260        PageUp,
261        Paste,
262        PreviousInlineCompletion,
263        Redo,
264        RedoSelection,
265        Rename,
266        RestartLanguageServer,
267        RevealInFileManager,
268        ReverseLines,
269        RevertSelectedHunks,
270        ScrollCursorBottom,
271        ScrollCursorCenter,
272        ScrollCursorTop,
273        SelectAll,
274        SelectAllMatches,
275        SelectDown,
276        SelectLargerSyntaxNode,
277        SelectEnclosingSymbol,
278        SelectLeft,
279        SelectLine,
280        SelectRight,
281        SelectSmallerSyntaxNode,
282        SelectToBeginning,
283        SelectToEnd,
284        SelectToEndOfParagraph,
285        SelectToNextSubwordEnd,
286        SelectToNextWordEnd,
287        SelectToPreviousSubwordStart,
288        SelectToPreviousWordStart,
289        SelectToStartOfParagraph,
290        SelectUp,
291        SelectPageDown,
292        SelectPageUp,
293        ShowCharacterPalette,
294        ShowInlineCompletion,
295        ShowSignatureHelp,
296        ShuffleLines,
297        SortLinesCaseInsensitive,
298        SortLinesCaseSensitive,
299        SplitSelectionIntoLines,
300        Tab,
301        TabPrev,
302        ToggleAutoSignatureHelp,
303        ToggleGitBlame,
304        ToggleGitBlameInline,
305        ToggleSelectionMenu,
306        ToggleHunkDiff,
307        ToggleInlayHints,
308        ToggleLineNumbers,
309        ToggleIndentGuides,
310        ToggleSoftWrap,
311        ToggleTabBar,
312        Transpose,
313        Undo,
314        UndoSelection,
315        UnfoldLines,
316        UniqueLinesCaseInsensitive,
317        UniqueLinesCaseSensitive,
318    ]
319);
320
321action_as!(outline, ToggleOutline as Toggle);
322
323action_as!(go_to_line, ToggleGoToLine as Toggle);