mirror of
https://github.com/zed-industries/zed.git
synced 2025-01-12 21:32:40 +00:00
735849e201
Improves the new `Editor::DuplicateSelection` @CharlesChen0823 added in https://github.com/zed-industries/zed/pull/21154. - Merge `duplicate_selection` and `duplicate_line` into single function. - Add keyboard shortcuts to JetBrains and SublimeText keymaps. - If the selection is empty (e.g. just a cursor) make `Editor::DuplicateSelection` fallback to being the same as `Editor::DuplicateLineDown`. - Tested with multiple cursors and for multiple selections. | Editor | Action | macOS | Linux | | ----------- | ------------------- | ----------- | ------------ | | VSCode | Duplicate Selection | | | | JetBrains | Duplicate Selection | cmd-d | ctrl-d | | XCode | Duplicate | cmd-d | N/A | | SublimeText | duplicate_line | cmd-shift-d | ctrl-shift-d | This matches behavior of the `duplicate` functionality in all other major editors, with one exception: other editors change the selection so that the newly duplicated object, current Zed behavior leaves the original selection unchanged (TODO?)
97 lines
3.3 KiB
JSON
97 lines
3.3 KiB
JSON
[
|
|
{
|
|
"bindings": {
|
|
"cmd-shift-[": "pane::ActivatePrevItem",
|
|
"cmd-shift-]": "pane::ActivateNextItem"
|
|
}
|
|
},
|
|
{
|
|
"context": "Editor",
|
|
"bindings": {
|
|
"ctrl->": "zed::IncreaseBufferFontSize",
|
|
"ctrl-<": "zed::DecreaseBufferFontSize",
|
|
"ctrl-shift-j": "editor::JoinLines",
|
|
"cmd-d": "editor::DuplicateSelection",
|
|
"cmd-backspace": "editor::DeleteLine",
|
|
"cmd-pagedown": "editor::MovePageDown",
|
|
"cmd-pageup": "editor::MovePageUp",
|
|
"ctrl-alt-shift-b": "editor::SelectToPreviousWordStart",
|
|
"cmd-alt-enter": "editor::NewlineAbove",
|
|
"shift-enter": "editor::NewlineBelow",
|
|
"cmd--": "editor::Fold",
|
|
"cmd-+": "editor::UnfoldLines",
|
|
"alt-shift-g": "editor::SplitSelectionIntoLines",
|
|
"ctrl-g": ["editor::SelectNext", { "replace_newest": false }],
|
|
"ctrl-cmd-g": ["editor::SelectPrevious", { "replace_newest": false }],
|
|
"cmd-/": ["editor::ToggleComments", { "advance_downwards": true }],
|
|
"cmd-up": "editor::SelectLargerSyntaxNode",
|
|
"cmd-down": "editor::SelectSmallerSyntaxNode",
|
|
"shift-alt-up": "editor::MoveLineUp",
|
|
"shift-alt-down": "editor::MoveLineDown",
|
|
"cmd-alt-l": "editor::Format",
|
|
"shift-f6": "editor::Rename",
|
|
"cmd-[": "pane::GoBack",
|
|
"cmd-]": "pane::GoForward",
|
|
"alt-f7": "editor::FindAllReferences",
|
|
"cmd-alt-f7": "editor::FindAllReferences",
|
|
"cmd-b": "editor::GoToDefinition", // Conflicts with workspace::ToggleLeftDock
|
|
"cmd-alt-b": "editor::GoToDefinitionSplit",
|
|
"cmd-shift-b": "editor::GoToTypeDefinition",
|
|
"cmd-alt-shift-b": "editor::GoToTypeDefinitionSplit",
|
|
"f2": "editor::GoToDiagnostic",
|
|
"shift-f2": "editor::GoToPrevDiagnostic",
|
|
"ctrl-alt-shift-down": "editor::GoToHunk",
|
|
"ctrl-alt-shift-up": "editor::GoToPrevHunk",
|
|
"cmd-home": "editor::MoveToBeginning",
|
|
"cmd-end": "editor::MoveToEnd",
|
|
"cmd-shift-home": "editor::SelectToBeginning",
|
|
"cmd-shift-end": "editor::SelectToEnd"
|
|
}
|
|
},
|
|
{
|
|
"context": "Editor && mode == full",
|
|
"bindings": {
|
|
"cmd-f12": "outline::Toggle",
|
|
"cmd-7": "outline::Toggle",
|
|
"cmd-shift-o": "file_finder::Toggle",
|
|
"cmd-l": "go_to_line::Toggle",
|
|
"alt-enter": "editor::ToggleCodeActions"
|
|
}
|
|
},
|
|
{
|
|
"context": "BufferSearchBar > Editor",
|
|
"bindings": {
|
|
"shift-enter": "search::SelectPrevMatch"
|
|
}
|
|
},
|
|
{
|
|
"context": "Workspace",
|
|
"bindings": {
|
|
"cmd-shift-o": "file_finder::Toggle",
|
|
"cmd-shift-a": "command_palette::Toggle",
|
|
"shift shift": "command_palette::Toggle",
|
|
"cmd-alt-o": "project_symbols::Toggle", // JetBrains: Go to Symbol
|
|
"cmd-o": "project_symbols::Toggle", // JetBrains: Go to Class
|
|
"cmd-1": "workspace::ToggleLeftDock",
|
|
"cmd-6": "diagnostics::Deploy"
|
|
}
|
|
},
|
|
{
|
|
"context": "Pane",
|
|
"bindings": {
|
|
"cmd-alt-left": "pane::GoBack",
|
|
"cmd-alt-right": "pane::GoForward"
|
|
}
|
|
},
|
|
{
|
|
"context": "ProjectPanel",
|
|
"bindings": {
|
|
"enter": "project_panel::Open",
|
|
"cmd-backspace": ["project_panel::Trash", { "skip_prompt": false }],
|
|
"backspace": ["project_panel::Trash", { "skip_prompt": false }],
|
|
"delete": ["project_panel::Trash", { "skip_prompt": false }],
|
|
"shift-delete": ["project_panel::Delete", { "skip_prompt": false }],
|
|
"shift-f6": "project_panel::Rename"
|
|
}
|
|
}
|
|
]
|