Format JSON files in `assets/` (#8405)

Marshall Bowers created

This PR formats the JSON files in the `assets/` directory with Prettier.

This should help avoid some of the changes in formatting when these
files are touched by contributors.

Release Notes:

 - N/A

Change summary

assets/icons/file_icons/file_types.json |  558 ++++++------
assets/keymaps/atom.json                |   40 
assets/keymaps/default-linux.json       | 1120 +++++++++++++-------------
assets/keymaps/vim.json                 |  220 +----
4 files changed, 891 insertions(+), 1,047 deletions(-)

Detailed changes

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"
     }
+  }
 }

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"
     }
   },

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"]
+    }
+  }
+]

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"]
     }
   },
   {