diff --git a/assets/icons/file_icons/file_types.json b/assets/icons/file_icons/file_types.json index 936fa30e6212988ee95624b4be37e31d7cad0b1c..dd7977aa91239f604a4d0315389cc417760ed3ad 100644 --- a/assets/icons/file_icons/file_types.json +++ b/assets/icons/file_icons/file_types.json @@ -1,282 +1,282 @@ { - "suffixes": { - "astro": "astro", - "Emakefile": "erlang", - "aac": "audio", - "accdb": "storage", - "app.src": "erlang", - "avi": "video", - "avif": "image", - "bak": "backup", - "bash": "terminal", - "bash_aliases": "terminal", - "bash_logout": "terminal", - "bash_profile": "terminal", - "bashrc": "terminal", - "bmp": "image", - "c": "code", - "cc": "code", - "cjs": "code", - "conf": "settings", - "cpp": "code", - "css": "css", - "csv": "storage", - "cts": "typescript", - "dat": "storage", - "db": "storage", - "dbf": "storage", - "dll": "storage", - "doc": "document", - "docx": "document", - "eex": "elixir", - "elm": "elm", - "erl": "erlang", - "escript": "erlang", - "eslintrc": "eslint", - "eslintrc.js": "eslint", - "eslintrc.json": "eslint", - "ex": "elixir", - "exs": "elixir", - "fish": "terminal", - "flac": "audio", - "fmp": "storage", - "fp7": "storage", - "frm": "storage", - "gdb": "storage", - "gif": "image", - "gitattributes": "vcs", - "gitignore": "vcs", - "gitkeep": "vcs", - "gitmodules": "vcs", - "go": "go", - "graphql": "graphql", - "h": "code", - "handlebars": "code", - "hbs": "template", - "heex": "elixir", - "heif": "image", - "heic": "image", - "hrl": "erlang", - "hs": "haskell", - "htm": "template", - "html": "template", - "ib": "storage", - "ico": "image", - "ini": "settings", - "j2k": "image", - "java": "code", - "jfif": "image", - "jp2": "image", - "jpeg": "image", - "jpg": "image", - "js": "code", - "json": "storage", - "jsonc": "storage", - "jxl": "image", - "ldf": "storage", - "lock": "lock", - "lockb": "bun", - "log": "log", - "lua": "lua", - "m4a": "audio", - "m4v": "video", - "md": "document", - "mdb": "storage", - "mdf": "storage", - "mdx": "document", - "mkv": "video", - "mjs": "code", - "mka": "audio", - "ml": "ocaml", - "mli": "ocaml", - "mov": "video", - "mp3": "audio", - "mp4": "video", - "mts": "typescript", - "myd": "storage", - "myi": "storage", - "nu": "terminal", - "odp": "document", - "ods": "document", - "odt": "document", - "ogg": "audio", - "opus": "audio", - "pdb": "storage", - "pdf": "document", - "php": "php", - "png": "image", - "ppt": "document", - "pptx": "document", - "prettierignore": "prettier", - "prettierrc": "prettier", - "prisma": "prisma", - "profile": "terminal", - "ps1": "terminal", - "psd": "image", - "py": "python", - "qoi": "image", - "rb": "ruby", - "rebar.config": "erlang", - "rkt": "code", - "rs": "rust", - "r": "r", - "rtf": "document", - "sav": "storage", - "scm": "code", - "sdf": "storage", - "sh": "terminal", - "sqlite": "storage", - "svelte": "template", - "svg": "image", - "swift": "code", - "tiff": "image", - "toml": "toml", - "ts": "typescript", - "tsv": "storage", - "tsx": "code", - "txt": "document", - "vue": "vue", - "wav": "audio", - "webm": "video", - "webp": "image", - "wma": "audio", - "wmv": "video", - "wv": "audio", - "xls": "document", - "xlsx": "document", - "xml": "template", - "xrl": "erlang", - "yaml": "settings", - "yml": "settings", - "yrl": "erlang", - "zlogin": "terminal", - "zsh": "terminal", - "zsh_aliases": "terminal", - "zsh_histfile": "terminal", - "zsh_profile": "terminal", - "zshenv": "terminal", - "zshrc": "terminal" - }, - "types": { - "astro": { - "icon": "icons/file_icons/astro.svg" - }, - "audio": { - "icon": "icons/file_icons/audio.svg" - }, - "code": { - "icon": "icons/file_icons/code.svg" - }, - "collapsed_chevron": { - "icon": "icons/file_icons/chevron_right.svg" - }, - "collapsed_folder": { - "icon": "icons/file_icons/folder.svg" - }, - "css": { - "icon": "icons/file_icons/css.svg" - }, - "default": { - "icon": "icons/file_icons/file.svg" - }, - "document": { - "icon": "icons/file_icons/book.svg" - }, - "elixir": { - "icon": "icons/file_icons/elixir.svg" - }, - "elm": { - "icon": "icons/file_icons/elm.svg" - }, - "erlang": { - "icon": "icons/file_icons/erlang.svg" - }, - "eslint": { - "icon": "icons/file_icons/eslint.svg" - }, - "expanded_chevron": { - "icon": "icons/file_icons/chevron_down.svg" - }, - "expanded_folder": { - "icon": "icons/file_icons/folder_open.svg" - }, - "haskell": { - "icon": "icons/file_icons/haskell.svg" - }, - "go": { - "icon": "icons/file_icons/go.svg" - }, - "graphql": { - "icon": "icons/file_icons/graphql.svg" - }, - "image": { - "icon": "icons/file_icons/image.svg" - }, - "lock": { - "icon": "icons/file_icons/lock.svg" - }, - "bun": { - "icon": "icons/file_icons/bun.svg" - }, - "log": { - "icon": "icons/file_icons/info.svg" - }, - "lua": { - "icon": "icons/file_icons/lua.svg" - }, - "ocaml": { - "icon": "icons/file_icons/ocaml.svg" - }, - "phoenix": { - "icon": "icons/file_icons/phoenix.svg" - }, - "php": { - "icon": "icons/file_icons/php.svg" - }, - "prettier": { - "icon": "icons/file_icons/prettier.svg" - }, - "prisma": { - "icon": "icons/file_icons/prisma.svg" - }, - "python": { - "icon": "icons/file_icons/python.svg" - }, - "ruby": { - "icon": "icons/file_icons/ruby.svg" - }, - "rust": { - "icon": "icons/file_icons/rust.svg" - }, - "r": { - "icon": "icons/file_icons/r.svg" - }, - "settings": { - "icon": "icons/file_icons/settings.svg" - }, - "storage": { - "icon": "icons/file_icons/database.svg" - }, - "template": { - "icon": "icons/file_icons/html.svg" - }, - "terminal": { - "icon": "icons/file_icons/terminal.svg" - }, - "toml": { - "icon": "icons/file_icons/toml.svg" - }, - "typescript": { - "icon": "icons/file_icons/typescript.svg" - }, - "vcs": { - "icon": "icons/file_icons/git.svg" - }, - "video": { - "icon": "icons/file_icons/video.svg" - }, - "vue": { - "icon": "icons/file_icons/vue.svg" - } + "suffixes": { + "astro": "astro", + "Emakefile": "erlang", + "aac": "audio", + "accdb": "storage", + "app.src": "erlang", + "avi": "video", + "avif": "image", + "bak": "backup", + "bash": "terminal", + "bash_aliases": "terminal", + "bash_logout": "terminal", + "bash_profile": "terminal", + "bashrc": "terminal", + "bmp": "image", + "c": "code", + "cc": "code", + "cjs": "code", + "conf": "settings", + "cpp": "code", + "css": "css", + "csv": "storage", + "cts": "typescript", + "dat": "storage", + "db": "storage", + "dbf": "storage", + "dll": "storage", + "doc": "document", + "docx": "document", + "eex": "elixir", + "elm": "elm", + "erl": "erlang", + "escript": "erlang", + "eslintrc": "eslint", + "eslintrc.js": "eslint", + "eslintrc.json": "eslint", + "ex": "elixir", + "exs": "elixir", + "fish": "terminal", + "flac": "audio", + "fmp": "storage", + "fp7": "storage", + "frm": "storage", + "gdb": "storage", + "gif": "image", + "gitattributes": "vcs", + "gitignore": "vcs", + "gitkeep": "vcs", + "gitmodules": "vcs", + "go": "go", + "graphql": "graphql", + "h": "code", + "handlebars": "code", + "hbs": "template", + "heex": "elixir", + "heif": "image", + "heic": "image", + "hrl": "erlang", + "hs": "haskell", + "htm": "template", + "html": "template", + "ib": "storage", + "ico": "image", + "ini": "settings", + "j2k": "image", + "java": "code", + "jfif": "image", + "jp2": "image", + "jpeg": "image", + "jpg": "image", + "js": "code", + "json": "storage", + "jsonc": "storage", + "jxl": "image", + "ldf": "storage", + "lock": "lock", + "lockb": "bun", + "log": "log", + "lua": "lua", + "m4a": "audio", + "m4v": "video", + "md": "document", + "mdb": "storage", + "mdf": "storage", + "mdx": "document", + "mkv": "video", + "mjs": "code", + "mka": "audio", + "ml": "ocaml", + "mli": "ocaml", + "mov": "video", + "mp3": "audio", + "mp4": "video", + "mts": "typescript", + "myd": "storage", + "myi": "storage", + "nu": "terminal", + "odp": "document", + "ods": "document", + "odt": "document", + "ogg": "audio", + "opus": "audio", + "pdb": "storage", + "pdf": "document", + "php": "php", + "png": "image", + "ppt": "document", + "pptx": "document", + "prettierignore": "prettier", + "prettierrc": "prettier", + "prisma": "prisma", + "profile": "terminal", + "ps1": "terminal", + "psd": "image", + "py": "python", + "qoi": "image", + "rb": "ruby", + "rebar.config": "erlang", + "rkt": "code", + "rs": "rust", + "r": "r", + "rtf": "document", + "sav": "storage", + "scm": "code", + "sdf": "storage", + "sh": "terminal", + "sqlite": "storage", + "svelte": "template", + "svg": "image", + "swift": "code", + "tiff": "image", + "toml": "toml", + "ts": "typescript", + "tsv": "storage", + "tsx": "code", + "txt": "document", + "vue": "vue", + "wav": "audio", + "webm": "video", + "webp": "image", + "wma": "audio", + "wmv": "video", + "wv": "audio", + "xls": "document", + "xlsx": "document", + "xml": "template", + "xrl": "erlang", + "yaml": "settings", + "yml": "settings", + "yrl": "erlang", + "zlogin": "terminal", + "zsh": "terminal", + "zsh_aliases": "terminal", + "zsh_histfile": "terminal", + "zsh_profile": "terminal", + "zshenv": "terminal", + "zshrc": "terminal" + }, + "types": { + "astro": { + "icon": "icons/file_icons/astro.svg" + }, + "audio": { + "icon": "icons/file_icons/audio.svg" + }, + "code": { + "icon": "icons/file_icons/code.svg" + }, + "collapsed_chevron": { + "icon": "icons/file_icons/chevron_right.svg" + }, + "collapsed_folder": { + "icon": "icons/file_icons/folder.svg" + }, + "css": { + "icon": "icons/file_icons/css.svg" + }, + "default": { + "icon": "icons/file_icons/file.svg" + }, + "document": { + "icon": "icons/file_icons/book.svg" + }, + "elixir": { + "icon": "icons/file_icons/elixir.svg" + }, + "elm": { + "icon": "icons/file_icons/elm.svg" + }, + "erlang": { + "icon": "icons/file_icons/erlang.svg" + }, + "eslint": { + "icon": "icons/file_icons/eslint.svg" + }, + "expanded_chevron": { + "icon": "icons/file_icons/chevron_down.svg" + }, + "expanded_folder": { + "icon": "icons/file_icons/folder_open.svg" + }, + "haskell": { + "icon": "icons/file_icons/haskell.svg" + }, + "go": { + "icon": "icons/file_icons/go.svg" + }, + "graphql": { + "icon": "icons/file_icons/graphql.svg" + }, + "image": { + "icon": "icons/file_icons/image.svg" + }, + "lock": { + "icon": "icons/file_icons/lock.svg" + }, + "bun": { + "icon": "icons/file_icons/bun.svg" + }, + "log": { + "icon": "icons/file_icons/info.svg" + }, + "lua": { + "icon": "icons/file_icons/lua.svg" + }, + "ocaml": { + "icon": "icons/file_icons/ocaml.svg" + }, + "phoenix": { + "icon": "icons/file_icons/phoenix.svg" + }, + "php": { + "icon": "icons/file_icons/php.svg" + }, + "prettier": { + "icon": "icons/file_icons/prettier.svg" + }, + "prisma": { + "icon": "icons/file_icons/prisma.svg" + }, + "python": { + "icon": "icons/file_icons/python.svg" + }, + "ruby": { + "icon": "icons/file_icons/ruby.svg" + }, + "rust": { + "icon": "icons/file_icons/rust.svg" + }, + "r": { + "icon": "icons/file_icons/r.svg" + }, + "settings": { + "icon": "icons/file_icons/settings.svg" + }, + "storage": { + "icon": "icons/file_icons/database.svg" + }, + "template": { + "icon": "icons/file_icons/html.svg" + }, + "terminal": { + "icon": "icons/file_icons/terminal.svg" + }, + "toml": { + "icon": "icons/file_icons/toml.svg" + }, + "typescript": { + "icon": "icons/file_icons/typescript.svg" + }, + "vcs": { + "icon": "icons/file_icons/git.svg" + }, + "video": { + "icon": "icons/file_icons/video.svg" + }, + "vue": { + "icon": "icons/file_icons/vue.svg" } + } } diff --git a/assets/keymaps/atom.json b/assets/keymaps/atom.json index c2beb71b56948d8e65c804baeb1dc8a71851ee0f..91844295b1c919918e4fdb1026ad989e08695d58 100644 --- a/assets/keymaps/atom.json +++ b/assets/keymaps/atom.json @@ -55,38 +55,14 @@ "bindings": { "alt-cmd-/": "search::ToggleRegex", "ctrl-0": "project_panel::ToggleFocus", - "cmd-1": [ - "pane::ActivateItem", - 0 - ], - "cmd-2": [ - "pane::ActivateItem", - 1 - ], - "cmd-3": [ - "pane::ActivateItem", - 2 - ], - "cmd-4": [ - "pane::ActivateItem", - 3 - ], - "cmd-5": [ - "pane::ActivateItem", - 4 - ], - "cmd-6": [ - "pane::ActivateItem", - 5 - ], - "cmd-7": [ - "pane::ActivateItem", - 6 - ], - "cmd-8": [ - "pane::ActivateItem", - 7 - ], + "cmd-1": ["pane::ActivateItem", 0], + "cmd-2": ["pane::ActivateItem", 1], + "cmd-3": ["pane::ActivateItem", 2], + "cmd-4": ["pane::ActivateItem", 3], + "cmd-5": ["pane::ActivateItem", 4], + "cmd-6": ["pane::ActivateItem", 5], + "cmd-7": ["pane::ActivateItem", 6], + "cmd-8": ["pane::ActivateItem", 7], "cmd-9": "pane::ActivateLastItem" } }, diff --git a/assets/keymaps/default-linux.json b/assets/keymaps/default-linux.json index 46e6f87df9ef9ada68e03b005b550fe00fa4af67..feeb0f081b86a6412fafc48df6e88bedab685c15 100644 --- a/assets/keymaps/default-linux.json +++ b/assets/keymaps/default-linux.json @@ -1,561 +1,561 @@ [ - { - "bindings": { - "up": "menu::SelectPrev", - "pageup": "menu::SelectFirst", - "shift-pageup": "menu::SelectFirst", - "ctrl-p": "menu::SelectPrev", - "down": "menu::SelectNext", - "pagedown": "menu::SelectLast", - "shift-pagedown": "menu::SelectFirst", - "ctrl-n": "menu::SelectNext", - "ctrl-up": "menu::SelectFirst", - "ctrl-down": "menu::SelectLast", - "enter": "menu::Confirm", - "shift-f10": "menu::ShowContextMenu", - "ctrl-enter": "menu::SecondaryConfirm", - "escape": "menu::Cancel", - "ctrl-c": "menu::Cancel", - "ctrl-shift-w": "workspace::CloseWindow", - "shift-escape": "workspace::ToggleZoom", - "ctrl-o": "workspace::Open", - "ctrl-=": "zed::IncreaseBufferFontSize", - "ctrl-+": "zed::IncreaseBufferFontSize", - "ctrl--": "zed::DecreaseBufferFontSize", - "ctrl-0": "zed::ResetBufferFontSize", - "ctrl-,": "zed::OpenSettings", - "ctrl-q": "zed::Quit", - "ctrl-h": "zed::Hide", - "alt-ctrl-h": "zed::HideOthers", - "ctrl-m": "zed::Minimize", - "f11": "zed::ToggleFullScreen" - } - }, - { - "context": "Editor", - "bindings": { - "escape": "editor::Cancel", - "backspace": "editor::Backspace", - "shift-backspace": "editor::Backspace", - "ctrl-h": "editor::Backspace", - "delete": "editor::Delete", - "ctrl-d": "editor::Delete", - "tab": "editor::Tab", - "shift-tab": "editor::TabPrev", - "ctrl-k": "editor::CutToEndOfLine", - "ctrl-t": "editor::Transpose", - "ctrl-backspace": "editor::DeleteToBeginningOfLine", - "ctrl-delete": "editor::DeleteToEndOfLine", - "alt-backspace": "editor::DeleteToPreviousWordStart", - "alt-delete": "editor::DeleteToNextWordEnd", - "alt-h": "editor::DeleteToPreviousWordStart", - "alt-d": "editor::DeleteToNextWordEnd", - "ctrl-x": "editor::Cut", - "ctrl-c": "editor::Copy", - "ctrl-v": "editor::Paste", - "ctrl-z": "editor::Undo", - "ctrl-shift-z": "editor::Redo", - "ctrl-y": "editor::Redo", - "up": "editor::MoveUp", - "ctrl-up": "editor::MoveToStartOfParagraph", - "pageup": "editor::PageUp", - "shift-pageup": "editor::MovePageUp", - "home": "editor::MoveToBeginningOfLine", - "down": "editor::MoveDown", - "ctrl-down": "editor::MoveToEndOfParagraph", - "pagedown": "editor::PageDown", - "shift-pagedown": "editor::MovePageDown", - "end": "editor::MoveToEndOfLine", - "left": "editor::MoveLeft", - "right": "editor::MoveRight", - "ctrl-p": "editor::MoveUp", - "ctrl-n": "editor::MoveDown", - "ctrl-b": "editor::MoveLeft", - "ctrl-f": "editor::MoveRight", - "ctrl-shift-l": "editor::NextScreen", // todo!(linux): What is this - "alt-left": "editor::MoveToPreviousWordStart", - "alt-b": "editor::MoveToPreviousWordStart", - "alt-right": "editor::MoveToNextWordEnd", - "alt-f": "editor::MoveToNextWordEnd", - "ctrl-e": "editor::MoveToEndOfLine", - "ctrl-home": "editor::MoveToBeginning", - "ctrl-=end": "editor::MoveToEnd", - "shift-up": "editor::SelectUp", - "ctrl-shift-p": "editor::SelectUp", - "shift-down": "editor::SelectDown", - "ctrl-shift-n": "editor::SelectDown", - "shift-left": "editor::SelectLeft", - "ctrl-shift-b": "editor::SelectLeft", - "shift-right": "editor::SelectRight", - "ctrl-shift-f": "editor::SelectRight", - "alt-shift-left": "editor::SelectToPreviousWordStart", - "alt-shift-b": "editor::SelectToPreviousWordStart", - "alt-shift-right": "editor::SelectToNextWordEnd", - "alt-shift-f": "editor::SelectToNextWordEnd", - "ctrl-shift-up": "editor::SelectToStartOfParagraph", - "ctrl-shift-down": "editor::SelectToEndOfParagraph", - "ctrl-shift-home": "editor::SelectToBeginning", - "ctrl-shift-end": "editor::SelectToEnd", - "ctrl-a": "editor::SelectAll", - "ctrl-l": "editor::SelectLine", - "ctrl-shift-i": "editor::Format", - "shift-home": [ - "editor::SelectToBeginningOfLine", - { - "stop_at_soft_wraps": true - } - ], - "shift-end": [ - "editor::SelectToEndOfLine", - { - "stop_at_soft_wraps": true - } - ], - "ctrl-shift-e": [ - "editor::SelectToEndOfLine", - { - "stop_at_soft_wraps": true - } - ] - } - }, - { - "context": "Editor && mode == full", - "bindings": { - "enter": "editor::Newline", - "shift-enter": "editor::Newline", - "ctrl-shift-enter": "editor::NewlineAbove", - "ctrl-enter": "editor::NewlineBelow", - "alt-z": "editor::ToggleSoftWrap", - "ctrl-f": [ - "buffer_search::Deploy", - { - "focus": true - } - ], - "alt-\\": "copilot::Suggest", - "alt-]": "copilot::NextSuggestion", - "alt-[": "copilot::PreviousSuggestion", - "ctrl->": "assistant::QuoteSelection" - } - }, - { - "context": "Editor && mode == auto_height", - "bindings": { - "ctrl-enter": "editor::Newline", - "shift-enter": "editor::Newline", - "ctrl-shift-enter": "editor::NewlineBelow" - } - }, - { - "context": "AssistantPanel", - "bindings": { - "f3": "search::SelectNextMatch", - "shift-f3": "search::SelectPrevMatch" - } - }, - { - "context": "ConversationEditor > Editor", - "bindings": { - "ctrl-enter": "assistant::Assist", - "ctrl-s": "workspace::Save", - "ctrl->": "assistant::QuoteSelection", - "shift-enter": "assistant::Split", - "ctrl-r": "assistant::CycleMessageRole" - } - }, - { - "context": "BufferSearchBar", - "bindings": { - "escape": "buffer_search::Dismiss", - "tab": "buffer_search::FocusEditor", - "enter": "search::SelectNextMatch", - "shift-enter": "search::SelectPrevMatch", - "alt-enter": "search::SelectAllMatches", - "alt-tab": "search::CycleMode" - } - }, - { - "context": "BufferSearchBar && in_replace", - "bindings": { - "enter": "search::ReplaceNext", - "ctrl-enter": "search::ReplaceAll" - } - }, - { - "context": "BufferSearchBar && !in_replace > Editor", - "bindings": { - "up": "search::PreviousHistoryQuery", - "down": "search::NextHistoryQuery" - } - }, - { - "context": "ProjectSearchBar", - "bindings": { - "escape": "project_search::ToggleFocus", - "alt-tab": "search::CycleMode", - "ctrl-shift-h": "search::ToggleReplace", - "ctrl-alt-g": "search::ActivateRegexMode", - "ctrl-alt-s": "search::ActivateSemanticMode", - "ctrl-alt-x": "search::ActivateTextMode" - } - }, - { - "context": "ProjectSearchBar > Editor", - "bindings": { - "up": "search::PreviousHistoryQuery", - "down": "search::NextHistoryQuery" - } - }, - { - "context": "ProjectSearchBar && in_replace", - "bindings": { - "enter": "search::ReplaceNext", - "ctrl-enter": "search::ReplaceAll" - } - }, - { - "context": "ProjectSearchView", - "bindings": { - "escape": "project_search::ToggleFocus", - "alt-tab": "search::CycleMode", - "ctrl-shift-h": "search::ToggleReplace", - "ctrl-alt-g": "search::ActivateRegexMode", - "ctrl-alt-s": "search::ActivateSemanticMode", - "ctrl-alt-x": "search::ActivateTextMode" - } - }, - { - "context": "Pane", - "bindings": { - "ctrl-{": "pane::ActivatePrevItem", - "ctrl-}": "pane::ActivateNextItem", - "ctrl-alt-left": "pane::ActivatePrevItem", - "ctrl-alt-right": "pane::ActivateNextItem", - "ctrl-w": "pane::CloseActiveItem", - "ctrl-alt-t": "pane::CloseInactiveItems", - "ctrl-alt-shift-w": "workspace::CloseInactiveTabsAndPanes", - "ctrl-k u": "pane::CloseCleanItems", - "ctrl-k ctrl-w": "pane::CloseAllItems", - "ctrl-f": "project_search::ToggleFocus", - "f3": "search::SelectNextMatch", - "shift-f3": "search::SelectPrevMatch", - "ctrl-shift-h": "search::ToggleReplace", - "alt-enter": "search::SelectAllMatches", - "ctrl-alt-c": "search::ToggleCaseSensitive", - "ctrl-alt-w": "search::ToggleWholeWord", - "alt-tab": "search::CycleMode", - "ctrl-alt-f": "project_search::ToggleFilters", - "ctrl-alt-g": "search::ActivateRegexMode", - "ctrl-alt-s": "search::ActivateSemanticMode", - "ctrl-alt-x": "search::ActivateTextMode" - } - }, - // Bindings from VS Code - { - "context": "Editor", - "bindings": { - "ctrl-[": "editor::Outdent", - "ctrl-]": "editor::Indent", - "ctrl-alt-up": "editor::AddSelectionAbove", - "ctrl-alt-down": "editor::AddSelectionBelow", - "ctrl-d": [ - "editor::SelectNext", - { - "replace_newest": false - } - ], - "ctrl-shift-l": "editor::SelectAllMatches", - "ctrl-shift-d": [ - "editor::SelectPrevious", - { - "replace_newest": false - } - ], - "ctrl-k ctrl-d": [ - "editor::SelectNext", - { - "replace_newest": true - } - ], - "ctrl-k ctrl-shift-d": [ - "editor::SelectPrevious", - { - "replace_newest": true - } - ], - "ctrl-k ctrl-i": "editor::Hover", - "ctrl-/": [ - "editor::ToggleComments", - { - "advance_downwards": false - } - ], - "alt-up": "editor::SelectLargerSyntaxNode", - "alt-down": "editor::SelectSmallerSyntaxNode", - "ctrl-u": "editor::UndoSelection", - "ctrl-shift-u": "editor::RedoSelection", - "f8": "editor::GoToDiagnostic", - "shift-f8": "editor::GoToPrevDiagnostic", - "f2": "editor::Rename", - "f12": "editor::GoToDefinition", - "alt-f12": "editor::GoToDefinitionSplit", - "ctrl-f12": "editor::GoToTypeDefinition", - "ctrl-alt-f12": "editor::GoToTypeDefinitionSplit", - "alt-shift-f12": "editor::FindAllReferences", - "ctrl-m": "editor::MoveToEnclosingBracket", - "ctrl-alt-[": "editor::Fold", - "ctrl-alt-]": "editor::UnfoldLines", - "ctrl-space": "editor::ShowCompletions", - "ctrl-.": "editor::ToggleCodeActions", - "ctrl-alt-r": "editor::RevealInFinder", - "ctrl-alt-c": "editor::DisplayCursorNames" - } - }, - { - "context": "Editor && mode == full", - "bindings": { - "ctrl-shift-o": "outline::Toggle", - "ctrl-g": "go_to_line::Toggle" - } - }, - { - "context": "Pane", - "bindings": { - "ctrl-1": ["pane::ActivateItem", 0], - "ctrl-2": ["pane::ActivateItem", 1], - "ctrl-3": ["pane::ActivateItem", 2], - "ctrl-4": ["pane::ActivateItem", 3], - "ctrl-5": ["pane::ActivateItem", 4], - "ctrl-6": ["pane::ActivateItem", 5], - "ctrl-7": ["pane::ActivateItem", 6], - "ctrl-8": ["pane::ActivateItem", 7], - "ctrl-9": ["pane::ActivateItem", 8], - "ctrl-0": "pane::ActivateLastItem", - "ctrl--": "pane::GoBack", - "ctrl-_": "pane::GoForward", - "ctrl-shift-t": "pane::ReopenClosedItem", - "ctrl-shift-f": "project_search::ToggleFocus" - } - }, - { - "context": "Workspace", - "bindings": { - "ctrl-alt-o": "projects::OpenRecent", - "ctrl-alt-b": "branches::OpenRecent", - "ctrl-~": "workspace::NewTerminal", - "ctrl-s": "workspace::Save", - "ctrl-shift-s": "workspace::SaveAs", - "ctrl-n": "workspace::NewFile", - "ctrl-shift-n": "workspace::NewWindow", - "ctrl-`": "terminal_panel::ToggleFocus", - "ctrl-1": ["workspace::ActivatePane", 0], - "ctrl-2": ["workspace::ActivatePane", 1], - "ctrl-3": ["workspace::ActivatePane", 2], - "ctrl-4": ["workspace::ActivatePane", 3], - "ctrl-5": ["workspace::ActivatePane", 4], - "ctrl-6": ["workspace::ActivatePane", 5], - "ctrl-7": ["workspace::ActivatePane", 6], - "ctrl-8": ["workspace::ActivatePane", 7], - "ctrl-9": ["workspace::ActivatePane", 8], - "ctrl-b": "workspace::ToggleLeftDock", - "ctrl-r": "workspace::ToggleRightDock", - "ctrl-j": "workspace::ToggleBottomDock", - "ctrl-alt-y": "workspace::CloseAllDocks", - "ctrl-shift-f": "pane::DeploySearch", - "ctrl-k ctrl-t": "theme_selector::Toggle", - "ctrl-k ctrl-s": "zed::OpenKeymap", - "ctrl-t": "project_symbols::Toggle", - "ctrl-p": "file_finder::Toggle", - "ctrl-shift-p": "command_palette::Toggle", - "ctrl-shift-m": "diagnostics::Deploy", - "ctrl-shift-e": "project_panel::ToggleFocus", - "ctrl-?": "assistant::ToggleFocus", - "ctrl-alt-s": "workspace::SaveAll", - "ctrl-k m": "language_selector::Toggle", - "escape": "workspace::Unfollow", - "ctrl-k ctrl-left": ["workspace::ActivatePaneInDirection", "Left"], - "ctrl-k ctrl-right": ["workspace::ActivatePaneInDirection", "Right"], - "ctrl-k ctrl-up": ["workspace::ActivatePaneInDirection", "Up"], - "ctrl-k ctrl-down": ["workspace::ActivatePaneInDirection", "Down"], - "ctrl-k shift-left": ["workspace::SwapPaneInDirection", "Left"], - "ctrl-k shift-right": ["workspace::SwapPaneInDirection", "Right"], - "ctrl-k shift-up": ["workspace::SwapPaneInDirection", "Up"], - "ctrl-k shift-down": ["workspace::SwapPaneInDirection", "Down"], - "alt-t": "task::Rerun", - "alt-shift-t": "task::Spawn" - } - }, - // Bindings from Sublime Text - // todo!(linux) make sure these match linux bindings or remove above comment? - { - "context": "Editor", - "bindings": { - "ctrl-shift-k": "editor::DeleteLine", - "ctrl-shift-d": "editor::DuplicateLine", - "ctrl-j": "editor::JoinLines", - "ctrl-alt-up": "editor::MoveLineUp", - "ctrl-alt-down": "editor::MoveLineDown", - "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart", - "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart", - "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd", - "ctrl-alt-d": "editor::DeleteToNextSubwordEnd", - "ctrl-alt-left": "editor::MoveToPreviousSubwordStart", - "ctrl-alt-b": "editor::MoveToPreviousSubwordStart", - "ctrl-alt-right": "editor::MoveToNextSubwordEnd", - "ctrl-alt-f": "editor::MoveToNextSubwordEnd", - "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart", - "ctrl-alt-shift-b": "editor::SelectToPreviousSubwordStart", - "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd", - "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd" - } - }, - // Bindings from Atom - // todo!(linux) make sure these match linux bindings or remove above comment? - { - "context": "Pane", - "bindings": { - "ctrl-k up": "pane::SplitUp", - "ctrl-k down": "pane::SplitDown", - "ctrl-k left": "pane::SplitLeft", - "ctrl-k right": "pane::SplitRight" - } - }, - // Bindings that should be unified with bindings for more general actions - { - "context": "Editor && renaming", - "bindings": { - "enter": "editor::ConfirmRename" - } - }, - { - "context": "Editor && showing_completions", - "bindings": { - "enter": "editor::ConfirmCompletion", - "tab": "editor::ConfirmCompletion" - } - }, - { - "context": "Editor && showing_code_actions", - "bindings": { - "enter": "editor::ConfirmCodeAction" - } - }, - { - "context": "Editor && (showing_code_actions || showing_completions)", - "bindings": { - "up": "editor::ContextMenuPrev", - "ctrl-p": "editor::ContextMenuPrev", - "down": "editor::ContextMenuNext", - "ctrl-n": "editor::ContextMenuNext", - "pageup": "editor::ContextMenuFirst", - "pagedown": "editor::ContextMenuLast" - } - }, - // Custom bindings - { - "bindings": { - "ctrl-alt-shift-f": "workspace::FollowNextCollaborator", - // TODO: Move this to a dock open action - "ctrl-alt-c": "collab_panel::ToggleFocus", - "ctrl-alt-i": "zed::DebugElements", - "ctrl-:": "editor::ToggleInlayHints" - } - }, - { - "context": "Editor && mode == full", - "bindings": { - "alt-enter": "editor::OpenExcerpts", - "ctrl-f8": "editor::GoToHunk", - "ctrl-shift-f8": "editor::GoToPrevHunk", - "ctrl-enter": "assistant::InlineAssist" - } - }, - { - "context": "ProjectSearchBar && !in_replace", - "bindings": { - "ctrl-enter": "project_search::SearchInNew" - } - }, - { - "context": "ProjectPanel", - "bindings": { - "left": "project_panel::CollapseSelectedEntry", - "right": "project_panel::ExpandSelectedEntry", - "ctrl-n": "project_panel::NewFile", - "ctrl-alt-n": "project_panel::NewDirectory", - "ctrl-x": "project_panel::Cut", - "ctrl-c": "project_panel::Copy", - "ctrl-v": "project_panel::Paste", - "ctrl-alt-c": "project_panel::CopyPath", - "ctrl-alt-shift-c": "project_panel::CopyRelativePath", - "f2": "project_panel::Rename", - "enter": "project_panel::Rename", - "backspace": "project_panel::Delete", - "ctrl-alt-r": "project_panel::RevealInFinder", - "alt-shift-f": "project_panel::NewSearchInDirectory" - } - }, - { - "context": "ProjectPanel && not_editing", - "bindings": { - "space": "project_panel::Open" - } - }, - { - "context": "CollabPanel && not_editing", - "bindings": { - "ctrl-backspace": "collab_panel::Remove", - "space": "menu::Confirm" - } - }, - { - "context": "(CollabPanel && editing) > Editor", - "bindings": { - "space": "collab_panel::InsertSpace" - } - }, - { - "context": "ChannelModal", - "bindings": { - "tab": "channel_modal::ToggleMode" - } - }, - { - "context": "ChannelModal > Picker > Editor", - "bindings": { - "tab": "channel_modal::ToggleMode" - } - }, - { - "context": "ChatPanel > MessageEditor", - "bindings": { - "escape": "chat_panel::CloseReplyPreview" - } - }, - { - "context": "Terminal", - "bindings": { - "ctrl-alt-space": "terminal::ShowCharacterPalette", - "ctrl-shift-c": "terminal::Copy", - "ctrl-shift-v": "terminal::Paste", - "ctrl-k": "terminal::Clear", - // Some nice conveniences - "ctrl-backspace": ["terminal::SendText", "\u0015"], - "ctrl-right": ["terminal::SendText", "\u0005"], - "ctrl-left": ["terminal::SendText", "\u0001"], - // Terminal.app compatibility - "alt-left": ["terminal::SendText", "\u001bb"], - "alt-right": ["terminal::SendText", "\u001bf"], - // There are conflicting bindings for these keys in the global context. - // these bindings override them, remove at your own risk: - "up": ["terminal::SendKeystroke", "up"], - "pageup": ["terminal::SendKeystroke", "pageup"], - "down": ["terminal::SendKeystroke", "down"], - "pagedown": ["terminal::SendKeystroke", "pagedown"], - "escape": ["terminal::SendKeystroke", "escape"], - "enter": ["terminal::SendKeystroke", "enter"], - "ctrl-c": ["terminal::SendKeystroke", "ctrl-c"] - } - } - ] + { + "bindings": { + "up": "menu::SelectPrev", + "pageup": "menu::SelectFirst", + "shift-pageup": "menu::SelectFirst", + "ctrl-p": "menu::SelectPrev", + "down": "menu::SelectNext", + "pagedown": "menu::SelectLast", + "shift-pagedown": "menu::SelectFirst", + "ctrl-n": "menu::SelectNext", + "ctrl-up": "menu::SelectFirst", + "ctrl-down": "menu::SelectLast", + "enter": "menu::Confirm", + "shift-f10": "menu::ShowContextMenu", + "ctrl-enter": "menu::SecondaryConfirm", + "escape": "menu::Cancel", + "ctrl-c": "menu::Cancel", + "ctrl-shift-w": "workspace::CloseWindow", + "shift-escape": "workspace::ToggleZoom", + "ctrl-o": "workspace::Open", + "ctrl-=": "zed::IncreaseBufferFontSize", + "ctrl-+": "zed::IncreaseBufferFontSize", + "ctrl--": "zed::DecreaseBufferFontSize", + "ctrl-0": "zed::ResetBufferFontSize", + "ctrl-,": "zed::OpenSettings", + "ctrl-q": "zed::Quit", + "ctrl-h": "zed::Hide", + "alt-ctrl-h": "zed::HideOthers", + "ctrl-m": "zed::Minimize", + "f11": "zed::ToggleFullScreen" + } + }, + { + "context": "Editor", + "bindings": { + "escape": "editor::Cancel", + "backspace": "editor::Backspace", + "shift-backspace": "editor::Backspace", + "ctrl-h": "editor::Backspace", + "delete": "editor::Delete", + "ctrl-d": "editor::Delete", + "tab": "editor::Tab", + "shift-tab": "editor::TabPrev", + "ctrl-k": "editor::CutToEndOfLine", + "ctrl-t": "editor::Transpose", + "ctrl-backspace": "editor::DeleteToBeginningOfLine", + "ctrl-delete": "editor::DeleteToEndOfLine", + "alt-backspace": "editor::DeleteToPreviousWordStart", + "alt-delete": "editor::DeleteToNextWordEnd", + "alt-h": "editor::DeleteToPreviousWordStart", + "alt-d": "editor::DeleteToNextWordEnd", + "ctrl-x": "editor::Cut", + "ctrl-c": "editor::Copy", + "ctrl-v": "editor::Paste", + "ctrl-z": "editor::Undo", + "ctrl-shift-z": "editor::Redo", + "ctrl-y": "editor::Redo", + "up": "editor::MoveUp", + "ctrl-up": "editor::MoveToStartOfParagraph", + "pageup": "editor::PageUp", + "shift-pageup": "editor::MovePageUp", + "home": "editor::MoveToBeginningOfLine", + "down": "editor::MoveDown", + "ctrl-down": "editor::MoveToEndOfParagraph", + "pagedown": "editor::PageDown", + "shift-pagedown": "editor::MovePageDown", + "end": "editor::MoveToEndOfLine", + "left": "editor::MoveLeft", + "right": "editor::MoveRight", + "ctrl-p": "editor::MoveUp", + "ctrl-n": "editor::MoveDown", + "ctrl-b": "editor::MoveLeft", + "ctrl-f": "editor::MoveRight", + "ctrl-shift-l": "editor::NextScreen", // todo!(linux): What is this + "alt-left": "editor::MoveToPreviousWordStart", + "alt-b": "editor::MoveToPreviousWordStart", + "alt-right": "editor::MoveToNextWordEnd", + "alt-f": "editor::MoveToNextWordEnd", + "ctrl-e": "editor::MoveToEndOfLine", + "ctrl-home": "editor::MoveToBeginning", + "ctrl-=end": "editor::MoveToEnd", + "shift-up": "editor::SelectUp", + "ctrl-shift-p": "editor::SelectUp", + "shift-down": "editor::SelectDown", + "ctrl-shift-n": "editor::SelectDown", + "shift-left": "editor::SelectLeft", + "ctrl-shift-b": "editor::SelectLeft", + "shift-right": "editor::SelectRight", + "ctrl-shift-f": "editor::SelectRight", + "alt-shift-left": "editor::SelectToPreviousWordStart", + "alt-shift-b": "editor::SelectToPreviousWordStart", + "alt-shift-right": "editor::SelectToNextWordEnd", + "alt-shift-f": "editor::SelectToNextWordEnd", + "ctrl-shift-up": "editor::SelectToStartOfParagraph", + "ctrl-shift-down": "editor::SelectToEndOfParagraph", + "ctrl-shift-home": "editor::SelectToBeginning", + "ctrl-shift-end": "editor::SelectToEnd", + "ctrl-a": "editor::SelectAll", + "ctrl-l": "editor::SelectLine", + "ctrl-shift-i": "editor::Format", + "shift-home": [ + "editor::SelectToBeginningOfLine", + { + "stop_at_soft_wraps": true + } + ], + "shift-end": [ + "editor::SelectToEndOfLine", + { + "stop_at_soft_wraps": true + } + ], + "ctrl-shift-e": [ + "editor::SelectToEndOfLine", + { + "stop_at_soft_wraps": true + } + ] + } + }, + { + "context": "Editor && mode == full", + "bindings": { + "enter": "editor::Newline", + "shift-enter": "editor::Newline", + "ctrl-shift-enter": "editor::NewlineAbove", + "ctrl-enter": "editor::NewlineBelow", + "alt-z": "editor::ToggleSoftWrap", + "ctrl-f": [ + "buffer_search::Deploy", + { + "focus": true + } + ], + "alt-\\": "copilot::Suggest", + "alt-]": "copilot::NextSuggestion", + "alt-[": "copilot::PreviousSuggestion", + "ctrl->": "assistant::QuoteSelection" + } + }, + { + "context": "Editor && mode == auto_height", + "bindings": { + "ctrl-enter": "editor::Newline", + "shift-enter": "editor::Newline", + "ctrl-shift-enter": "editor::NewlineBelow" + } + }, + { + "context": "AssistantPanel", + "bindings": { + "f3": "search::SelectNextMatch", + "shift-f3": "search::SelectPrevMatch" + } + }, + { + "context": "ConversationEditor > Editor", + "bindings": { + "ctrl-enter": "assistant::Assist", + "ctrl-s": "workspace::Save", + "ctrl->": "assistant::QuoteSelection", + "shift-enter": "assistant::Split", + "ctrl-r": "assistant::CycleMessageRole" + } + }, + { + "context": "BufferSearchBar", + "bindings": { + "escape": "buffer_search::Dismiss", + "tab": "buffer_search::FocusEditor", + "enter": "search::SelectNextMatch", + "shift-enter": "search::SelectPrevMatch", + "alt-enter": "search::SelectAllMatches", + "alt-tab": "search::CycleMode" + } + }, + { + "context": "BufferSearchBar && in_replace", + "bindings": { + "enter": "search::ReplaceNext", + "ctrl-enter": "search::ReplaceAll" + } + }, + { + "context": "BufferSearchBar && !in_replace > Editor", + "bindings": { + "up": "search::PreviousHistoryQuery", + "down": "search::NextHistoryQuery" + } + }, + { + "context": "ProjectSearchBar", + "bindings": { + "escape": "project_search::ToggleFocus", + "alt-tab": "search::CycleMode", + "ctrl-shift-h": "search::ToggleReplace", + "ctrl-alt-g": "search::ActivateRegexMode", + "ctrl-alt-s": "search::ActivateSemanticMode", + "ctrl-alt-x": "search::ActivateTextMode" + } + }, + { + "context": "ProjectSearchBar > Editor", + "bindings": { + "up": "search::PreviousHistoryQuery", + "down": "search::NextHistoryQuery" + } + }, + { + "context": "ProjectSearchBar && in_replace", + "bindings": { + "enter": "search::ReplaceNext", + "ctrl-enter": "search::ReplaceAll" + } + }, + { + "context": "ProjectSearchView", + "bindings": { + "escape": "project_search::ToggleFocus", + "alt-tab": "search::CycleMode", + "ctrl-shift-h": "search::ToggleReplace", + "ctrl-alt-g": "search::ActivateRegexMode", + "ctrl-alt-s": "search::ActivateSemanticMode", + "ctrl-alt-x": "search::ActivateTextMode" + } + }, + { + "context": "Pane", + "bindings": { + "ctrl-{": "pane::ActivatePrevItem", + "ctrl-}": "pane::ActivateNextItem", + "ctrl-alt-left": "pane::ActivatePrevItem", + "ctrl-alt-right": "pane::ActivateNextItem", + "ctrl-w": "pane::CloseActiveItem", + "ctrl-alt-t": "pane::CloseInactiveItems", + "ctrl-alt-shift-w": "workspace::CloseInactiveTabsAndPanes", + "ctrl-k u": "pane::CloseCleanItems", + "ctrl-k ctrl-w": "pane::CloseAllItems", + "ctrl-f": "project_search::ToggleFocus", + "f3": "search::SelectNextMatch", + "shift-f3": "search::SelectPrevMatch", + "ctrl-shift-h": "search::ToggleReplace", + "alt-enter": "search::SelectAllMatches", + "ctrl-alt-c": "search::ToggleCaseSensitive", + "ctrl-alt-w": "search::ToggleWholeWord", + "alt-tab": "search::CycleMode", + "ctrl-alt-f": "project_search::ToggleFilters", + "ctrl-alt-g": "search::ActivateRegexMode", + "ctrl-alt-s": "search::ActivateSemanticMode", + "ctrl-alt-x": "search::ActivateTextMode" + } + }, + // Bindings from VS Code + { + "context": "Editor", + "bindings": { + "ctrl-[": "editor::Outdent", + "ctrl-]": "editor::Indent", + "ctrl-alt-up": "editor::AddSelectionAbove", + "ctrl-alt-down": "editor::AddSelectionBelow", + "ctrl-d": [ + "editor::SelectNext", + { + "replace_newest": false + } + ], + "ctrl-shift-l": "editor::SelectAllMatches", + "ctrl-shift-d": [ + "editor::SelectPrevious", + { + "replace_newest": false + } + ], + "ctrl-k ctrl-d": [ + "editor::SelectNext", + { + "replace_newest": true + } + ], + "ctrl-k ctrl-shift-d": [ + "editor::SelectPrevious", + { + "replace_newest": true + } + ], + "ctrl-k ctrl-i": "editor::Hover", + "ctrl-/": [ + "editor::ToggleComments", + { + "advance_downwards": false + } + ], + "alt-up": "editor::SelectLargerSyntaxNode", + "alt-down": "editor::SelectSmallerSyntaxNode", + "ctrl-u": "editor::UndoSelection", + "ctrl-shift-u": "editor::RedoSelection", + "f8": "editor::GoToDiagnostic", + "shift-f8": "editor::GoToPrevDiagnostic", + "f2": "editor::Rename", + "f12": "editor::GoToDefinition", + "alt-f12": "editor::GoToDefinitionSplit", + "ctrl-f12": "editor::GoToTypeDefinition", + "ctrl-alt-f12": "editor::GoToTypeDefinitionSplit", + "alt-shift-f12": "editor::FindAllReferences", + "ctrl-m": "editor::MoveToEnclosingBracket", + "ctrl-alt-[": "editor::Fold", + "ctrl-alt-]": "editor::UnfoldLines", + "ctrl-space": "editor::ShowCompletions", + "ctrl-.": "editor::ToggleCodeActions", + "ctrl-alt-r": "editor::RevealInFinder", + "ctrl-alt-c": "editor::DisplayCursorNames" + } + }, + { + "context": "Editor && mode == full", + "bindings": { + "ctrl-shift-o": "outline::Toggle", + "ctrl-g": "go_to_line::Toggle" + } + }, + { + "context": "Pane", + "bindings": { + "ctrl-1": ["pane::ActivateItem", 0], + "ctrl-2": ["pane::ActivateItem", 1], + "ctrl-3": ["pane::ActivateItem", 2], + "ctrl-4": ["pane::ActivateItem", 3], + "ctrl-5": ["pane::ActivateItem", 4], + "ctrl-6": ["pane::ActivateItem", 5], + "ctrl-7": ["pane::ActivateItem", 6], + "ctrl-8": ["pane::ActivateItem", 7], + "ctrl-9": ["pane::ActivateItem", 8], + "ctrl-0": "pane::ActivateLastItem", + "ctrl--": "pane::GoBack", + "ctrl-_": "pane::GoForward", + "ctrl-shift-t": "pane::ReopenClosedItem", + "ctrl-shift-f": "project_search::ToggleFocus" + } + }, + { + "context": "Workspace", + "bindings": { + "ctrl-alt-o": "projects::OpenRecent", + "ctrl-alt-b": "branches::OpenRecent", + "ctrl-~": "workspace::NewTerminal", + "ctrl-s": "workspace::Save", + "ctrl-shift-s": "workspace::SaveAs", + "ctrl-n": "workspace::NewFile", + "ctrl-shift-n": "workspace::NewWindow", + "ctrl-`": "terminal_panel::ToggleFocus", + "ctrl-1": ["workspace::ActivatePane", 0], + "ctrl-2": ["workspace::ActivatePane", 1], + "ctrl-3": ["workspace::ActivatePane", 2], + "ctrl-4": ["workspace::ActivatePane", 3], + "ctrl-5": ["workspace::ActivatePane", 4], + "ctrl-6": ["workspace::ActivatePane", 5], + "ctrl-7": ["workspace::ActivatePane", 6], + "ctrl-8": ["workspace::ActivatePane", 7], + "ctrl-9": ["workspace::ActivatePane", 8], + "ctrl-b": "workspace::ToggleLeftDock", + "ctrl-r": "workspace::ToggleRightDock", + "ctrl-j": "workspace::ToggleBottomDock", + "ctrl-alt-y": "workspace::CloseAllDocks", + "ctrl-shift-f": "pane::DeploySearch", + "ctrl-k ctrl-t": "theme_selector::Toggle", + "ctrl-k ctrl-s": "zed::OpenKeymap", + "ctrl-t": "project_symbols::Toggle", + "ctrl-p": "file_finder::Toggle", + "ctrl-shift-p": "command_palette::Toggle", + "ctrl-shift-m": "diagnostics::Deploy", + "ctrl-shift-e": "project_panel::ToggleFocus", + "ctrl-?": "assistant::ToggleFocus", + "ctrl-alt-s": "workspace::SaveAll", + "ctrl-k m": "language_selector::Toggle", + "escape": "workspace::Unfollow", + "ctrl-k ctrl-left": ["workspace::ActivatePaneInDirection", "Left"], + "ctrl-k ctrl-right": ["workspace::ActivatePaneInDirection", "Right"], + "ctrl-k ctrl-up": ["workspace::ActivatePaneInDirection", "Up"], + "ctrl-k ctrl-down": ["workspace::ActivatePaneInDirection", "Down"], + "ctrl-k shift-left": ["workspace::SwapPaneInDirection", "Left"], + "ctrl-k shift-right": ["workspace::SwapPaneInDirection", "Right"], + "ctrl-k shift-up": ["workspace::SwapPaneInDirection", "Up"], + "ctrl-k shift-down": ["workspace::SwapPaneInDirection", "Down"], + "alt-t": "task::Rerun", + "alt-shift-t": "task::Spawn" + } + }, + // Bindings from Sublime Text + // todo!(linux) make sure these match linux bindings or remove above comment? + { + "context": "Editor", + "bindings": { + "ctrl-shift-k": "editor::DeleteLine", + "ctrl-shift-d": "editor::DuplicateLine", + "ctrl-j": "editor::JoinLines", + "ctrl-alt-up": "editor::MoveLineUp", + "ctrl-alt-down": "editor::MoveLineDown", + "ctrl-alt-backspace": "editor::DeleteToPreviousSubwordStart", + "ctrl-alt-h": "editor::DeleteToPreviousSubwordStart", + "ctrl-alt-delete": "editor::DeleteToNextSubwordEnd", + "ctrl-alt-d": "editor::DeleteToNextSubwordEnd", + "ctrl-alt-left": "editor::MoveToPreviousSubwordStart", + "ctrl-alt-b": "editor::MoveToPreviousSubwordStart", + "ctrl-alt-right": "editor::MoveToNextSubwordEnd", + "ctrl-alt-f": "editor::MoveToNextSubwordEnd", + "ctrl-alt-shift-left": "editor::SelectToPreviousSubwordStart", + "ctrl-alt-shift-b": "editor::SelectToPreviousSubwordStart", + "ctrl-alt-shift-right": "editor::SelectToNextSubwordEnd", + "ctrl-alt-shift-f": "editor::SelectToNextSubwordEnd" + } + }, + // Bindings from Atom + // todo!(linux) make sure these match linux bindings or remove above comment? + { + "context": "Pane", + "bindings": { + "ctrl-k up": "pane::SplitUp", + "ctrl-k down": "pane::SplitDown", + "ctrl-k left": "pane::SplitLeft", + "ctrl-k right": "pane::SplitRight" + } + }, + // Bindings that should be unified with bindings for more general actions + { + "context": "Editor && renaming", + "bindings": { + "enter": "editor::ConfirmRename" + } + }, + { + "context": "Editor && showing_completions", + "bindings": { + "enter": "editor::ConfirmCompletion", + "tab": "editor::ConfirmCompletion" + } + }, + { + "context": "Editor && showing_code_actions", + "bindings": { + "enter": "editor::ConfirmCodeAction" + } + }, + { + "context": "Editor && (showing_code_actions || showing_completions)", + "bindings": { + "up": "editor::ContextMenuPrev", + "ctrl-p": "editor::ContextMenuPrev", + "down": "editor::ContextMenuNext", + "ctrl-n": "editor::ContextMenuNext", + "pageup": "editor::ContextMenuFirst", + "pagedown": "editor::ContextMenuLast" + } + }, + // Custom bindings + { + "bindings": { + "ctrl-alt-shift-f": "workspace::FollowNextCollaborator", + // TODO: Move this to a dock open action + "ctrl-alt-c": "collab_panel::ToggleFocus", + "ctrl-alt-i": "zed::DebugElements", + "ctrl-:": "editor::ToggleInlayHints" + } + }, + { + "context": "Editor && mode == full", + "bindings": { + "alt-enter": "editor::OpenExcerpts", + "ctrl-f8": "editor::GoToHunk", + "ctrl-shift-f8": "editor::GoToPrevHunk", + "ctrl-enter": "assistant::InlineAssist" + } + }, + { + "context": "ProjectSearchBar && !in_replace", + "bindings": { + "ctrl-enter": "project_search::SearchInNew" + } + }, + { + "context": "ProjectPanel", + "bindings": { + "left": "project_panel::CollapseSelectedEntry", + "right": "project_panel::ExpandSelectedEntry", + "ctrl-n": "project_panel::NewFile", + "ctrl-alt-n": "project_panel::NewDirectory", + "ctrl-x": "project_panel::Cut", + "ctrl-c": "project_panel::Copy", + "ctrl-v": "project_panel::Paste", + "ctrl-alt-c": "project_panel::CopyPath", + "ctrl-alt-shift-c": "project_panel::CopyRelativePath", + "f2": "project_panel::Rename", + "enter": "project_panel::Rename", + "backspace": "project_panel::Delete", + "ctrl-alt-r": "project_panel::RevealInFinder", + "alt-shift-f": "project_panel::NewSearchInDirectory" + } + }, + { + "context": "ProjectPanel && not_editing", + "bindings": { + "space": "project_panel::Open" + } + }, + { + "context": "CollabPanel && not_editing", + "bindings": { + "ctrl-backspace": "collab_panel::Remove", + "space": "menu::Confirm" + } + }, + { + "context": "(CollabPanel && editing) > Editor", + "bindings": { + "space": "collab_panel::InsertSpace" + } + }, + { + "context": "ChannelModal", + "bindings": { + "tab": "channel_modal::ToggleMode" + } + }, + { + "context": "ChannelModal > Picker > Editor", + "bindings": { + "tab": "channel_modal::ToggleMode" + } + }, + { + "context": "ChatPanel > MessageEditor", + "bindings": { + "escape": "chat_panel::CloseReplyPreview" + } + }, + { + "context": "Terminal", + "bindings": { + "ctrl-alt-space": "terminal::ShowCharacterPalette", + "ctrl-shift-c": "terminal::Copy", + "ctrl-shift-v": "terminal::Paste", + "ctrl-k": "terminal::Clear", + // Some nice conveniences + "ctrl-backspace": ["terminal::SendText", "\u0015"], + "ctrl-right": ["terminal::SendText", "\u0005"], + "ctrl-left": ["terminal::SendText", "\u0001"], + // Terminal.app compatibility + "alt-left": ["terminal::SendText", "\u001bb"], + "alt-right": ["terminal::SendText", "\u001bf"], + // There are conflicting bindings for these keys in the global context. + // these bindings override them, remove at your own risk: + "up": ["terminal::SendKeystroke", "up"], + "pageup": ["terminal::SendKeystroke", "pageup"], + "down": ["terminal::SendKeystroke", "down"], + "pagedown": ["terminal::SendKeystroke", "pagedown"], + "escape": ["terminal::SendKeystroke", "escape"], + "enter": ["terminal::SendKeystroke", "enter"], + "ctrl-c": ["terminal::SendKeystroke", "ctrl-c"] + } + } +] diff --git a/assets/keymaps/vim.json b/assets/keymaps/vim.json index 88ae9ae0ed43b5b48ffa4de192885fbb8e4ae8a0..7f855b9c4d490a790519140902bbaa315130606a 100644 --- a/assets/keymaps/vim.json +++ b/assets/keymaps/vim.json @@ -101,14 +101,8 @@ "ctrl-o": "pane::GoBack", "ctrl-i": "pane::GoForward", "ctrl-]": "editor::GoToDefinition", - "escape": [ - "vim::SwitchMode", - "Normal" - ], - "ctrl-[": [ - "vim::SwitchMode", - "Normal" - ], + "escape": ["vim::SwitchMode", "Normal"], + "ctrl-[": ["vim::SwitchMode", "Normal"], "v": "vim::ToggleVisual", "shift-v": "vim::ToggleVisualLine", "ctrl-v": "vim::ToggleVisualBlock", @@ -241,123 +235,36 @@ } ], // Count support - "1": [ - "vim::Number", - 1 - ], - "2": [ - "vim::Number", - 2 - ], - "3": [ - "vim::Number", - 3 - ], - "4": [ - "vim::Number", - 4 - ], - "5": [ - "vim::Number", - 5 - ], - "6": [ - "vim::Number", - 6 - ], - "7": [ - "vim::Number", - 7 - ], - "8": [ - "vim::Number", - 8 - ], - "9": [ - "vim::Number", - 9 - ], + "1": ["vim::Number", 1], + "2": ["vim::Number", 2], + "3": ["vim::Number", 3], + "4": ["vim::Number", 4], + "5": ["vim::Number", 5], + "6": ["vim::Number", 6], + "7": ["vim::Number", 7], + "8": ["vim::Number", 8], + "9": ["vim::Number", 9], // window related commands (ctrl-w X) - "ctrl-w left": [ - "workspace::ActivatePaneInDirection", - "Left" - ], - "ctrl-w right": [ - "workspace::ActivatePaneInDirection", - "Right" - ], - "ctrl-w up": [ - "workspace::ActivatePaneInDirection", - "Up" - ], - "ctrl-w down": [ - "workspace::ActivatePaneInDirection", - "Down" - ], - "ctrl-w h": [ - "workspace::ActivatePaneInDirection", - "Left" - ], - "ctrl-w l": [ - "workspace::ActivatePaneInDirection", - "Right" - ], - "ctrl-w k": [ - "workspace::ActivatePaneInDirection", - "Up" - ], - "ctrl-w j": [ - "workspace::ActivatePaneInDirection", - "Down" - ], - "ctrl-w ctrl-h": [ - "workspace::ActivatePaneInDirection", - "Left" - ], - "ctrl-w ctrl-l": [ - "workspace::ActivatePaneInDirection", - "Right" - ], - "ctrl-w ctrl-k": [ - "workspace::ActivatePaneInDirection", - "Up" - ], - "ctrl-w ctrl-j": [ - "workspace::ActivatePaneInDirection", - "Down" - ], - "ctrl-w shift-left": [ - "workspace::SwapPaneInDirection", - "Left" - ], - "ctrl-w shift-right": [ - "workspace::SwapPaneInDirection", - "Right" - ], - "ctrl-w shift-up": [ - "workspace::SwapPaneInDirection", - "Up" - ], - "ctrl-w shift-down": [ - "workspace::SwapPaneInDirection", - "Down" - ], - "ctrl-w shift-h": [ - "workspace::SwapPaneInDirection", - "Left" - ], - "ctrl-w shift-l": [ - "workspace::SwapPaneInDirection", - "Right" - ], - "ctrl-w shift-k": [ - "workspace::SwapPaneInDirection", - "Up" - ], - "ctrl-w shift-j": [ - "workspace::SwapPaneInDirection", - "Down" - ], + "ctrl-w left": ["workspace::ActivatePaneInDirection", "Left"], + "ctrl-w right": ["workspace::ActivatePaneInDirection", "Right"], + "ctrl-w up": ["workspace::ActivatePaneInDirection", "Up"], + "ctrl-w down": ["workspace::ActivatePaneInDirection", "Down"], + "ctrl-w h": ["workspace::ActivatePaneInDirection", "Left"], + "ctrl-w l": ["workspace::ActivatePaneInDirection", "Right"], + "ctrl-w k": ["workspace::ActivatePaneInDirection", "Up"], + "ctrl-w j": ["workspace::ActivatePaneInDirection", "Down"], + "ctrl-w ctrl-h": ["workspace::ActivatePaneInDirection", "Left"], + "ctrl-w ctrl-l": ["workspace::ActivatePaneInDirection", "Right"], + "ctrl-w ctrl-k": ["workspace::ActivatePaneInDirection", "Up"], + "ctrl-w ctrl-j": ["workspace::ActivatePaneInDirection", "Down"], + "ctrl-w shift-left": ["workspace::SwapPaneInDirection", "Left"], + "ctrl-w shift-right": ["workspace::SwapPaneInDirection", "Right"], + "ctrl-w shift-up": ["workspace::SwapPaneInDirection", "Up"], + "ctrl-w shift-down": ["workspace::SwapPaneInDirection", "Down"], + "ctrl-w shift-h": ["workspace::SwapPaneInDirection", "Left"], + "ctrl-w shift-l": ["workspace::SwapPaneInDirection", "Right"], + "ctrl-w shift-k": ["workspace::SwapPaneInDirection", "Up"], + "ctrl-w shift-j": ["workspace::SwapPaneInDirection", "Down"], "ctrl-w g t": "pane::ActivateNextItem", "ctrl-w ctrl-g t": "pane::ActivateNextItem", "ctrl-w g shift-t": "pane::ActivatePrevItem", @@ -379,14 +286,8 @@ "ctrl-w ctrl-q": "pane::CloseAllItems", "ctrl-w o": "workspace::CloseInactiveTabsAndPanes", "ctrl-w ctrl-o": "workspace::CloseInactiveTabsAndPanes", - "ctrl-w n": [ - "workspace::NewFileInDirection", - "Up" - ], - "ctrl-w ctrl-n": [ - "workspace::NewFileInDirection", - "Up" - ], + "ctrl-w n": ["workspace::NewFileInDirection", "Up"], + "ctrl-w ctrl-n": ["workspace::NewFileInDirection", "Up"], "-": "pane::RevealInProjectPanel" } }, @@ -402,21 +303,12 @@ "context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting", "bindings": { ".": "vim::Repeat", - "c": [ - "vim::PushOperator", - "Change" - ], + "c": ["vim::PushOperator", "Change"], "shift-c": "vim::ChangeToEndOfLine", - "d": [ - "vim::PushOperator", - "Delete" - ], + "d": ["vim::PushOperator", "Delete"], "shift-d": "vim::DeleteToEndOfLine", "shift-j": "vim::JoinLines", - "y": [ - "vim::PushOperator", - "Yank" - ], + "y": ["vim::PushOperator", "Yank"], "shift-y": "vim::YankLine", "i": "vim::InsertBefore", "shift-i": "vim::InsertFirstNonWhitespace", @@ -447,10 +339,7 @@ ], "*": "vim::MoveToNext", "#": "vim::MoveToPrev", - "r": [ - "vim::PushOperator", - "Replace" - ], + "r": ["vim::PushOperator", "Replace"], "s": "vim::Substitute", "shift-s": "vim::SubstituteLine", "> >": "editor::Indent", @@ -462,10 +351,7 @@ { "context": "Editor && VimCount", "bindings": { - "0": [ - "vim::Number", - 0 - ] + "0": ["vim::Number", 0] } }, { @@ -569,22 +455,10 @@ "shift-i": "vim::InsertBefore", "shift-a": "vim::InsertAfter", "shift-j": "vim::JoinLines", - "r": [ - "vim::PushOperator", - "Replace" - ], - "ctrl-c": [ - "vim::SwitchMode", - "Normal" - ], - "escape": [ - "vim::SwitchMode", - "Normal" - ], - "ctrl-[": [ - "vim::SwitchMode", - "Normal" - ], + "r": ["vim::PushOperator", "Replace"], + "ctrl-c": ["vim::SwitchMode", "Normal"], + "escape": ["vim::SwitchMode", "Normal"], + "ctrl-[": ["vim::SwitchMode", "Normal"], ">": "editor::Indent", "<": "editor::Outdent", "i": [ @@ -625,14 +499,8 @@ "bindings": { "tab": "vim::Tab", "enter": "vim::Enter", - "escape": [ - "vim::SwitchMode", - "Normal" - ], - "ctrl-[": [ - "vim::SwitchMode", - "Normal" - ] + "escape": ["vim::SwitchMode", "Normal"], + "ctrl-[": ["vim::SwitchMode", "Normal"] } }, {