Giter Club home page Giter Club logo

vscode-which-key's Introduction

VSpaceCode (Preview)

Docs Version Installs Ratings

VSpaceCode Logo

This extension is inspired by spacemacs and aiming to provide similar experience in VSCode. An action menu trigger by space key is implemented to reduce memorization of shortcuts. You can change the editor group, change the file language, and check git status without leaving your keyboard. This provides the speed to shortcut while minimizing typing comparing to fuzzy search in the command palette or shortcut memorizing.

Features

  • Spacemacs like action menu to reduce memorization of shortcuts
  • All menu items are customizable
  • The menu key is customizable
  • Bundle all the extensions needed out-of-the box

VSpaceCode actions

Project history

This project was initially started by StreakyCobra as a configuration file for VSCodeVim to be merged in your settings.json file. stevenguh developed on his side stevenguh/spacecode also with the goal to bring Spacemacs bindings to VSCode. After some discussion we agreed to merge the two projects to keep this niche community unified. stevenguh solution was technically better, but this project had a larger community and was better referenced, so it was decided move his extension here and to deprecate stevenguh/spacecode.

If you prefer this project's first approach using settings without an extension, see the vscode-vim branch.

Installation and documentation

You can find installation instructions and documentation in the VSpaceCode website.

Release Notes

See CHANGELOG.md

Contributing

All feature requests and help are welcome. Please check out our contributing guide on how you can help.

This project is maintained by different people around the world in their free time. Thank you for your contribution. ❤️

Related projects

  • Intellimacs - Spacemacs' like key bindings for IntelliJ platform
  • Spaceclipse - Spacemacs’ like key bindings for Eclipse
  • SpaceVim - A community-driven modular vim distribution

vscode-which-key's People

Contributors

caesius-tim avatar dependabot[bot] avatar marcoieni avatar mly32 avatar stevenguh avatar the-compiler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vscode-which-key's Issues

Feature request: Repeat last command

Problem

Sometimes commands requires a lot of key strokes. Repeating last command with single key would be great.

<spc> T T

<spc>: Opens Which Key => 1 key
Shift + t: Uppercase t, Opens UI Toggles => 2 key
Shift + t: Uppercase t, Toggles Tabs => 2 key

Total key strokes: 5

Solution

Repeat last command:
<spc> r
Total key strokes: 2

List of last commands:
<spc> R

Repeats last command:
<spc> R 1

Repeats 2nd last command:
<spc> R 2

Repeats 3rd last command:
<spc> R 3

Add default binding for `git pull`

Problem

No default command defined for git.pull.

Solution

Add default binding for git.pull.

My proposal would be to use <spc> g u for git update which would point to the command git.pull. I will attach a PR to this with this change.

Alternatives

Also considered either

  • <spc> g P as which would place right next to <spc> g p Publish making it mnemonic but I don't really like the cap here
  • <spc> g S for Sync but same objection as above and Sync isnt very close semantically to Status
  • <spc> g g for Get which is nice since no other semantic is attached to g in this context. Might be my favorite if only I had already heard Get used instead of Sync, Update or Pull by anyone in any context

Alternative commands :

  • git.pullRebase which looks like what I do most of the time ( or rather what GitKraken usually does for me ) but not sure if this usecase is more widespread than just git.pull
  • git.pullFrom add another context menu but is more flexible than pull. I don't see myself pulling anything else than my current branch though

Additional context

Feels kinda bad to have all the other git commands but not this one which is pretty useful

Possible to map arrow keys?

Hello

I have a QMK powered keyboard, meaning I can put arrow keys on a layer and don't need to use hjkl.
Since I am using a custom layout, the hjkl keys are no longer on the home row.

I want to be able to map something like spc w right, where I can navigate windows with the arrow keys. This works in emacs.

Is this possible? I'm not sure how the syntax looks like in the configuration. Hopefully this is something vscode allows you to bind!

Thanks!

Ability to search through existing commands and show chord to get there?

Not sure if there's already a way to do this, but it'd be neat if there were some kind of UI to search for a command that is mapped via vscode-which-key and also display the chord for future reference. It's unfortunate that it can't show up in the default command palette itself, but beggars can't be choosers 🙂

Support for VSCode Web

Thank you so much for this extension! I use it everyday and all my shortcuts are stored conveniently in my which-key config. Recently I tried installing it in GitHub Codespaces, and thought it might be nice to have which-key support there too.

Problem

When trying to install this extension on something like GitHub Codespaces (https://github.dev), this error appears:

image

Solution

I'm not sure why this happens, but my guess is the package needs a "browser" entrypoint in addition to "main" in package.json.

New commands do not show in default menu

Bug description

I was testing out 0.9.0 and wanted to check out the awesome new stuff that's been added recently (searching through commands, repeating last command, etc.) and noticed that they weren't actually mapped in my config. I have a very large bindingOverrides section in VSpaceCode, so I thought maybe there was some conflict there, however even after removing all of my overrides and restarting VSpaceCode, I still don't see them in the menu, and things like SPC r . and SPC ? give me an "undefined" error in the status bar.

What kind of debugging can I do here to get to the bottom of this? I'm adding my full, unmodified settings.json, but keep in mind I can reproduce this without anything overridden.

Keybindings

Click to toggle contents of `keybindings.json`

[
  {
    "command": "--editor.action.rename",
    "key": "f2",
    "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "--workbench.action.openRecent",
    "key": "cmd+e"
  },
  {
    "key": "shift+cmd+l",
    "command": "-addCursorsAtSearchResults",
    "when": "fileMatchOrMatchFocus && searchViewletVisible"
  },
  {
    "command": "-bookmarks.expandSelectionToNext",
    "key": "shift+alt+l",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+l",
    "command": "-bookmarks.jumpToNext",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+j",
    "command": "-bookmarks.jumpToPrevious",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+k",
    "command": "-bookmarks.toggle",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+cmd+.",
    "command": "-breadcrumbs.toggleToOn",
    "when": "!config.breadcrumbs.enabled"
  },
  {
    "command": "-code-runner.run",
    "key": "ctrl+alt+n"
  },
  {
    "command": "-code-runner.runByLanguage",
    "key": "ctrl+alt+j"
  },
  {
    "command": "-code-runner.runCustomCommand",
    "key": "ctrl+alt+k"
  },
  {
    "key": "ctrl+l",
    "command": "-copy-relative-path-and-line-numbers.both",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'csv'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'tsv'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'csv (semicolon)'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'csv (pipe)'"
  },
  {
    "command": "-cursorDown",
    "key": "ctrl+n",
    "when": "textInputFocus"
  },
  {
    "key": "cmd+u",
    "command": "-cursorUndo",
    "when": "textInputFocus"
  },
  {
    "command": "-deleteAllLeft",
    "key": "cmd+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-deleteAllRight",
    "key": "ctrl+k",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-deleteLeft",
    "key": "ctrl+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-deleteRight",
    "key": "ctrl+d",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "key": "cmd+k cmd+c",
    "command": "-editor.action.addCommentLine",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "shift+alt+a",
    "command": "-editor.action.blockComment",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.changeAll",
    "key": "cmd+f2",
    "when": "editorTextFocus && editorTextFocus && !editorReadonly"
  },
  {
    "key": "cmd+c",
    "command": "-editor.action.clipboardCopyAction",
    "when": "textInputFocus"
  },
  {
    "command": "-editor.action.codeAction",
    "key": "alt+cmd+v",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.commentLine",
    "key": "cmd+/",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.deleteLines",
    "key": "cmd+backspace",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.deleteLines",
    "key": "shift+cmd+k",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.diffReview.next",
    "key": "f7",
    "when": "isInDiffEditor"
  },
  {
    "command": "-editor.action.diffReview.prev",
    "key": "shift+f7",
    "when": "isInDiffEditor"
  },
  {
    "command": "-editor.action.dirtydiff.next",
    "key": "alt+f3",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.dirtydiff.previous",
    "key": "shift+alt+f3",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.goToDeclaration",
    "key": "cmd+down",
    "when": "editorHasDefinitionProvider && editorTextFocus"
  },
  {
    "command": "-editor.action.goToDeclaration",
    "key": "f4",
    "when": "editorHasDefinitionProvider && editorTextFocus"
  },
  {
    "command": "-editor.action.goToImplementation",
    "key": "cmd+f12",
    "when": "editorHasImplementationProvider && editorTextFocus && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.goToReferences",
    "key": "shift+f12",
    "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "key": "shift+cmd+.",
    "command": "-editor.action.inPlaceReplace.down",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "shift+cmd+,",
    "command": "-editor.action.inPlaceReplace.up",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.indentLines",
    "key": "cmd+]",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.insertLineAfter",
    "key": "cmd+enter",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.insertLineAfter",
    "key": "shift+cmd+enter",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible"
  },
  {
    "command": "-editor.action.insertLineBefore",
    "key": "alt+cmd+enter",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.joinLines",
    "key": "ctrl+j",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.joinLines",
    "key": "ctrl+shift+j",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.moveLinesDownAction",
    "key": "alt+down",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.moveLinesUpAction",
    "key": "alt+up",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.nextMatchFindAction",
    "key": "f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.nextSelectionMatchFindAction",
    "key": "cmd+f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.outdentLines",
    "key": "cmd+[",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.peekDefinition",
    "key": "alt+f12",
    "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.peekImplementation",
    "key": "shift+cmd+f12",
    "when": "editorHasImplementationProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.previewDeclaration",
    "key": "alt+space",
    "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor"
  },
  {
    "command": "-editor.action.previousMatchFindAction",
    "key": "shift+cmd+g",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.previousMatchFindAction",
    "key": "shift+f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.previousSelectionMatchFindAction",
    "key": "shift+cmd+f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.quickFix",
    "key": "alt+enter",
    "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.referenceSearch.trigger",
    "key": "alt+cmd+f7",
    "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor"
  },
  {
    "key": "cmd+k cmd+u",
    "command": "-editor.action.removeCommentLine",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.rename",
    "key": "f2",
    "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.rename",
    "key": "shift+f6",
    "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.revealDefinition",
    "key": "f12",
    "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.revealDefinitionAside",
    "key": "cmd+k f12",
    "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.showAccessibilityHelp",
    "key": "alt+f1",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.showContextMenu",
    "key": "shift+f10",
    "when": "textInputFocus"
  },
  {
    "key": "cmd+k cmd+i",
    "command": "-editor.action.showHover",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.showHover",
    "key": "ctrl+j",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.smartSelect.grow",
    "key": "alt+up",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.smartSelect.shrink",
    "key": "alt+down",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.triggerSuggest",
    "key": "ctrl+space",
    "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
  },
  {
    "key": "cmd+k cmd+x",
    "command": "-editor.action.trimTrailingWhitespace",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "cmd+c",
    "command": "-editor.action.webvieweditor.copy",
    "when": "!editorFocus && !inputFocus && activeEditor == 'WebviewEditor'"
  },
  {
    "command": "-editor.action.wordHighlight.next",
    "key": "f7",
    "when": "editorTextFocus && hasWordHighlights"
  },
  {
    "command": "-editor.action.wordHighlight.prev",
    "key": "shift+f7",
    "when": "editorTextFocus && hasWordHighlights"
  },
  {
    "command": "-editor.debug.action.runToCursor",
    "key": "alt+f9",
    "when": "inDebugMode"
  },
  {
    "command": "-editor.debug.action.selectionToRepl",
    "key": "alt+f8",
    "when": "editorHasSelection && editorTextFocus"
  },
  {
    "command": "-editor.debug.action.toggleInlineBreakpoint",
    "key": "shift+f9",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+k cmd+0",
    "command": "-editor.foldAll",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "command": "-editor.foldAll",
    "key": "shift+cmd+-",
    "when": "editorFocus"
  },
  {
    "key": "cmd+k cmd+/",
    "command": "-editor.foldAllBlockComments",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+8",
    "command": "-editor.foldAllMarkerRegions",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+1",
    "command": "-editor.foldLevel1",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+2",
    "command": "-editor.foldLevel2",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+3",
    "command": "-editor.foldLevel3",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+4",
    "command": "-editor.foldLevel4",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+5",
    "command": "-editor.foldLevel5",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+6",
    "command": "-editor.foldLevel6",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+7",
    "command": "-editor.foldLevel7",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+[",
    "command": "-editor.foldRecursively",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "command": "-editor.gotoNextSymbolFromResult",
    "key": "f12",
    "when": "hasSymbols"
  },
  {
    "key": "cmd+k cmd+l",
    "command": "-editor.toggleFold",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "command": "-editor.unfold",
    "key": "cmd+=",
    "when": "editorFocus"
  },
  {
    "command": "-editor.unfold",
    "key": "cmd+numpad_add",
    "when": "editorFocus"
  },
  {
    "key": "cmd+k cmd+j",
    "command": "-editor.unfoldAll",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+9",
    "command": "-editor.unfoldAllMarkerRegions",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+]",
    "command": "-editor.unfoldRecursively",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+c",
    "command": "-execCopy"
  },
  {
    "key": "ctrl+l c",
    "command": "-extension.copyGitHubLinkToClipboard"
  },
  {
    "key": "ctrl+shift+h",
    "command": "-extension.dash.emptySyntax",
    "when": "editorTextFocus"
  },
  {
    "command": "-extension.downloadSettings",
    "key": "shift+alt+d"
  },
  {
    "command": "-extension.node-debug.pickLoadedScript",
    "key": "cmd+f4",
    "when": "debugType == 'node'"
  },
  {
    "command": "-extension.node-debug.pickLoadedScript",
    "key": "cmd+f4",
    "when": "debugType == 'node2'"
  },
  {
    "command": "-extension.node-debug.pickLoadedScript",
    "key": "cmd+f4",
    "when": "debugType == 'chrome'"
  },
  {
    "command": "-extension.node-debug.startWithStopOnEntry",
    "key": "f10",
    "when": "!inDebugMode && debugConfigurationType == 'node'"
  },
  {
    "command": "-extension.node-debug.startWithStopOnEntry",
    "key": "f11",
    "when": "!inDebugMode && debugConfigurationType == 'node'"
  },
  {
    "key": "cmd+unknown",
    "command": "-extension.openWith",
    "when": "editorTextFocus && editorLangId == 'html'"
  },
  {
    "key": "cmd+k d",
    "command": "-extension.openWithDefault",
    "when": "editorTextFocus && editorLangId == 'html'"
  },
  {
    "key": "alt+b",
    "command": "-extension.setBrowserScope"
  },
  {
    "key": "cmd+c",
    "command": "-filesExplorer.copy",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
  },
  {
    "command": "-git.commitAll",
    "key": "cmd+k",
    "when": "!inDebugMode && !terminalFocus"
  },
  {
    "key": "cmd+k cmd+r",
    "command": "-git.revertSelectedRanges",
    "when": "isInDiffEditor"
  },
  {
    "key": "alt+cmd+g /",
    "command": "-gitlens.showCommitSearch",
    "when": "gitlens:enabled && config.gitlens.keymap == 'chorded'"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.compare.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.compare/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.fileHistory.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.fileHistory/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.lineHistory.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.lineHistory/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.repositories.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.repositories/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.search.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.search/"
  },
  {
    "key": "cmd+c cmd+c",
    "command": "-gitlens.views.search.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.search/"
  },
  {
    "command": "-goToNextReference",
    "key": "f12",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-goToNextReference",
    "key": "f4",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-goToPreviousReference",
    "key": "shift+f12",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-goToPreviousReference",
    "key": "shift+f4",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "key": "ctrl+s",
    "command": "-issue.createIssueFromFile",
    "when": "resourceScheme == 'newIssue' && config.files.autoSave != 'off'"
  },
  {
    "key": "cmd+c",
    "command": "-keybindings.editor.copyKeybindingEntry",
    "when": "inKeybindings && keybindingFocus"
  },
  {
    "key": "cmd+c cmd+c",
    "command": "-keybindings.editor.copyKeybindingEntry",
    "when": "inKeybindings && keybindingFocus"
  },
  {
    "command": "-lineBreakInsert",
    "key": "cmd+enter",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-list.focusDown",
    "key": "ctrl+n",
    "when": "listFocus && !inputFocus"
  },
  {
    "command": "-list.focusUp",
    "key": "ctrl+p",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "k",
    "command": "-magit.discard-at-point"
  },
  {
    "key": "ctrl+u x",
    "command": "-magit.reset-hard"
  },
  {
    "key": "x",
    "command": "-magit.reset-mixed"
  },
  {
    "key": "shift+x",
    "command": "-magit.resetting"
  },
  {
    "key": "v",
    "command": "-magit.reverse-at-point"
  },
  {
    "key": "shift+v",
    "command": "-magit.reverting"
  },
  {
    "key": "y",
    "command": "-magit.show-refs"
  },
  {
    "key": "tab",
    "command": "-magit.toggle-fold",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "command": "-markdown-checkbox.markCheckbox",
    "key": "shift+cmd+enter",
    "when": "editorTextFocus"
  },
  {
    "command": "-markdown-preview-enhanced.openPreview",
    "key": "cmd+k v",
    "when": "editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onBackspaceKey",
    "key": "backspace",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onCtrlEnterKey",
    "key": "cmd+enter",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onIndentLines",
    "key": "cmd+]",
    "when": "editorTextFocus && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onMoveLineDown",
    "key": "alt+down",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onMoveLineUp",
    "key": "alt+up",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onOutdentLines",
    "key": "cmd+[",
    "when": "editorTextFocus && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onShiftEnterKey",
    "key": "shift+enter",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "key": "shift+tab",
    "command": "-markdown.extension.onShiftTabKey",
    "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "key": "tab",
    "command": "-markdown.extension.onTabKey",
    "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.togglePreview",
    "key": "ctrl+shift+v",
    "when": "!terminalFocus"
  },
  {
    "key": "shift+cmd+v",
    "command": "-markdown.extension.togglePreview",
    "when": "!terminalFocus"
  },
  {
    "key": "cmd+k v",
    "command": "-markdown.extension.togglePreviewToSide",
    "when": "!terminalFocus"
  },
  {
    "command": "-markdown.extension.togglePreviewToSide",
    "key": "ctrl+k v",
    "when": "!terminalFocus"
  },
  {
    "key": "pagedown",
    "command": "-notifications.focusLastToast",
    "when": "notificationFocus && notificationToastsVisible"
  },
  {
    "command": "-npm-script.rerun-last-script",
    "key": "cmd+r r"
  },
  {
    "command": "-o.showOutput",
    "key": "shift+cmd+f9"
  },
  {
    "key": "cmd+c",
    "command": "-problems.action.copy",
    "when": "problemFocus"
  },
  {
    "command": "-projects.open",
    "key": "alt+cmd+p"
  },
  {
    "command": "-references-view.find",
    "key": "alt+f7",
    "when": "editorHasReferenceProvider"
  },
  {
    "command": "-references-view.find",
    "key": "shift+alt+f12",
    "when": "editorHasReferenceProvider"
  },
  {
    "command": "-references-view.next",
    "key": "f4",
    "when": "reference-list.hasResult"
  },
  {
    "command": "-references-view.prev",
    "key": "shift+f4",
    "when": "reference-list.hasResult"
  },
  {
    "key": "cmd+c",
    "command": "-remote.tunnel.copyAddressInline",
    "when": "tunnelViewFocus && tunnelType == 'Detected' || tunnelViewFocus && tunnelType == 'Forwarded'"
  },
  {
    "command": "-renameFile",
    "key": "shift+f6",
    "when": "explorerViewletVisible && filesExplorerFocus"
  },
  {
    "command": "-revealFileInOS",
    "key": "alt+cmd+r",
    "when": "!editorFocus"
  },
  {
    "key": "ctrl+shift+j",
    "command": "-rust-analyzer.joinLines",
    "when": "editorTextFocus && editorLangId == 'rust'"
  },
  {
    "command": "-search.action.copyMatch",
    "key": "cmd+c",
    "when": "fileMatchOrMatchFocus"
  },
  {
    "command": "-search.action.focusNextSearchResult",
    "key": "f4",
    "when": "hasSearchResult"
  },
  {
    "key": "f4",
    "command": "-search.action.focusNextSearchResult",
    "when": "hasSearchResult || inSearchEditor"
  },
  {
    "key": "ctrl+shift+j",
    "command": "search.action.focusNextSearchResult",
    "when": "hasSearchResult && searchViewletVisible && focusedView == 'workbench.view.search'"
  },
  {
    "command": "-search.action.focusPreviousSearchResult",
    "key": "shift+f4",
    "when": "hasSearchResult"
  },
  {
    "key": "shift+cmd+l",
    "command": "-selectAllSearchEditorMatches",
    "when": "inSearchEditor"
  },
  {
    "command": "-selectNextSuggestion",
    "key": "ctrl+n",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "command": "-selectPrevSuggestion",
    "key": "ctrl+p",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "escape",
    "command": "-settings.action.clearSearchResults",
    "when": "inSettingsSearch"
  },
  {
    "command": "-settings.action.showContextMenu",
    "key": "shift+f9",
    "when": "inSettingsEditor"
  },
  {
    "command": "-showNextParameterHint",
    "key": "ctrl+n",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-showNextParameterHint",
    "key": "ctrl+n",
    "when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-showPrevParameterHint",
    "key": "ctrl+p",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-showPrevParameterHint",
    "key": "ctrl+p",
    "when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-todo.toggleBox",
    "key": "cmd+enter",
    "when": "editorTextFocus && editorLangId == 'todo'"
  },
  {
    "command": "-toggleFindRegex",
    "key": "alt+cmd+r",
    "when": "editorFocus"
  },
  {
    "command": "-togglePeekWidgetFocus",
    "key": "cmd+k f2",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-toggleSuggestionDetails",
    "key": "ctrl+space",
    "when": "suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "ctrl+]",
    "command": "-wiki.goToWiki"
  },
  {
    "command": "-workbench.action.compareEditor.nextChange",
    "key": "alt+f5",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.compareEditor.nextChange",
    "key": "f7",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.compareEditor.previousChange",
    "key": "shift+alt+f5",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.compareEditor.previousChange",
    "key": "shift+f7",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.debug.pause",
    "key": "f6",
    "when": "debugState == 'running'"
  },
  {
    "command": "-workbench.action.editor.changeLanguageMode",
    "key": "cmd+k m"
  },
  {
    "command": "-workbench.action.editor.nextChange",
    "key": "alt+f5",
    "when": "editorTextFocus"
  },
  {
    "command": "-workbench.action.editor.previousChange",
    "key": "shift+alt+f5",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+s",
    "command": "-workbench.action.files.save"
  },
  {
    "command": "-workbench.action.files.saveAll",
    "key": "cmd+s"
  },
  {
    "key": "cmd+k o",
    "command": "-workbench.action.files.showOpenedFileInNewWindow"
  },
  {
    "key": "cmd+0",
    "command": "-workbench.action.focusSideBar"
  },
  {
    "command": "-workbench.action.keybindingsReference",
    "key": "cmd+k cmd+r"
  },
  {
    "command": "-workbench.action.maximizeEditor",
    "key": "shift+cmd+f12"
  },
  {
    "command": "-workbench.action.navigateBack",
    "key": "cmd+["
  },
  {
    "command": "-workbench.action.navigateForward",
    "key": "cmd+]"
  },
  {
    "key": "cmd+k cmd+q",
    "command": "-workbench.action.navigateToLastEditLocation"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "-workbench.action.quickOpenLeastRecentlyUsedEditorInGroup"
  },
  {
    "key": "ctrl+tab",
    "command": "-workbench.action.quickOpenNavigateNextInEditorPicker",
    "when": "inEditorsPicker && inQuickOpen"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "-workbench.action.quickOpenNavigatePreviousInEditorPicker",
    "when": "inEditorsPicker && inQuickOpen"
  },
  {
    "key": "ctrl+tab",
    "command": "-workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup"
  },
  {
    "command": "-workbench.action.quickOpenSelectNext",
    "key": "ctrl+n",
    "when": "inQuickOpen"
  },
  {
    "command": "-workbench.action.quickOpenSelectNext",
    "key": "ctrl+n",
    "when": "neovim.mode == 'cmdline_normal'"
  },
  {
    "command": "-workbench.action.quickOpenSelectPrevious",
    "key": "ctrl+p",
    "when": "inQuickOpen"
  },
  {
    "command": "-workbench.action.quickOpenSelectPrevious",
    "key": "ctrl+p",
    "when": "neovim.mode == 'cmdline_normal'"
  },
  {
    "key": "cmd+q",
    "command": "-workbench.action.quit"
  },
  {
    "key": "alt+cmd+tab",
    "command": "-workbench.action.showAllEditors"
  },
  {
    "command": "-workbench.action.showCommands",
    "key": "f1"
  },
  {
    "command": "-workbench.action.showCommands",
    "key": "shift+cmd+a"
  },
  {
    "command": "-workbench.action.showCommands",
    "key": "shift+cmd+p"
  },
  {
    "command": "-workbench.action.showErrorsWarnings",
    "key": "cmd+f1",
    "when": "editorTextFocus"
  },
  {
    "command": "-workbench.action.splitEditorOrthogonal",
    "key": "cmd+k cmd+\\"
  },
  {
    "command": "-workbench.action.tasks.build",
    "key": "cmd+f9"
  },
  {
    "key": "cmd+k",
    "command": "-workbench.action.terminal.clear",
    "when": "terminalFocus"
  },
  {
    "key": "cmd+c",
    "command": "-workbench.action.terminal.copySelection",
    "when": "terminalFocus && terminalTextSelected"
  },
  {
    "command": "-workbench.action.terminal.findNext",
    "key": "f3",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.findNext",
    "key": "f3",
    "when": "terminalFindWidgetFocused"
  },
  {
    "command": "-workbench.action.terminal.findPrevious",
    "key": "shift+f3",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.findPrevious",
    "key": "shift+f3",
    "when": "terminalFindWidgetFocused"
  },
  {
    "command": "-workbench.action.terminal.focus",
    "key": "alt+f12",
    "when": "!terminalFocus"
  },
  {
    "key": "ctrl+cmd+down",
    "command": "-workbench.action.terminal.resizePaneDown",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.resizePaneLeft",
    "key": "ctrl+cmd+left",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+cmd+right",
    "command": "-workbench.action.terminal.resizePaneRight",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+cmd+up",
    "command": "-workbench.action.terminal.resizePaneUp",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.toggleTerminal",
    "key": "alt+f12",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.toggleTerminal",
    "key": "ctrl+`"
  },
  {
    "key": "alt+cmd+i",
    "command": "-workbench.action.toggleDevTools",
    "when": "isDevelopment"
  },
  {
    "command": "-workbench.action.togglePanel",
    "key": "cmd+j"
  },
  {
    "command": "-workbench.action.zoomIn",
    "key": "cmd+="
  },
  {
    "command": "-workbench.action.zoomIn",
    "key": "cmd+numpad_add"
  },
  {
    "command": "-workbench.actions.view.problems",
    "key": "cmd+0"
  },
  {
    "command": "-workbench.actions.view.problems",
    "key": "cmd+numpad0"
  },
  {
    "command": "-workbench.actions.view.problems",
    "key": "shift+cmd+m"
  },
  {
    "key": "cmd+k d",
    "command": "-workbench.files.action.compareWithSaved"
  },
  {
    "command": "-workbench.files.action.focusOpenEditorsView",
    "key": "cmd+k e",
    "when": "workbench.explorer.openEditorsView.active"
  },
  {
    "command": "-workbench.view.search",
    "key": "cmd+numpad3",
    "when": "!searchViewletVisible"
  },
  {
    "command": "-workbench.view.search",
    "key": "shift+cmd+f",
    "when": "!searchViewletVisible"
  },
  {
    "command": "cursorLeft",
    "key": "ctrl+h",
    "when": "textInputFocus"
  },
  {
    "command": "cursorRight",
    "key": "ctrl+l",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartRight",
    "key": "ctrl+alt+right",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartRightSelect",
    "key": "ctrl+shift+alt+right",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartStartLeft",
    "key": "ctrl+alt+left",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartStartLeftSelect",
    "key": "ctrl+shift+alt+left",
    "when": "textInputFocus"
  },
  {
    "command": "deleteAllLeft",
    "key": "cmd+backspace"
  },
  {
    "command": "deleteWordPartLeft",
    "key": "ctrl+alt+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "deleteWordPartRight",
    "key": "ctrl+shift+alt+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "editor.action.deleteLines",
    "key": "shift+cmd+backspace",
    "when": "editorFocus"
  },
  {
    "key": "shift+alt+down",
    "command": "editor.action.moveLinesDownAction"
  },
  {
    "key": "shift+alt+up",
    "command": "editor.action.moveLinesUpAction"
  },
  {
    "command": "editor.action.peekDefinition",
    "key": "alt+enter",
    "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "command": "editor.action.triggerSuggest",
    "key": "ctrl+space",
    "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
  },
  {
    "command": "expand_region",
    "key": "alt+up"
  },
  {
    "key": "a",
    "command": "explorer.newFile",
    "when": "filesExplorerFocus && !editorTextFocus && !inputFocus"
  },
  {
    "key": "shift+a",
    "command": "explorer.newFolder",
    "when": "filesExplorerFocus && !editorTextFocus && !inputFocus"
  },
  {
    "command": "extension.jumpy-exit",
    "key": "Escape",
    "when": "editorTextFocus && jumpy.isJumpyMode"
  },
  {
    "command": "extension.jumpy-line",
    "key": "shift+alt+enter",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+alt+a",
    "command": "extension.switchDay"
  },
  {
    "key": "shift+alt+d",
    "command": "extension.switchNight"
  },
  {
    "command": "extension.toggleTheme",
    "key": "shift+alt+d"
  },
  {
    "key": "backspace",
    "command": "extension.vim_backspace",
    "when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
  },
  {
    "key": "ctrl+l",
    "command": "file-browser.stepIn",
    "when": "inFileBrowser"
  },
  {
    "key": "ctrl+h",
    "command": "file-browser.stepOut",
    "when": "inFileBrowser"
  },
  {
    "key": "c",
    "command": "filesExplorer.copy",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
  },
  {
    "key": "cmd+k cmd+r",
    "command": "keybindings.editor.resetKeybinding"
  },
  {
    "command": "list.focusDown",
    "key": "ctrl+tab",
    "when": "listFocus && !inputFocus && !editorFocus"
  },
  {
    "command": "list.focusUp",
    "key": "ctrl+k",
    "when": "listFocus && !inputFocus"
  },
  {
    "command": "list.focusUp",
    "key": "ctrl+shift+tab",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "x",
    "command": "magit.discard-at-point",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "shift+o",
    "command": "magit.resetting",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "-",
    "command": "magit.reverse-at-point",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "shift+-",
    "command": "magit.reverting",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "ctrl+tab",
    "command": "magit.toggle-fold",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "command": "markdown-checkbox.markCheckbox",
    "key": "alt+enter",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+c",
    "command": "problems.action.copy",
    "when": "problemFocus"
  },
  {
    "key": "cmd+c",
    "command": "remote.tunnel.copyAddressInline",
    "when": "tunnelViewFocus && tunnelType == 'Detected' || tunnelViewFocus && tunnelType == 'Forwarded'"
  },
  {
    "command": "search.action.copyMatch",
    "key": "cmd+c",
    "when": "fileMatchOrMatchFocus"
  },
  {
    "key": "ctrl+shift+k",
    "command": "search.action.focusPreviousSearchResult",
    "when": "hasSearchResult && searchViewletVisible"
  },
  {
    "key": "tab",
    "command": "selectNextQuickFix",
    "when": "editorFocus && quickFixWidgetVisible"
  },
  {
    "command": "selectNextSuggestion",
    "key": "ctrl+j",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "ctrl+j",
    "command": "selectNextSuggestion",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "tab",
    "command": "selectNextSuggestion",
    "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
  },
  {
    "key": "shift+tab",
    "command": "selectPrevQuickFix",
    "when": "editorFocus && quickFixWidgetVisible"
  },
  {
    "command": "selectPrevSuggestion",
    "key": "ctrl+k",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "ctrl+k",
    "command": "selectPrevSuggestion",
    "when": "suggestWidgetMultipleworkbenchSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "shift+tab",
    "command": "selectPrevSuggestion",
    "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
  },
  {
    "key": "Escape",
    "command": "workbench.action.blur",
    "when": "inSettingsSearch"
  },
  {
    "key": "ctrl+j",
    "command": "showNextParameterHint",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "key": "ctrl+k",
    "command": "showPrevParameterHint",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "toggleSuggestionDetails",
    "key": "alt+space",
    "when": "suggestWidgetVisible && textInputFocus"
  },
  {
    "command": "undo_expand_region",
    "key": "alt+down",
    "when": "editorTextFocus && editorHasSelection"
  },
  {
    "key": "y",
    "command": "vspacecode.showMagitRefMenu",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode == 'Normal'"
  },
  {
    "key": "ctrl+space",
    "command": "vspacecode.space",
    "when": "terminalFocus"
  },
  {
    "key": "space",
    "command": "vspacecode.space",
    "when": "!whichkeyActive && !inputFocus && !textInputFocus && activeViewlet != 'workbench.view.extension.github-pull-requests'"
  },
  {
    "key": "ctrl+n",
    "command": "workbench.action.compareEditor.nextChange",
    "when": "isInDiffEditor"
  },
  {
    "key": "ctrl+p",
    "command": "workbench.action.compareEditor.previousChange",
    "when": "isInDiffEditor"
  },
  {
    "key": "shift+cmd+,",
    "command": "workbench.action.decreaseViewSize"
  },
  {
    "key": "escape",
    "command": "workbench.action.blur",
    "when": "!editorTextFocus && !whichKeyActive && inputFocus && !terminalFocus"
  },
  {
    "key": "escape",
    "command": "workbench.action.blur",
    "when": "!editorTextFocus && !whichKeyActive && panelFocus && !terminalFocus"
  },
  {
    "key": "shift+escape",
    "command": "workbench.action.blur",
    "when": "terminalFocus"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.explorer'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.scm'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.debug'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extensions'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.test'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.github-pull-requests'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.bookmarks'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.gistpad'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.todo-tree-container'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.project-manager'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.dockerView'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.kubernetesView'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.mongoDB'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.explorer'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.scm'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.debug'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extensions'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.github-pull-requests'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "inKeybindings"
  },
  {
    "command": "workbench.action.focusLastEditorGroup",
    "key": "shift+tab",
    "when": "inKeybindings && activeEditorGroupLast && !sideBarVisible"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.bookmarks'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.gistpad'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.todo-tree-container'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.project-manager'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.dockerView'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.kubernetesView'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.mongoDB'"
  },
  {
    "command": "workbench.action.focusNextGroup",
    "key": "tab",
    "when": "editorFocus && vim.mode == 'Normal'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusNextGroup",
    "when": "inKeybindings"
  },
  {
    "command": "workbench.action.focusPreviousGroup",
    "key": "shift+tab",
    "when": "editorFocus && vim.mode == 'Normal' && activeEditorGroupIndex != 1"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "shift+tab",
    "when": "editorFocus && vim.mode == 'Normal' && activeEditorGroupIndex == 1"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "shift+tab",
    "when": "inKeybindings && activeEditorGroupIndex == 1 && sideBarVisible"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "tab",
    "when": "editorFocus && vim.mode == 'Normal' && activeEditorGroupLast && sideBarVisible"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "tab",
    "when": "inKeybindings && activeEditorGroupLast && sideBarVisible"
  },
  {
    "key": "shift+cmd+.",
    "command": "workbench.action.increaseViewSize"
  },
  {
    "command": "workbench.action.navigateBack",
    "key": "cmd+["
  },
  {
    "command": "workbench.action.navigateForward",
    "key": "cmd+]"
  },
  {
    "key": "ctrl+tab",
    "command": "workbench.action.nextPanelView",
    "when": "panelFocus"
  },
  {
    "key": "shift+ctrl+tab",
    "command": "workbench.action.previousPanelView",
    "when": "panelFocus"
  },
  {
    "key": "ctrl+j",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
  },
  {
    "key": "ctrl+j",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
  },
  {
    "command": "workbench.action.quickOpenSelectPrevious",
    "key": "ctrl+k",
    "when": "inQuickOpen"
  },
  {
    "key": "ctrl+k",
    "command": "workbench.action.quickOpenSelectPrevious",
    "when": "inQuickOpen"
  },
  {
    "key": "cmd+c",
    "command": "workbench.action.terminal.copySelection",
    "when": "terminalFocus && terminalTextSelected"
  },
  {
    "command": "workbench.action.terminal.focus",
    "key": "cmd+'"
  },
  {
    "command": "workbench.action.terminal.runSelectedText",
    "key": "ctrl+shift+alt+t"
  },
  {
    "command": "workbench.action.terminal.toggleTerminal",
    "key": "ctrl+'"
  },
  {
    "key": "cmd+k alt+cmd+right",
    "command": "-workbench.action.nextEditorInGroup"
  },
  {
    "key": "cmd+k alt+cmd+left",
    "command": "-workbench.action.previousEditorInGroup"
  },
  {
    "key": "shift+cmd+i",
    "command": "-emojisense.quickEmojitext",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+cmd+i",
    "command": "-emojisense.quickEmojitextTerminal",
    "when": "terminalFocus"
  },
  {
    "key": "cmd+i",
    "command": "-emojisense.quickEmoji",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+i",
    "command": "-emojisense.quickEmojiTerminal",
    "when": "terminalFocus"
  },
  {
    "key": "backspace",
    "command": "extension.vim_shift+backspace",
    "when": "editorTextFocus && vim.use<shift+BS> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
  },
  {
    "key": "backspace",
    "command": "deleteLeft",
    "when": "textInputFocus && !vim.active"
  },
  {
    "key": "backspace",
    "command": "deleteLeft",
    "when": "textInputFocus && !editorTextFocus"
  },
  {
    "key": "backspace",
    "command": "deleteLeft",
    "when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode == 'Insert'"
  },
  {
    "key": "shift+tab",
    "command": "editor.action.outdentLines",
    "when": "editorTextFocus && vim.mode == 'Visual'"
  },
  {
    "key": "shift+tab",
    "command": "editor.action.outdentLines",
    "when": "editorTextFocus && vim.mode == 'VisualLine'"
  },
  {
    "key": "shift+tab",
    "command": "editor.action.outdentlines",
    "when": "editorTextfocus && vim.mode == 'VisualBlock'"
  },
  {
    "key": "q",
    "command": "workbench.action.closeSidebar",
    "when": "sideBarFocus && !inputFocus"
  },
  {
    "key": "ctrl+tab",
    "command": "workbench.action.nextSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "workbench.action.previousSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "d",
    "command": "deleteFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "alt+cmd+backspace",
    "command": "-deleteFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "r",
    "command": "renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "shift+r",
    "command": "workbench.files.action.refreshFilesExplorer",
    "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus"
  },
  {
    "key": "enter",
    "command": "-renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "enter",
    "command": "list.select",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "p",
    "command": "filesExplorer.openFilePreserveFocus",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsFolder && !inputFocus"
  },
  {
    "key": "space",
    "command": "-filesExplorer.openFilePreserveFocus",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsFolder && !inputFocus"
  },
  {
    "key": "j",
    "command": "list.focusDown",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "j",
    "command": "-list.focusDown",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "g h",
    "command": "workbench.files.action.collapseExplorerFolders",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "X",
    "command": "code-runner.run",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "j",
    "command": "workbench.statusBar.focusNext",
    "when": "statusBarFocused"
  },
  {
    "key": "k",
    "command": "workbench.statusBar.focusPrevious",
    "when": "statusBarFocused"
  },
  {
    "key": "alt+j",
    "command": "editor.action.copyLinesDownAction"
  },
  {
    "key": "alt+k",
    "command": "editor.action.copyLinesUpAction"
  },
  {
    "key": "ctrl+shift+s",
    "command": "workbench.action.files.saveAll"
  },
  {
    "key": "alt+cmd+s",
    "command": "-workbench.action.files.saveAll"
  },
  {
    "key": "ctrl+s",
    "command": "workbench.action.files.save"
  },
  {
    "key": "shift+alt+cmd+p",
    "command": "togglePeekWidgetFocus"
  },
  {
    "key": "cmd+\\",
    "command": "workbench.action.toggleSidebarVisibility"
  },
  {
    "key": "cmd+b",
    "command": "-workbench.action.toggleSidebarVisibility"
  },
  {
    "key": "cmd+\\",
    "command": "-workbench.action.splitEditor"
  },
  {
    "key": "shift+alt+f",
    "command": "-editor.action.formatDocument.none",
    "when": "editorTextFocus && !editorHasDocumentFormattingProvider && !editorHasDocumentFormattingProvider && !editorReadonly"
  },
  {
    "key": "shift+alt+f",
    "command": "-editor.action.formatDocument",
    "when": "editorHasDocumentFormattingProvider && editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
  },
  {
    "key": "ctrl+p",
    "command": "-cursorUp",
    "when": "textInputFocus"
  },
  {
    "key": "p",
    "command": "filesExplorer.paste",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "cmd+v",
    "command": "-filesExplorer.paste",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "shift+l",
    "command": "breadcrumbs.focusNextWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "alt+right",
    "command": "-breadcrumbs.focusNextWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "h",
    "command": "breadcrumbs.focusPrevious",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "alt+left",
    "command": "-breadcrumbs.focusPrevious",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "left",
    "command": "-breadcrumbs.focusPrevious",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "shift+l",
    "command": "breadcrumbs.focusNext",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "right",
    "command": "-breadcrumbs.focusNext",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "shift+h",
    "command": "breadcrumbs.focusPreviousWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "alt+left",
    "command": "-breadcrumbs.focusPreviousWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "alt+right",
    "command": "-breadcrumbs.focusNext",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "l",
    "command": "list.expand",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "h",
    "command": "list.collapse",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "ctrl+enter",
    "command": "editor.action.openLink",
    "when": "inSearchEditor"
  },
  {
    "key": "ctrl+l",
    "command": "-md-shortcut.toggleLink",
    "when": "editorTextFocus && markdownShortcuts:enabled"
  },
  {
    "key": "alt+w",
    "command": "workbench.action.increaseViewHeight"
  },
  {
    "key": "alt+w",
    "command": "-extension.htmlTagWrap",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+d",
    "command": "workbench.action.increaseViewWidth"
  },
  {
    "key": "alt+s",
    "command": "workbench.action.decreaseViewHeight"
  },
  {
    "key": "alt+a",
    "command": "workbench.action.decreaseViewWidth"
  },
  {
    "key": "tab",
    "command": "search.action.focusSearchList",
    "when": "hasSearchResult && searchViewletVisible && focusedView == 'workbench.view.search'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.findInFiles",
    "when": "hasSearchResult && searchViewletVisible && focusedView == 'workbench.view.search'"
  },
  {
    "key": "ctrl+j",
    "command": "list.focusDown",
    "when": "panelFocus && activePanel == 'workbench.panel.markers' && !inputFocus"
  },
  {
    "key": "ctrl+l",
    "command": "list.expand",
    "when": "panelFocus && activePanel == 'workbench.panel.markers' && !inputFocus"
  },
  {
    "key": "ctrl+h",
    "command": "list.collapse",
    "when": "panelFocus && activePanel == 'workbench.panel.markers' && !inputFocus"
  },
  {
    "key": "tab",
    "command": "problems.action.focusProblemsFromFilter",
    "when": "problemsFilterFocus"
  },
  {
    "key": "shift+tab",
    "command": "problems.action.focusProblemsFromFilter",
    "when": "problemsFilterFocus"
  },
  {
    "key": "tab",
    "command": "problems.action.focusFilter",
    "when": "focusedView == 'workbench.panel.markers.view'"
  },
  {
    "key": "shift+tab",
    "command": "problems.action.focusFilter",
    "when": "focusedView == 'workbench.panel.markers.view'"
  },
  {
    "key": "tab",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.quickOpenSelectPrevious",
    "when": "inQuickOpen"
  }
]

Settings

Click to toggle contents of `settings.json`

{
  "Lua.telemetry.enable": false,
  "[confluence]": {
    "editor.formatOnSave": false,
    "editor.minimap.enabled": false,
    "editor.quickSuggestions": {
      "comments": false,
      "other": false,
      "strings": false
    },
    "editor.wordWrap": "wordWrapColumn",
    "editor.wordWrapColumn": 120
  },
  "[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[dockerfile]": {
    "editor.defaultFormatter": "ms-azuretools.vscode-docker"
  },
  "[go]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports": true
    },
    "editor.formatOnSave": true,
    "editor.snippetSuggestions": "none"
  },
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": false
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "modifications"
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file"
  },
  "[makefile]": {
    "editor.insertSpaces": false,
    "editor.tabSize": 4
  },
  "[markdown]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": false,
    "editor.minimap.enabled": false,
    "editor.quickSuggestions": false,
    "editor.wordWrap": "off",
    "editor.wordWrapColumn": 100
  },
  "[mongodb]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[nunjucks]": {
    "editor.defaultFormatter": "okitavera.vscode-nunjucks-formatter"
  },
  "[plaintext]": {
    "editor.wordWrap": "off",
    "editor.wordWrapColumn": 120
  },
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports.python": true
    },
    "editor.defaultFormatter": "ms-python.python",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file",
    "editor.rulers": [88],
    "editor.tabSize": 8
  },
  "[shellscript]": {
    "editor.defaultFormatter": "foxundermoon.shell-format",
    "editor.formatOnSave": false
  },
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[yaml]": {
    "editor.defaultFormatter": "redhat.vscode-yaml",
    "editor.tabSize": 2
  },
  "breadcrumbs.enabled": true,
  "code-runner.enableAppInsights": false,
  "code-runner.executorMap": {
    "javascript": "node -r esm",
    "perl": "perl",
    "python": "$pythonPath $fullFileName"
  },
  "code-runner.fileDirectoryAsCwd": true,
  "code-runner.showRunIconInEditorTitleMenu": false,
  "codeui.targetingMode": "themeSpecific",
  "color-highlight.markRuler": false,
  "color-highlight.markerType": "underline",
  "confluenceMarkup.monospaceFont": "MonoLisa",
  "customizeUI.activityBar": "regular",
  "customizeUI.fontSizeMap": {
    "13px": "13px",
    "monospace": "14px"
  },
  "customizeUI.stylesheet": {
    "[id='workbench.view.explorer'] .monaco-icon-label.folder-icon > .monaco-icon-label-container > .monaco-icon-name-container > .label-name": "font-weight: 900; filter: brightness(1.2);",
    "[id='workbench.view.explorer'] .pane-body .mac": "font-family: 'MonoLisa'; font-size: 13px;"
  },
  "customizeUI.titleBar": "inline",
  "diffEditor.codeLens": true,
  "diffEditor.ignoreTrimWhitespace": true,
  "diffEditor.renderSideBySide": true,
  "diffEditor.wordWrap": "off",
  "docker.images.sortBy": "CreatedTime",
  "editor.acceptSuggestionOnCommitCharacter": false,
  "editor.codeLensFontFamily": "Inter",
  "editor.cursorBlinking": "solid",
  "editor.cursorSmoothCaretAnimation": true,
  "editor.cursorSurroundingLines": 10,
  "editor.dragAndDrop": true,
  "editor.find.cursorMoveOnType": false,
  "editor.fontFamily": "MonoLisa",
  "editor.fontLigatures": true,
  "editor.fontSize": 14,
  "editor.formatOnSaveMode": "modifications",
  "editor.highlightActiveIndentGuide": false,
  "editor.lineHeight": 21,
  "editor.lineNumbers": "on",
  "editor.linkedEditing": true,
  "editor.minimap.enabled": false,
  "editor.renderIndentGuides": false,
  "editor.renderLineHighlight": "gutter",
  "editor.renderWhitespace": "all",
  "editor.semanticHighlighting.enabled": true,
  "editor.showFoldingControls": "always",
  "editor.smoothScrolling": true,
  "editor.snippetSuggestions": "top",
  "editor.stickyTabStops": true,
  "editor.suggest.localityBonus": true,
  "editor.suggest.snippetsPreventQuickSuggestions": false,
  "editor.suggestSelection": "first",
  "editor.tokenColorCustomizations": {},
  "editor.wordWrap": "off",
  "emmet.includeLanguages": {
    "markdown": "html",
    "nunjucks": "html"
  },
  "emmet.showSuggestionsAsSnippets": true,
  "emmet.triggerExpansionOnTab": true,
  "errorLens.addNumberOfDiagnostics": true,
  "errorLens.followCursor": "activeLine",
  "errorLens.gutterIconsEnabled": true,
  "explorer.autoReveal": "focusNoScroll",
  "explorer.confirmDelete": false,
  "explorer.confirmDragAndDrop": false,
  "explorer.openEditors.visible": 0,
  "extensions.autoUpdate": false,
  "files.associations": {
    "*.end": "shellscript",
    "*.jira": "confluence",
    "*.json": "json",
    "*.sublime-keymap": "json",
    "*.textbundle": "markdown",
    ".ackrc": "shellscript",
    ".env": "env",
    ".env-example": "env",
    ".ideavimrc": "viml",
    ".prettierrc": "yaml",
    ".spacemacs": "lisp",
    "settings.json": "jsonc"
  },
  "files.autoSave": "off",
  "files.exclude": {
    "**/*.zwc*": true,
    "**/.classpath": true,
    "**/.factorypath": true,
    "**/.git": false,
    "**/.project": true,
    "**/.settings": true,
    "**/.zcompdump": true,
    "**/.zsh_history": true
  },
  "git.autofetch": true,
  "git.confirmSync": false,
  "git.enableCommitSigning": true,
  "git.enableSmartCommit": true,
  "git.enableStatusBarSync": false,
  "gitlens.advanced.messages": {
    "suppressCommitHasNoPreviousCommitWarning": false,
    "suppressCommitNotFoundWarning": false,
    "suppressFileNotUnderSourceControlWarning": false,
    "suppressGitVersionWarning": false,
    "suppressLineUncommittedWarning": true,
    "suppressNoRepositoryWarning": false
  },
  "gitlens.blame.ignoreWhitespace": true,
  "gitlens.codeLens.scopes": ["document", "blocks"],
  "gitlens.keymap": "none",
  "gitlens.statusBar.command": "gitlens.toggleFileBlame",
  "gitlens.statusBar.reduceFlicker": true,
  "go.autocompleteUnimportedPackages": true,
  "go.buildOnSave": "package",
  "go.coverOnTestPackage": false,
  "go.formatTool": "goimports",
  "go.lintFlags": ["--fast"],
  "go.lintOnSave": "package",
  "go.lintTool": "golangci-lint",
  "go.useCodeSnippetsOnFunctionSuggest": true,
  "go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
  "go.useLanguageServer": true,
  "go.vetOnSave": "package",
  "gopls": {
    "gofumpt": true
  },
  "indentRainbow.colors": [
    "rgba(98, 114, 164, 0.1)",
    "rgba(98, 114, 164, 0.2)",
    "rgba(98, 114, 164, 0.3)",
    "rgba(98, 114, 164, 0.4)",
    "rgba(98, 114, 164, 0.5)"
  ],
  "indentRainbow.includedLanguages": ["python"],
  "javascript.suggest.completeFunctionCalls": true,
  "javascript.updateImportsOnFileMove.enabled": "always",
  "json.trace.server": "verbose",
  "jupyter.askForKernelRestart": false,
  "jupyter.sendSelectionToInteractiveWindow": false,
  "keyboard.dispatch": "keyCode",
  "markdown.extension.italic.indicator": "_",
  "markdown.extension.list.indentationSize": "inherit",
  "markdown.extension.toc.levels": "2..6",
  "markdown.extension.toc.slugifyMode": "github",
  "markdownShortcuts.bullets.marker": "-",
  "markdownShortcuts.icons.bold": false,
  "markdownShortcuts.icons.bullets": false,
  "markdownShortcuts.icons.italic": false,
  "markdownShortcuts.icons.strikethrough": false,
  "markdownlint.config": {
    "MD004": {
      "style": "dash"
    },
    "MD006": false,
    "MD007": false,
    "MD010": false,
    "MD012": false,
    "MD026": false,
    "MD027": false,
    "MD029": false,
    "MD032": false,
    "MD033": false,
    "MD034": false,
    "MD040": false,
    "MD041": false,
    "MD047": false,
    "default": true
  },
  "multiCommand.commands": [
    {
      "command": "multiCommand.peekDefinitionAndFocus",
      "interval": 100,
      "sequence": ["editor.action.peekDefinition", "togglePeekWidgetFocus"]
    },
    {
      "command": "multiCommand.navigateExplorerDownAndPreviewFile",
      "sequence": ["list.focusDown", "filesExplorer.openFilePreserveFocus"]
    },
    {
      "command": "multiCommand.navigateExplorerUpAndPreviewFile",
      "sequence": ["list.focusUp", "filesExplorer.openFilePreserveFocus"]
    },
    {
      "command": "multiCommand.splitWindowRightAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorRight",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.splitWindowLeftAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorLeft",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.splitWindowBelowAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorDown",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.splitWindowAboveAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorUp",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.unfocusInputByCreatingNewEditorGroup",
      "sequence": ["workbench.action.newGroupAbove"]
    },
    {
      "command": "multiCommand.closePanelAndSidebarAndOtherEditors",
      "sequence": [
        "workbench.action.closePanel",
        "workbench.action.closeSidebar",
        "workbench.action.closeEditorsInOtherGroups"
      ]
    },
    {
      "command": "multiCommand.moveToNextChangeAndShow",
      "sequence": [
        "workbench.action.editor.nextChange",
        "editor.action.dirtydiff.next"
      ]
    },
    {
      "command": "multiCommand.moveToPreviousChangeAndShow",
      "sequence": [
        "workbench.action.editor.previousChange",
        "editor.action.dirtydiff.previous"
      ]
    },
    {
      "command": "multiCommand.copyAndCommentLines",
      "sequence": [
        "editor.action.clipboardCopyAction",
        "editor.action.commentLine"
      ]
    },
    {
      "command": "multiCommand.copyRelativePathAndPrintIt",
      "sequence": ["copy-relative-path-and-line-numbers.path-only", "execPaste"]
    },
    {
      "command": "multiCommand.copyRelativePathAndSelectedLinesAndPrintIt",
      "sequence": ["copy-relative-path-and-line-numbers.both", "execPaste"]
    },
    {
      "command": "multiCommand.acceptCompletionAndInsertPeriod",
      "sequence": [
        "acceptSelectedSuggestion",
        {
          "args": {
            "text": "."
          },
          "command": "type"
        }
      ]
    },
    {
      "command": "multiCommand.acceptCompletionAndInsertEquals",
      "sequence": [
        "acceptSelectedSuggestion",
        {
          "args": {
            "text": " = "
          },
          "command": "type"
        }
      ]
    },
    {
      "command": "multiCommand.acceptCompletionAndInsertSpace",
      "sequence": [
        "acceptSelectedSuggestion",
        {
          "args": {
            "text": " "
          },
          "command": "type"
        }
      ]
    }
  ],
  "mypy.dmypyExecutable": "/Users/juliant/.mypyls/bin/dmypy",
  "nightswitch.autoSwitch": false,
  "nightswitch.dayTheme": "GitHub Light",
  "nightswitch.nightTheme": "GitHub Dark",
  "path-autocomplete.excludedItems": {
    "**/{.git,node_modules}": {
      "when": "**"
    }
  },
  "path-intellisense.showHiddenFiles": true,
  "projectManager.git.baseFolders": ["/Users/juliant/GitLocal/"],
  "projectManager.git.ignoredFolders": [
    "node_modules",
    "out",
    "typings",
    "test",
    ".haxelib",
    ".zinit",
    "rust-lang-book"
  ],
  "projectManager.git.maxDepthRecursion": 4,
  "projectManager.groupList": true,
  "projectManager.openInNewWindowWhenClickingInStatusBar": true,
  "projectManager.showProjectNameInStatusBar": true,
  "projectManager.sortList": "Saved",
  "python.analysis.autoImportCompletions": true,
  "python.analysis.completeFunctionParens": true,
  "python.analysis.diagnosticMode": "workspace",
  "python.analysis.typeCheckingMode": "basic",
  "python.experiments.optInto": ["pythonDiscoveryModuleWithoutWatcher"],
  "python.formatting.blackPath": "black",
  "python.formatting.provider": "black",
  "python.languageServer": "Pylance",
  "python.logging.level": "info",
  "python.showStartPage": false,
  "python.sortImports.args": [
    "--settings-path=${workspaceFolder}/pyproject.toml",
    "--profile=black"
  ],
  "python.sortImports.path": "/usr/local/bin/isort",
  "redhat.telemetry.enabled": false,
  "rpmspec.lint": false,
  "scm.defaultViewMode": "tree",
  "search.exclude": {
    "**/.git": true,
    "yarn-error.log": true,
    "yarn.lock": true
  },
  "search.showLineNumbers": true,
  "search.smartCase": true,
  "settings.cycle": [
    {
      "id": "lineNumbers",
      "values": [
        {
          "editor.lineNumbers": "off"
        },
        {
          "editor.lineNumbers": "on"
        },
        {
          "editor.lineNumbers": "relative"
        }
      ]
    },
    {
      "id": "vimSelectionBackground",
      "values": [
        {
          "workbench.colorCustomizations": {
            "editor.lineHighlightBackground": "#44475a"
          }
        },
        {
          "workbench.colorCustomizations": {
            "editor.lineHighlightBackground": "#282a36"
          }
        }
      ]
    }
  ],
  "shellcheck.customArgs": ["-x"],
  "shellformat.flag": "-i 2 -ci -bn",
  "snipsnap.silent": true,
  "sync.autoDownload": false,
  "sync.autoUpload": false,
  "sync.forceDownload": false,
  "sync.forceUpload": true,
  "sync.gist": "d6476dba5ec0a560c674cef5fdba969f",
  "sync.quietSync": false,
  "sync.removeExtensions": true,
  "sync.syncExtensions": true,
  "telemetry.enableTelemetry": false,
  "terminal.explorerKind": "external",
  "terminal.external.osxExec": "iTerm2.app",
  "terminal.integrated.commandsToSkipShell": ["vspacecode.space"],
  "terminal.integrated.fontFamily": "MonoLisa, Hack Nerd Font",
  "terminal.integrated.fontSize": 14,
  "terminal.integrated.letterSpacing": 1,
  "terminal.integrated.lineHeight": 1.1,
  "terminal.integrated.macOptionIsMeta": true,
  "terminal.integrated.tabs.enabled": true,
  "todo-tree.filtering.includeHiddenFiles": true,
  "todo-tree.general.tags": [
    "BUG",
    "HACK",
    "FIXME",
    "TODO",
    "XXX",
    "[ ]",
    "[x]"
  ],
  "todo-tree.regex.regex": "(//|#|<!--|;|/\\*|^|^\\s*(-|\\d+.))\\s*($TAGS)",
  "typescript.suggest.completeFunctionCalls": true,
  "typescript.suggest.paths": false,
  "vim.cursorStylePerMode.insert": "line",
  "vim.cursorStylePerMode.normal": "block",
  "vim.cursorStylePerMode.replace": "block-outline",
  "vim.cursorStylePerMode.visual": "block-outline",
  "vim.cursorStylePerMode.visualblock": "block-outline",
  "vim.cursorStylePerMode.visualline": "block-outline",
  "vim.easymotion": true,
  "vim.easymotionKeys": "asdfghjklvbcn",
  "vim.easymotionMarkerFontWeight": "bold",
  "vim.easymotionMarkerForegroundColorOneChar": "#f78ae0",
  "vim.enableNeovim": true,
  "vim.highlightedyank.color": "rgba(247, 138, 224, 0.40)",
  "vim.highlightedyank.enable": true,
  "vim.history": 100,
  "vim.hlsearch": true,
  "vim.insertModeKeyBindings": [
    {
      "before": ["<C-j>"],
      "commands": ["cursorDown"]
    },
    {
      "before": ["<C-k>"],
      "commands": ["cursorUp"]
    },
    {
      "before": ["<BS>"],
      "commands": ["deleteLeft"]
    },
    {
      "after": ["cmd+z"],
      "before": ["cmd+a"]
    },
    {
      "after": ["<Esc>"],
      "before": ["ctrl+d"]
    }
  ],
  "vim.leader": ";",
  "vim.neovimPath": "/usr/local/bin/nvim",
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "after": ["<ESC>"],
      "before": ["<ESC>"],
      "commands": [":nohl"]
    },
    {
      "before": ["g", "h"],
      "commands": ["editor.action.showDefinitionPreviewHover"]
    },
    {
      "after": ["<leader>", "<leader>", "f"],
      "before": ["f"]
    },
    {
      "after": ["<leader>", "<leader>", "F"],
      "before": ["F"]
    },
    {
      "after": ["<leader>", "<leader>", "t"],
      "before": ["t"]
    },
    {
      "after": ["<leader>", "<leader>", "T"],
      "before": ["T"]
    },
    {
      "before": ["g", "r"],
      "commands": ["editor.action.referenceSearch.trigger"]
    },
    {
      "after": ["q"],
      "before": ["Q"]
    },
    {
      "before": ["q"],
      "commands": ["workbench.action.closeActiveEditor"]
    },
    {
      "after": ["<C-d>", "z", "z"],
      "before": ["<C-d>"]
    },
    {
      "after": ["<C-u>", "z", "z"],
      "before": ["<C-u>"]
    },
    {
      "before": [">"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "before": ["<"],
      "commands": ["editor.action.outdentLines"]
    },
    {
      "after": ["\"", "_", "D"],
      "before": ["D"]
    },
    {
      "after": ["\"", "_", "d"],
      "before": ["d"]
    },
    {
      "after": ["\"", "_", "d", "d"],
      "before": ["d", "d"]
    },
    {
      "after": ["\"", "_", "c"],
      "before": ["c"]
    },
    {
      "after": ["\"", "_", "C"],
      "before": ["C"]
    },
    {
      "after": ["\"", "_", "c", "c"],
      "before": ["c", "c"]
    },
    {
      "after": ["\"", "_", "x"],
      "before": ["x"]
    },
    {
      "after": ["\"", "_", "X"],
      "before": ["X"]
    },
    {
      "after": ["d"],
      "before": ["m"]
    },
    {
      "after": ["d", "d"],
      "before": ["m", "m"]
    },
    {
      "after": ["D"],
      "before": ["M"]
    },
    {
      "after": ["g", "b"],
      "before": ["<C-n>"]
    },
    {
      "before": ["<C-j>"],
      "commands": ["editor.action.insertCursorBelow"]
    },
    {
      "before": ["<C-k>"],
      "commands": ["editor.action.insertCursorAbove"]
    },
    {
      "before": ["J"],
      "commands": ["editor.action.moveLinesDownAction"]
    },
    {
      "before": ["K"],
      "commands": ["editor.action.moveLinesUpAction"]
    },
    {
      "before": ["g", "l"],
      "commands": ["editor.action.openLink"]
    },
    {
      "before": ["g", "D"],
      "commands": ["extension.dash.specific"]
    },
    {
      "after": ["<leader>", "<leader>", "s"],
      "before": ["<leader>", "s"]
    },
    {
      "before": ["<space>"],
      "commands": ["vspacecode.space"]
    },
    {
      "after": ["$"],
      "before": ["L"]
    },
    {
      "after": ["^"],
      "before": ["H"]
    },
    {
      "after": [],
      "before": ["g", "B"],
      "commands": [
        {
          "command": "editor.action.selectHighlights"
        }
      ]
    },
    {
      "after": [],
      "before": ["g", "H"],
      "commands": [
        {
          "command": "editor.action.triggerParameterHints"
        }
      ]
    },
    {
      "before": ["u"],
      "commands": [
        {
          "command": "undo"
        }
      ]
    },
    {
      "before": ["<C-r>"],
      "commands": [
        {
          "command": "redo"
        }
      ]
    },
    {
      "after": ["v"],
      "before": ["v"]
    },
    {
      "after": ["g", "k"],
      "before": ["<up>"]
    },
    {
      "after": ["g", "j"],
      "before": ["<down>"]
    },
    {
      "after": ["y", "$"],
      "before": ["Y"]
    },
    {
      "before": [","],
      "commands": [
        "vspacecode.space",
        {
          "args": "m",
          "command": "whichkey.triggerKey"
        }
      ]
    }
  ],
  "vim.searchHighlightColor": "#85e89d",
  "vim.searchHighlightTextColor": "#24292e",
  "vim.smartRelativeLine": true,
  "vim.smartcase": true,
  "vim.sneak": true,
  "vim.useSystemClipboard": true,
  "vim.visualModeKeyBindingsNonRecursive": [
    {
      "after": ["<leader>", "<leader>", "f"],
      "before": ["f"]
    },
    {
      "after": ["<leader>", "<leader>", "F"],
      "before": ["F"]
    },
    {
      "after": ["<leader>", "<leader>", "t"],
      "before": ["t"]
    },
    {
      "after": ["<leader>", "<leader>", "T"],
      "before": ["T"]
    },
    {
      "before": ["<Tab>"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "after": ["y", "g", "v", "<ESC>"],
      "before": ["y"]
    },
    {
      "after": ["g", "b"],
      "before": ["<C-n>"]
    },
    {
      "after": ["\"", "_", "d"],
      "before": ["d"]
    },
    {
      "after": ["\"", "_", "c"],
      "before": ["c"]
    },
    {
      "after": ["\"", "_", "x"],
      "before": ["x"]
    },
    {
      "after": ["d"],
      "before": ["m"]
    },
    {
      "before": ["K"],
      "commands": ["editor.action.moveLinesUpAction"]
    },
    {
      "before": ["J"],
      "commands": ["editor.action.moveLinesDownAction"]
    },
    {
      "before": ["<space>"],
      "commands": ["vspacecode.space"]
    },
    {
      "before": ["g", "B"],
      "commands": [
        {
          "command": "editor.action.selectHighlights"
        }
      ]
    },
    {
      "after": ["^"],
      "before": ["H"]
    },
    {
      "after": ["$"],
      "before": ["L"]
    },
    {
      "before": [">"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "before": ["<"],
      "commands": ["editor.action.outdentLines"]
    },
    {
      "after": ["a", "f"],
      "before": ["v"]
    },
    {
      "before": [","],
      "commands": [
        "vspacecode.space",
        {
          "args": "m",
          "command": "whichkey.triggerKey"
        }
      ]
    }
  ],
  "vim.visualstar": true,
  "vscode-kubernetes.kubectl-path.mac": "/Users/juliant/.asdf/shims/kubectl",
  "vscode-neovim.logOutputToConsole": true,
  "vscode-neovim.mouseSelectionStartVisualMode": true,
  "vscode-neovim.neovimExecutablePaths.darwin": "/usr/local/bin/nvim",
  "vscode-neovim.revealCursorScrollLine": true,
  "vscode-neovim.textDecorationsAtTop": true,
  "vscsm.smergeExecutablePath": "/usr/local/bin/smerge",
  "vspacecode.bindingOverrides": [
    {
      "bindings": [
        {
          "command": "md-shortcut.toggleTitleH1",
          "key": "1",
          "name": "Level 1 (#)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH2",
          "key": "2",
          "name": "Level 2 (##)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH3",
          "key": "3",
          "name": "Level 3 (###)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH4",
          "key": "4",
          "name": "Level 4 (####)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH5",
          "key": "5",
          "name": "Level 5 (#####)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH6",
          "key": "6",
          "name": "Level 6 (######)",
          "type": "command"
        }
      ],
      "keys": ["m", "languageId:markdown", "x", "h"],
      "name": "+Choose header level...",
      "type": "bindings"
    },
    {
      "command": "workbench.action.toggleCenteredLayout",
      "keys": "t.c",
      "name": "Toggle centered window layout",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleImage",
      "keys": ["m", "languageId:markdown", "x", "I"],
      "name": "Toggle image link",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleBullets",
      "keys": ["m", "languageId:markdown", "x", "u"],
      "name": "Toggle unordered list",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleNumbers",
      "keys": ["m", "languageId:markdown", "x", "o"],
      "name": "Toggle ordered list",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleCheckboxes",
      "keys": ["m", "languageId:markdown", "x", "c"],
      "name": "Toggle checkboxes",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleLink",
      "keys": ["m", "languageId:markdown", "x", "k"],
      "name": "Toggle link",
      "type": "command"
    },
    {
      "bindings": [
        {
          "bindings": [
            {
              "command": "code-runner.run",
              "key": "r",
              "name": "Run code in current file",
              "type": "command"
            },
            {
              "command": "code-runner.stop",
              "key": "R",
              "name": "Stop ongoing code run",
              "type": "command"
            }
          ],
          "key": "a",
          "name": "+Actions",
          "type": "bindings"
        }
      ],
      "keys": ["m", "languageId:python"],
      "name": "+Python Major Mode",
      "type": "bindings"
    },
    {
      "command": "git.push",
      "keys": "g.P",
      "name": "Push changes to remote",
      "type": "command"
    },
    {
      "command": "openInGitHub.openProject",
      "keys": "g.O",
      "name": "Open project in GitHub",
      "type": "command"
    },
    {
      "command": "workbench.action.toggleMaximizedPanel",
      "keys": "l.m",
      "name": "Toggle maximize panel",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "workbench.action.openGlobalSettings",
          "key": ",",
          "name": "Open global settings",
          "type": "command"
        },
        {
          "command": "workbench.action.selectIconTheme",
          "key": "i",
          "name": "Choose icon theme",
          "type": "command"
        },
        {
          "command": "workbench.action.openGlobalKeybindings",
          "key": "k",
          "name": "Open global keybindings",
          "type": "command"
        },
        {
          "command": "workbench.action.openGlobalKeybindingsFile",
          "key": "K",
          "name": "Open global keybindings JSON",
          "type": "command"
        },
        {
          "command": "workbench.action.configureLanguageBasedSettings",
          "key": "l",
          "name": "Open language settings",
          "type": "command"
        },
        {
          "command": "workbench.action.openSnippets",
          "key": "n",
          "name": "Open user snippets",
          "type": "command"
        },
        {
          "command": "workbench.action.openSettingsJson",
          "key": "s",
          "name": "Open global settings JSON",
          "type": "command"
        },
        {
          "command": "workbench.action.selectTheme",
          "key": "t",
          "name": "Choose color theme",
          "type": "command"
        },
        {
          "command": "workbench.userDataSync.actions.syncNow",
          "key": "u",
          "name": "Update/upload settings",
          "type": "command"
        },
        {
          "command": "workbench.action.openWorkspaceSettings",
          "key": "w",
          "name": "Open workspace settings",
          "type": "command"
        },
        {
          "command": "workbench.action.openWorkspaceSettingsFile",
          "key": "W",
          "name": "Open workspace settings JSON",
          "type": "command"
        },
        {
          "bindings": [
            {
              "command": "workbench.action.toggleDevTools",
              "key": "d",
              "name": "Show developer tools",
              "type": "command"
            },
            {
              "command": "workbench.action.setLogLevel",
              "key": "l",
              "name": "Set log level...",
              "type": "command"
            },
            {
              "command": "workbench.action.showLogs",
              "key": "L",
              "name": "Show logs...",
              "type": "command"
            },
            {
              "command": "workbench.action.showRuntimeExtensions",
              "key": "r",
              "name": "Show running extensions",
              "type": "command"
            },
            {
              "command": "workbench.action.openProcessExplorer",
              "key": "p",
              "name": "Open Process Explorer",
              "type": "command"
            }
          ],
          "key": "d",
          "name": "+Developer...",
          "type": "bindings"
        }
      ],
      "keys": ",",
      "name": "+Settings/Preferences",
      "type": "bindings"
    },
    {
      "bindings": [
        {
          "command": "bookmarks.toggle",
          "key": "m",
          "name": "Toggle bookmark",
          "type": "command"
        },
        {
          "command": "bookmarks.jumpToNext",
          "key": "n",
          "name": "Jump to next bookmark",
          "type": "command"
        },
        {
          "command": "bookmarks.jumpToPrevious",
          "key": "p",
          "name": "Jump to previous bookmark",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.bookmarks",
          "key": "o",
          "name": "Open Bookmarks explorer",
          "type": "command"
        },
        {
          "command": "bookmarks.list",
          "key": "b",
          "name": "Open list of bookmarks in current file",
          "type": "command"
        },
        {
          "command": "bookmarks.listFromAllFiles",
          "key": "B",
          "name": "Open list of bookmarks in all files",
          "type": "command"
        }
      ],
      "keys": "B",
      "name": "+Bookmarks",
      "type": "bindings"
    },
    {
      "command": "workbench.view.extension.project-manager",
      "keys": "S.M",
      "name": "Show Project Manager",
      "type": "command"
    },
    {
      "command": "workbench.view.extension.github-pull-requests",
      "keys": "S.P",
      "name": "Show Github Pull Requests",
      "type": "command"
    },
    {
      "command": "workbench.view.extension.todo-tree-container",
      "keys": "S.T",
      "name": "Show TODOs",
      "type": "command"
    },
    {
      "command": "workbench.action.files.openFileFolder",
      "keys": "S.f",
      "name": "Show OS file picker",
      "type": "command"
    },
    {
      "command": "workbench.view.extension.mongoDB",
      "keys": "S.m",
      "name": "Show MongoDB",
      "type": "command"
    },
    {
      "command": "toggleVim",
      "keys": "T.v",
      "name": "Toggle vim",
      "type": "command"
    },
    {
      "command": "workbench.action.navigateBack",
      "keys": "[",
      "name": "Go back",
      "type": "command"
    },
    {
      "command": "workbench.action.navigateForward",
      "keys": "]",
      "name": "Go forward",
      "type": "command"
    },
    {
      "command": "workbench.action.nextEditor",
      "keys": "`",
      "name": "Next Editor (regardless of group)",
      "type": "command"
    },
    {
      "command": "workbench.action.closeOtherEditors",
      "keys": "b.D",
      "name": "Close unmodified editors",
      "type": "command"
    },
    {
      "command": "workbench.action.nextEditorInGroup",
      "keys": "b.`",
      "name": "Next Editor (current group)",
      "type": "command"
    },
    {
      "command": "outline.focus",
      "keys": "b.o",
      "name": "Focus outline for buffer",
      "type": "command"
    },
    {
      "command": "workbench.action.previousEditorInGroup",
      "keys": "b.~",
      "name": "Previous Editor (current group)",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "editor.action.commentLine",
          "key": "l",
          "name": "Comment/uncomment line(s)",
          "type": "command"
        },
        {
          "command": "code-runner.run",
          "key": "r",
          "name": "Run code in curent file",
          "type": "command"
        },
        {
          "commands": [
            "editor.action.clipboardCopyAction",
            "editor.action.commentLine"
          ],
          "key": "y",
          "name": "Copy selection and comment line",
          "type": "command"
        }
      ],
      "keys": "c",
      "name": "+Code Actions...",
      "type": "bindings"
    },
    {
      "command": "workbench.debug.action.toggleRepl",
      "keys": "d.t",
      "name": "Toggle Debug Console view",
      "type": "command"
    },
    {
      "command": "workbench.action.output.toggleOutput",
      "keys": "e.o",
      "name": "Toggle output view",
      "type": "command"
    },
    {
      "command": "outline.focus",
      "keys": "f.O",
      "name": "Focus file outline view",
      "type": "command"
    },
    {
      "command": "fileutils.renameFile",
      "keys": "f.R",
      "name": "Rename file",
      "type": "command"
    },
    {
      "command": "workbench.action.openSettings",
      "keys": "f.e.D",
      "name": "Open settings UI",
      "type": "command"
    },
    {
      "command": "workbench.action.reloadWindow",
      "keys": "f.e.R",
      "name": "Reload window",
      "type": "command"
    },
    {
      "command": "workbench.action.openSettingsJson",
      "keys": "f.e.d",
      "name": "Open settings JSON",
      "type": "command"
    },
    {
      "command": "workbench.action.quickOpen",
      "keys": "f.f",
      "name": "Open file...",
      "type": "command"
    },
    {
      "command": "file-browser.open",
      "keys": "f.n",
      "name": "New file (via File Browser)",
      "type": "command"
    },
    {
      "command": "workbench.action.files.openFileFolder",
      "keys": "f.o",
      "name": "Open file browser",
      "type": "command"
    },
    {
      "command": "editor.action.formatDocument",
      "keys": "f.=",
      "name": "Format current file",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "gitlens.diffWithPrevious",
          "key": "d",
          "name": "...diff current file against previous revision",
          "type": "command"
        },
        {
          "command": "gitHistory.diffFileAtCommitAgainstCurrent",
          "key": "D",
          "name": "...diff current file against previous revision (choose commit)",
          "type": "command"
        },
        {
          "command": "vscsm.fileHistoryInSublimeMerge",
          "key": "f",
          "name": "...open file history in Sublime Merge",
          "type": "command"
        },
        {
          "command": "vscsm.lineHistoryInSublimeMerge",
          "key": "l",
          "name": "...open line history in Sublime Merge",
          "type": "command"
        }
      ],
      "keys": ["g", "f"],
      "name": "+File...",
      "type": "bindings"
    },
    {
      "bindings": [
        {
          "command": "openInGitHub.openFileBlame",
          "key": "b",
          "name": "...open file blame",
          "type": "command"
        },
        {
          "command": "openInGitHub.openFile",
          "key": "f",
          "name": "...open file",
          "type": "command"
        },
        {
          "command": "openInGitHub.openFileHistory",
          "key": "h",
          "name": "...open file history",
          "type": "command"
        },
        {
          "command": "openInGitHub.openIssues",
          "key": "i",
          "name": "...open repo issues",
          "type": "command"
        },
        {
          "command": "openInGitHub.openProject",
          "key": "p",
          "name": "...open project",
          "type": "command"
        },
        {
          "command": "openInGitHub.openPullRequests",
          "key": "r",
          "name": "...open pull requests",
          "type": "command"
        }
      ],
      "keys": ["g", "g"],
      "name": "+Github...",
      "type": "bindings"
    },
    {
      "command": "workbench.view.extension.github-pull-requests",
      "keys": "g.r",
      "name": "Open Pull Requests view",
      "type": "command"
    },
    {
      "command": "gitlens.showCommitSearch",
      "keys": "g./",
      "name": "Search history",
      "type": "command"
    },
    {
      "command": "git.checkout",
      "keys": "g.B",
      "name": "Branch",
      "type": "command"
    },
    {
      "command": "gitlens.fetchRepositories",
      "keys": "g.F",
      "name": "Fetch repositories",
      "type": "command"
    },
    {
      "command": "gitlens.gitCommands",
      "keys": "g.G",
      "name": "Git commands",
      "type": "command"
    },
    {
      "keys": "g.S",
      "position": -1
    },
    {
      "command": "workbench.scm.focus",
      "keys": "g.S",
      "name": "View status in VSCode",
      "type": "command"
    },
    {
      "command": "gitlens.toggleFileBlame",
      "keys": "g.b",
      "name": "Show blame for current file",
      "type": "command"
    },
    {
      "command": "githd.viewBranchHistory",
      "keys": "g.h",
      "name": "View history",
      "type": "command"
    },
    {
      "command": "git.pull",
      "keys": "g.l",
      "name": "Pull",
      "type": "command"
    },
    {
      "keys": "g.m",
      "position": -1
    },
    {
      "command": "multiCommand.moveToNextChangeAndShow",
      "keys": "g.n",
      "name": "Move to next change and show",
      "type": "command"
    },
    {
      "command": "multiCommand.moveToPreviousChangeAndShow",
      "keys": "g.p",
      "name": "Move to previous change and show",
      "type": "command"
    },
    {
      "command": "vscsm.openInSublimeMerge",
      "keys": "g.s",
      "name": "View status in Sublime Merge",
      "type": "command"
    },
    {
      "keys": "h.k",
      "position": -1
    },
    {
      "bindings": [
        {
          "commands": [
            "copy-relative-path-and-line-numbers.path-only",
            "execPaste"
          ],
          "key": "r",
          "name": "...relative path of current file (copies it too)",
          "type": "command"
        },
        {
          "command": "extension.relativePath",
          "key": "R",
          "name": "...relative path of other file in project",
          "type": "command"
        },
        {
          "commands": ["copy-relative-path-and-line-numbers.both", "execPaste"],
          "key": "l",
          "name": "...relative path of current file AND selected line numbers (copies it too)",
          "type": "command"
        }
      ],
      "keys": ["i", "f"],
      "name": "+Insert file...",
      "type": "bindings"
    },
    {
      "command": "workbench.action.showAllSymbols",
      "keys": "j.I",
      "name": "Jump to symbol in project",
      "type": "command"
    },
    {
      "command": "breadcrumbs.focusAndSelect",
      "keys": "j.b",
      "name": "Jump to breadcrumbs",
      "type": "command"
    },
    {
      "command": "workbench.action.gotoMethod",
      "keys": "j.m",
      "name": "Jump to method/function in file",
      "type": "command"
    },
    {
      "keys": "j.v",
      "position": -1
    },
    {
      "command": "workbench.action.positionPanelLeft",
      "keys": "l.H",
      "name": "Move panel left",
      "type": "command"
    },
    {
      "command": "workbench.action.positionPanelBottom",
      "keys": "l.J",
      "name": "Move panel bottom",
      "type": "command"
    },
    {
      "command": "workbench.action.positionPanelRight",
      "keys": "l.L",
      "name": "Move panel right",
      "type": "command"
    },
    {
      "command": "workbench.action.toggleSidebarVisibility",
      "keys": "l.b",
      "name": "Toggle sidebar",
      "type": "command"
    },
    {
      "command": "workbench.action.closePanel",
      "keys": "l.c",
      "name": "Close panel",
      "type": "command"
    },
    {
      "command": "workbench.action.focusPanel",
      "keys": "l.f",
      "name": "Focus panel",
      "type": "command"
    },
    {
      "command": "workbench.action.togglePanel",
      "keys": "l.o",
      "name": "Toggle panel",
      "type": "command"
    },
    {
      "command": "workbench.actions.view.problems",
      "keys": "l.p",
      "name": "Focus Problems panel",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "workbench.view.explorer",
          "key": "e",
          "name": "Explorer view",
          "type": "command"
        },
        {
          "command": "workbench.scm.focus",
          "key": "g",
          "name": "Source Control view",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.mongoDB",
          "key": "m",
          "name": "MongoDB view",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.github-pull-requests",
          "key": "p",
          "name": "Github Pull Requests view",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.project-manager",
          "key": "P",
          "name": "Project Manager view",
          "type": "command"
        },
        {
          "command": "todo-tree-view.focus",
          "key": "t",
          "name": "TODO View",
          "type": "command"
        },
        {
          "command": "timeline.focus",
          "key": "T",
          "name": "Timeline View",
          "type": "command"
        },
        {
          "command": "workbench.view.extensions",
          "key": "x",
          "name": "Extensions Marketplace",
          "type": "command"
        }
      ],
      "keys": "o",
      "name": "+Open",
      "type": "bindings"
    },
    {
      "command": "projectManager.listProjectsNewWindow",
      "keys": "p.P",
      "name": "List projects (new window)...",
      "type": "command"
    },
    {
      "command": "projectManager.editProjects",
      "keys": "p.e",
      "name": "Edit projects",
      "type": "command"
    },
    {
      "command": "projectManager.listProjects",
      "keys": "p.l",
      "name": "List projects (current window)...",
      "type": "command"
    },
    {
      "command": "projectManager.listProjects",
      "keys": "p.p",
      "name": "List projects (current window)...",
      "type": "command"
    },
    {
      "command": "projectManager.refreshAnyProjects",
      "keys": "p.r",
      "name": "Refresh projects",
      "type": "command"
    },
    {
      "command": "projectManager.saveProject",
      "keys": "p.s",
      "name": "Save project",
      "type": "command"
    },
    {
      "command": "workbench.action.closeEditorsInAllGroups",
      "keys": "q.A",
      "name": "Close current file in all groups",
      "type": "command"
    },
    {
      "command": "workbench.action.closeEditorsToTheLeft",
      "keys": "q.H",
      "name": "Close editors to the left",
      "type": "command"
    },
    {
      "command": "workbench.action.closeEditorsToTheRight",
      "keys": "q.L",
      "name": "Close editors to the right",
      "type": "command"
    },
    {
      "command": "workbench.action.closeAllEditors",
      "keys": "q.a",
      "name": "Close all editors",
      "type": "command"
    },
    {
      "command": "code-runner.stop",
      "keys": "q.c",
      "name": "Stop currently running code",
      "type": "command"
    },
    {
      "command": "workbench.action.debug.stop",
      "keys": "q.d",
      "name": "Stop debugging",
      "type": "command"
    },
    {
      "command": "workbench.action.closeFolder",
      "keys": "q.p",
      "name": "Close current project",
      "type": "command"
    },
    {
      "command": "search.action.openNewEditor",
      "keys": "s.E",
      "name": "New Search Editor",
      "type": "command"
    },
    {
      "command": "editor.action.toggleWordWrap",
      "keys": "t.W",
      "name": "Toggle word wrap",
      "type": "command"
    },
    {
      "command": "extension.toggleTheme",
      "keys": "t.d",
      "name": "Toggle day/night theme",
      "type": "command"
    },
    {
      "command": "settings.cycle.lineNumbers",
      "keys": "t.l",
      "name": "Cycle line numbers",
      "type": "command"
    },
    {
      "command": "workbench.action.toggleTabsVisibility",
      "keys": "t.t",
      "name": "Toggle tab visibility",
      "type": "command"
    },
    {
      "bindings": [
        {
          "commands": [
            "workbench.action.splitEditorRight",
            "workbench.action.quickOpen"
          ],
          "key": "l",
          "name": "...to the right",
          "type": "commands"
        },
        {
          "commands": [
            "workbench.action.splitEditorLeft",
            "workbench.action.quickOpen"
          ],
          "key": "h",
          "name": "...to the left",
          "type": "commands"
        },
        {
          "commands": [
            "workbench.action.splitEditorDown",
            "workbench.action.quickOpen"
          ],
          "key": "j",
          "name": "...to below",
          "type": "commands"
        },
        {
          "commands": [
            "workbench.action.splitEditorUp",
            "workbench.action.quickOpen"
          ],
          "key": "k",
          "name": "...to above",
          "type": "commands"
        }
      ],
      "keys": ["w", "f"],
      "name": "+Open file in new group...",
      "type": "bindings"
    },
    {
      "commands": [
        "workbench.action.closePanel",
        "workbench.action.closeSidebar",
        "workbench.action.closeEditorsInOtherGroups"
      ],
      "keys": "w.M",
      "name": "Close sidebar, panel, and other editor groups",
      "type": "commands"
    },
    {
      "command": "workbench.action.focusNextGroup",
      "keys": "w.`",
      "name": "Focus next group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusPreviousGroup",
      "keys": "w.h",
      "name": "Focus previous group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusBelowGroup",
      "keys": "w.j",
      "name": "Focus below group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusAboveGroup",
      "keys": "w.k",
      "name": "Focus above group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusNextGroup",
      "keys": "w.l",
      "name": "Focus next group",
      "type": "command"
    },
    {
      "command": "workbench.action.files.newUntitledFile",
      "keys": "w.t",
      "name": "New untitled file",
      "type": "command"
    },
    {
      "command": "workbench.action.focusPreviousGroup",
      "keys": "w.~",
      "name": "Focus previous group",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "editor.action.trimTrailingWhitespace",
          "key": "w",
          "name": "Delete trailing whitespace",
          "type": "command"
        },
        {
          "command": "remove-empty-lines.inDocument",
          "key": "f",
          "name": "Delete empty lines in file",
          "type": "command"
        },
        {
          "command": "remove-empty-lines.inSelection",
          "key": "s",
          "name": "Delete empty lines in selection (adjacent lines if no selection)",
          "type": "command"
        }
      ],
      "keys": ["x", "d"],
      "name": "+Delete",
      "type": "bindings"
    },
    {
      "command": "editor.action.formatSelection",
      "keys": "x.=",
      "name": "Format selection",
      "type": "command"
    },
    {
      "command": "wwm.aligncode",
      "keys": "x.A",
      "name": "Align code",
      "type": "command"
    },
    {
      "command": "workbench.action.replaceInFiles",
      "keys": "x.R",
      "name": "Replace in files",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "editor.action.copyLinesDownAction",
          "key": "j",
          "name": "Copy line(s) down",
          "type": "command"
        },
        {
          "command": "editor.action.copyLinesUpAction",
          "key": "k",
          "name": "Copy line(s) up",
          "type": "command"
        },
        {
          "command": "fileutils.copyFileName",
          "key": "n",
          "name": "Copy current file name",
          "type": "command"
        },
        {
          "command": "copyFilePath",
          "key": "p",
          "name": "Copy current file absolute path",
          "type": "command"
        },
        {
          "command": "copyRelativeFilePath",
          "key": "P",
          "name": "Copy current file relative path",
          "type": "command"
        }
      ],
      "keys": "y",
      "name": "+Yank/Copy",
      "type": "bindings"
    },
    {
      "command": "workbench.action.previousEditor",
      "keys": "~",
      "name": "Previous Editor (regardless of group)",
      "type": "command"
    }
  ],
  "whichkey.delay": 200,
  "whichkey.sortOrder": "nonNumberFirst",
  "window.restoreWindows": "all",
  "window.titleBarStyle": "native",
  "workbench.activityBar.visible": true,
  "workbench.colorCustomizations": {
    "[GitHub Dark]": {
      "terminal.ansiBlack": "#24292e",
      "terminal.ansiBlue": "#b392f0",
      "terminal.ansiCyan": "#79b8ff",
      "terminal.ansiGreen": "#85e89d",
      "terminal.ansiMagenta": "#f692ce",
      "terminal.ansiRed": "#f97583",
      "terminal.ansiWhite": "#ffffff",
      "terminal.ansiYellow": "#ffea7f"
    },
    "editor.lineHighlightBackground": "#1073cf2d",
    "editor.lineHighlightBorder": "#9fced11f",
    "editorCursor.foreground": "#db2466"
  },
  "workbench.colorTheme": "Dracula",
  "workbench.editor.enablePreview": false,
  "workbench.editor.enablePreviewFromQuickOpen": false,
  "workbench.editor.labelFormat": "medium",
  "workbench.editor.openPositioning": "first",
  "workbench.editor.revealIfOpen": false,
  "workbench.editor.showTabs": false,
  "workbench.editor.tabSizing": "shrink",
  "workbench.editorAssociations": {
    "*.ipynb": "jupyter.notebook.ipynb",
    "*.json": "default"
  },
  "workbench.fontAliasing": "auto",
  "workbench.iconTheme": "helium-icon-theme",
  "workbench.list.automaticKeyboardNavigation": false,
  "workbench.productIconTheme": "material-product-icons",
  "workbench.quickOpen.closeOnFocusLost": false,
  "workbench.sideBar.location": "right",
  "workbench.startupEditor": "newUntitledFile",
  "workbench.tree.indent": 20,
  "workbench.view.alwaysShowHeaderActions": true
}

System information

The "Report Performance Issue" window doesn't seem to be working in the latest version of VSCode, so I'm just going to open this for now and post it later if it's necessary.

OS: macOS 11.4
VSCode Info:
Version: 1.57.1
Commit: 507ce72a4466fbb27b715c3722558bb15afa9f48
Date: 2021-06-17T13:28:32.912Z (1 wk ago)
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Darwin x64 20.5.0

Extensions List

aaron-bond.better-comments
abusaidm.html-snippets
adamwalzer.scss-lint
ahmadawais.shades-of-purple
akamud.vscode-javascript-snippet-pack
akamud.vscode-theme-onedark
akamud.vscode-theme-onelight
alefragnani.Bookmarks
alefragnani.project-manager
alexesprit.vscode-unfancy-file-icons
arcticicestudio.nord-visual-studio-code
asvetliakov.vscode-neovim
austenc.tailwind-docs
azemoh.one-monokai
BazelBuild.vscode-bazel
bdavs.expect
be5invis.vscode-icontheme-nomo-dark
belfz.search-crates-io
BerriJ.github-vscode-theme-dark-classic
bierner.color-info
bierner.github-markdown-preview
bierner.markdown-emoji
bierner.markdown-preview-github-styles
bmalehorn.vscode-fish
bodil.file-browser
bradgashler.htmltagwrap
bradlc.vscode-tailwindcss
budparr.language-hugo-vscode
christian-kohler.npm-intellisense
christian-kohler.path-intellisense
Cmacu.gotoanything
cocopon.iceberg-theme
codezombiech.gitignore
CoenraadS.bracket-pair-colorizer-2
CoenraadS.disableligatures
Compulim.compulim-vscode-closetag
cssho.vscode-svgviewer
csstools.postcss
dakara.transformer
DavidAnson.vscode-markdownlint
dbaeumer.vscode-eslint
dcasella.monokai-plusplus
deerawan.vscode-dash
denco.confluence-markup
denoland.vscode-deno
DotJoshJohnson.xml
dracula-theme.theme-dracula
dunstontc.viml
eamodio.gitlens
eamodio.tsl-problem-matcher
ecmel.vscode-html-css
EditorConfig.EditorConfig
eg2.vscode-npm-script
emilast.LogFileHighlighter
emmanuelbeziat.vscode-great-icons
esbenp.prettier-vscode
ethan-reesor.vscode-go-test-adapter
ezforo.copy-relative-path-and-line-numbers
fabiospampinato.vscode-git-history
fabiospampinato.vscode-open-in-github
file-icons.file-icons
firefox-devtools.vscode-firefox-debug
fknop.vscode-npm
formulahendry.auto-close-tag
formulahendry.code-runner
foxundermoon.shell-format
fvclaus.sort-json-array
gerane.Theme-FlatlandMonokai
gharveymn.nightswitch
ghmcadams.lintlens
ginfuru.ginfuru-better-solarized-dark-theme
giovdk21.vscode-sublime-merge
GitHub.github-vscode-theme
GitHub.vscode-pull-request-github
golang.go
GrapeCity.gc-excelviewer
Gruntfuggly.todo-tree
hashicorp.terraform
hbenl.vscode-test-explorer
helgardrichard.helium-icon-theme
herrmannplatz.npm-dependency-links
heybourn.headwind
hoovercj.vscode-settings-cycler
Hyzeta.vscode-theme-github-light
IBM.output-colorizer
imperez.smarty
iocave.customize-ui
iocave.monkey-patch
ionutvmi.path-autocomplete
IronGeek.vscode-env
jacobdufault.fuzzy-search
jakob101.RelativePath
jdinhlife.gruvbox
jgclark.vscode-todo-highlight
johnpapa.winteriscoming
jolaleye.horizon-theme-vscode
jy-xlj.vscode-json-editor
kevinkyang.auto-comment-blocks
kevinmcgowan.TypeScriptImport
KevinRose.vsc-python-indent
khaeransori.json2csv
kisstkondoros.vscode-gutter-preview
Koihik.vscode-lua-format
lacroixdavid1.vscode-format-context-menu
LaurentTreguier.rpm-spec
LaurentTreguier.vscode-simple-icons
lehni.vscode-fix-checksums
leizongmin.node-module-intellisense
leodevbro.blockman
letrieu.expand-region
liviuschera.noctis
lkytal.FlatUI
mads-hartmann.bash-ide-vscode
matangover.mypy
mattn.Lisp
mdickin.markdown-shortcuts
mechatroner.rainbow-csv
miguelsolorio.fluent-icons
mkaufman.HTMLHint
mongodb.mongodb-vscode
mrmlnc.vscode-less
mrmlnc.vscode-scss
ms-azuretools.vscode-docker
ms-dotnettools.csharp
ms-kubernetes-tools.vscode-kubernetes-tools
ms-python.gather
ms-python.python
ms-python.vscode-pylance
ms-toolsai.jupyter
ms-vscode-remote.remote-wsl
ms-vscode.cpptools
ms-vscode.test-adapter-converter
ms-vscode.vscode-typescript-next
ms-vsliveshare.vsliveshare
msjsdiag.debugger-for-chrome
mushan.vscode-paste-image
naumovs.color-highlight
njpwerner.autodocstring
oderwat.indent-rainbow
okitavera.vscode-nunjucks-formatter
olback.es6-css-minify
oliversturm.fix-json
pejmannikram.vscode-auto-scroll
philipbe.theme-gray-matter
PKief.markdown-checkbox
PKief.material-icon-theme
PKief.material-product-icons
pranaygp.vscode-css-peek
pucelle.vscode-css-navigation
qcz.text-power-tools
rahmanyerli.armadillo
rebornix.ruby
redhat.vscode-commons
redhat.vscode-xml
redhat.vscode-yaml
RedVanWorkshop.explorer-exclude-vscode-extension
Remisa.shellman
richie5um2.vscode-sort-json
RobbOwen.synthwave-vscode
rogalmic.bash-debug
rogalmic.zsh-debug
ronnidc.nunjucks
ryanraposo.codeui
ryu1kn.partial-diff
ryuta46.multi-command
sburg.vscode-javascript-booster
sdras.night-owl
serayuzgur.crates
Shan.code-settings-sync
sharat.vscode-brewfile
shardulm94.trailing-spaces
silvenon.mdx
skellock.just
sleistner.vscode-fileutils
snipsnapdev.snipsnap-vscode
stackbreak.comment-divider
stkb.rewrap
stylelint.vscode-stylelint
Sujan.code-blue
sumneko.lua
svipas.control-snippets
TakumiI.markdowntable
tamasfe.even-better-toml
teabyii.ayu
telesoho.vscode-markdown-paste-image
thenikso.github-plus-theme
timonwong.shellcheck
tlahmann.alex-linter
tokoph.ghosttext
travisthetechie.write-good-linter
trixnz.go-to-method
Tyriar.sort-lines
usernamehw.errorlens
usernamehw.remove-empty-lines
vadimcn.vscode-lldb
VisualStudioExptTeam.vscodeintellicode
vscodevim.vim
VSpaceCode.vspacecode
VSpaceCode.whichkey
wayou.file-icons-mac
wayou.vscode-icons-mac
wayou.vscode-todo-highlight
whatwedo.twig
wingrunr21.vscode-ruby
wmaurer.change-case
wwm.better-align
xaver.clang-format
yzhang.markdown-all-in-one
zhuangtongfa.material-theme
Zignd.html-css-class-completion
ziyasal.vscode-open-in-github

Race condition when chaining keys too quickly

If I hit SPC p f quickly, I can see pf being entered into the first QuickPick (before the second one gets displayed), then I end up in the +Project menu rather than the +Find file in project one.

edit: I can see there's some handling for this kind of case here:

private async onDidChangeValue(value: string, when?: string) {
this.when = when;
if (this.timeoutId) {
// When the menu is in the delay display mode
if (value.startsWith(this.enteredValue)) {
// Normal case where user enters key while in delay
value = value.substring(this.enteredValue.length);
} else if (this.enteredValue.startsWith(value)) {
// Disallow user from removing entered value when in delay
await this.setValue(this.enteredValue);
return;
} else {
// special case for fixing the quick pick value if trigger key command
// was called before the menu is displayed. When the menu is displayed,
// quick pick value is then selected. Any subsequent key will remove
// the value in the input.
await this.setValue(this.enteredValue + value);
}
}

and indeed it gets much better when I set whichkey.delay to 1 instead of 0. Maybe that logic should be active in some way even without a delay. I can try contributing a fix, but it might take me a while as I have a lot on my plate with my own projects 🙂

Originally posted by @The-Compiler in #38 (comment)

Option to selectively hide items from menu?

Problem

The neovim which-key plugin allows the user to hide active mappings in the which-key popup by providing a flag when creating the mapping. The idea is that you don't want to see hints for mappings that you've used a million times before. So you can choose to hide these specific mappings from the menu, and only get hints for infrequent mappings.

I don't see a way to do this currently in vscode-which-key. I think this could be a useful addition.

Solution

An optional flag in bindingOverrides to hide the mapping from menu, e.g.

    "vspacecode.bindingOverrides": [
        {
            "keys": "\t",
            "name": "",
            "hide": true,
            "icon": "",
            "type": "commands",
            "commands": [
                "workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup",
                "list.select"
            ]
        },
    ],

Alternatives

An alternative is to provide an optional flag to set the sort priority, in order to allow user to fully specify the order that mappings appear in the menu. This seems more involved and I'm not sure is quite necessary.

Vim :set binding

Hi!
I want to binding SPC t h as ":set hls!" vim command to hide/show highlight for search results
How does it write properly in setting.json file?

Automatically alphabetize which-key menu?

If you use the default configuration and create some new menus of your own, they appear at the bottom of the list. It'd be nice if they showed up where they'd be in alphabetical order (regardless of capitalization).

Weird behaviour with Github Pull Request extension

Bug description

Pardon me if this issue is not filed at the right place.

Behaviour: when we type something in the text box of Github pull request extension for vscode, it opens which-key if we happen to use a character as a whichkey trigger. This does not happen to any other text boxes like commit textbox or search file textbox.

To Reproduce

  1. Set which-key trigger as a character, like space by default
  2. Use https://github.com/microsoft/vscode-pull-request-github
  3. Check out a pull request and try to use the text box for submit comments

Expected behavior

Cannot type space character. Will be overriden by which key window

Screenshots

Screen.Recording.2022-02-19.at.15.11.30.mov

System information

image

triggerKey Not Firing from edamagit

Bug description

Trying to create some bindings to recreate the use of forge to manage pull-requests. Reading the docs suggests triggerKey should do the job. If I bind it from settings.json to go through the normalModeKeyBindingsNonRecursive it works, but it rebinds the key everywhere.

Ideally the triggerKey binding should only function when in a magit buffer. I copied an example from how the x key is bound in magit like the following:

To Reproduce

  1. Open keybindings.json and add the following:
        {
    	    "key": "shift-2",
    	    "command": "whichkey.triggerKey",
    	    "args": {
    		    "key": "w"
    	    },
    	    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
        },
  2. Open up a magit status buffer SPC g s by default I think?
  3. Press shift+2 or @

Expected behavior

Given the configuration, my understanding is that it should trigger the window menu (SPC w) to open in the magit buffer. I'm using the window menu for test purposes but it shouldn't matter which menu is chosen, it has not worked with any of them.

Actual behavior

Nothing happens, the magit buffer stays open and I don't see the which-key menu.

Additional context

By replacing the command with workbench.action.showCommands the binding works and the command panel is displayed as expected which suggests whichkey.triggerKey is firing.

If you add the following to settings.json in a vim.normalModeKeyBindingsNonRecursive:

        {
            "before": [
                "@"
            ],
            "commands": [
                "vspacecode.space",
                {
                    "command": "whichkey.triggerKey",
                    "args": "w"
                }
            ]
        }

And press @ anywhere, it works as expected showing the window menu

Keybindings

Click to toggle contents of `keybindings.json`

// Place your key bindings in this file to override the defaultsauto[]
[
    {
        "key": "ctrl+space",
        "command": "-extension.vim_ctrl+space",
        "when": "editorTextFocus && vim.active && vim.use<C-space> && !inDebugRepl && vim.mode != 'Insert'"
    },
    {
        "key": "cmd+k cmd+b",
        "command": "workbench.action.toggleSidebarVisibility"
    },
    {
        "key": "ctrl+j",
        "command": "workbench.action.focusBelowGroup",
        "when": "editorTextFocus && vim.active && vim.use<C-j> && !inDebugRepl"
    },
    {
        "key": "ctrl+k",
        "command": "workbench.action.focusAboveGroup",
        "when": "editorTextFocus && vim.active && vim.use<C-k> && !inDebugRepl"
    },
    {
        "key": "ctrl+h",
        "command": "workbench.action.focusLeftGroup",
        "when": "editorTextFocus && vim.active && vim.use<C-k> && !inDebugRepl"
    },
    {
        "key": "ctrl+l",
        "command": "workbench.action.focusRightGroup",
        "when": "editorTextFocus && vim.active && vim.use<C-k> && !inDebugRepl"
	},
	{
		"key": "space",
		"command": "vspacecode.space",
		"when": "activeEditorGroupEmpty && focusedView == '' && !whichkeyActive && !inputFocus"
	},
	{
		"key": "space",
		"command": "vspacecode.space",
		"when": "sideBarFocus && !inputFocus && !whichkeyActive"
	},
	{
		"key": "tab",
		"command": "extension.vim_tab",
		"when": "editorFocus && vim.active && !inDebugRepl && vim.mode != 'Insert' && editorLangId != 'magit'"
	},
	{
		"key": "tab",
		"command": "-extension.vim_tab",
		"when": "editorFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
	},
	{
		"key": "x",
		"command": "magit.discard-at-point",
		"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
	},
	{
		"key": "k",
		"command": "-magit.discard-at-point"
	},
	{
		"key": "-",
		"command": "magit.reverse-at-point",
		"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
	},
	{
		"key": "v",
		"command": "-magit.reverse-at-point"
	},
	{
		"key": "shift+-",
		"command": "magit.reverting",
		"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
	},
	{
		"key": "shift+v",
		"command": "-magit.reverting"
	},
	{
		"key": "shift+o",
		"command": "magit.resetting",
		"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
	},
	{
		"key": "shift+x",
		"command": "-magit.resetting"
	},
	{
		"key": "x",
		"command": "-magit.reset-mixed"
	},
	{
		"key": "ctrl+u x",
		"command": "-magit.reset-hard"
	},
	{
		"key": "y",
		"command": "-magit.show-refs"
	},
	{
		"key": "y",
		"command": "vspacecode.showMagitRefMenu",
		"when": "editorTextFocus && editorLangId == 'magit' && vim.mode == 'Normal'"
	},
	{
		"key": "ctrl+j",
		"command": "workbench.action.quickOpenSelectNext",
		"when": "inQuickOpen"
	},
	{
		"key": "ctrl+k",
		"command": "workbench.action.quickOpenSelectPrevious",
		"when": "inQuickOpen"
	},
	{
		"key": "ctrl+j",
		"command": "selectNextSuggestion",
		"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
	},
	{
		"key": "ctrl+k",
		"command": "selectPrevSuggestion",
		"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
	},
	{
		"key": "ctrl+l",
		"command": "acceptSelectedSuggestion",
		"when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
	},
	{
		"key": "ctrl+j",
		"command": "showNextParameterHint",
		"when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
	},
	{
		"key": "ctrl+k",
		"command": "showPrevParameterHint",
		"when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
	},
	{
		"key": "ctrl+h",
		"command": "file-browser.stepOut",
		"when": "inFileBrowser"
	},
	{
		"key": "ctrl+l",
		"command": "file-browser.stepIn",
		"when": "inFileBrowser"
	},
	{
		"key": "shift-2",
		"command": "whichkey.triggerKey",
		"args": {
			"key": "w",
			"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
		},
		"when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
	},
]

Settings

My settings file is gigantic right now having a copy of all the default which-key-bindings and is 7k lines long about 360 kb.

I've attached it in a zip manually below

settings.json.zip

System information

CPUs Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz (12 x 2600)
GPU Status 2d_canvas: enabled gpu_compositing: enabled metal: disabled_off multiple_raster_threads: enabled_on oop_rasterization: enabled opengl: enabled_on rasterization: enabled skia_renderer: disabled_off_ok video_decode: enabled webgl: enabled webgl2: enabled
Load (avg) 3, 3, 3
Memory (System) 32.00GB (0.19GB free)
Process Argv --crash-reporter-id 5a5beb4b-1aa2-4b88-b170-d9fb7e11c4bb
Screen Reader no
VM 0%

This tool is still great and I'm looking forward to using it more! 🙂

How to use vscode-which-key to execute an existing keybinding?

As an example, I have the following in my keybindings.json already:

  {
    "command": "workbench.view.explorer",
    "key": "cmd+f t"
  },
  {
    "command": "workbench.view.explorer",
    "key": "cmd+f t",
    "when": "sideBarVisible && !explorerViewletVisible"
  },
  {
    "command": "workbench.action.toggleSidebarVisibility",
    "key": "cmd+f t",
    "when": "sideBarVisible && explorerViewletVisible"
  },

The gist of the above keybindings is that it does one of three things when the chord cmd+f t is invoked:

  1. If the sidebar isn't open, open the sidebar and focus the explorer.
  2. If the sidebar is open but the explorer is not visible, open the explorer and focus it.
  3. If the sidebar is open and the explorer is visible, close it.

It works just fine. I'm trying to set up a which-key binding via VSpaceCode, however I can't figure out how to get this extension to execute a keyboard shortcut, and not a specific command. Right now I can't figure out how to get the above functionality baked into VSpaceCode (via which-key) so I'd rather just be able to execute a keybinding directly instead.

Is it possible to tell which-key to execute a keybinding that already exists?

Specify a file for settings instead of just allowing editing in `settings.json` directly?

I'm working on adding a lot of chord to my keymap set for VSpaceCode (which I definitely plan on sharing when I'm done). I'm just about halfway done, and one thing that I've already noticed is that my settings.json file is enormous now. For context, I've added about 40 or so menu items, which has resulted in roughly 450 new lines in my settings.json file.

As you can imagine, this is making my settings.json file a bit unwieldy at this point. I think it'd be a lot cleaner if I could just specify a variable like vspacecode.bindingOverridesFile and specify the full path to that file, and then vscode-which-key just expands that.

Icon support

I like to have icons in menus, as it makes it easier to visually scan them. Looking at the available icons I wondered if I could find suitable icons for all the menu items, and indeed found something nice for almost all menus:

Screenshots

image

image

image

image

image

Right now I just hard-coded them into the config, but next I'd like to add proper support. I'd propose having an "icon" key for a binding, which which-key then would display depending on a global whichkey.showIcons setting or so.

How does that sound?

Unable to use it with VSCodeVim easy motion

When I press the leader key, Which Key is displayed directly.

I've tried the delay option but I can't use anymore the easy motion plugin of VSCodeVim with this extension.

Do you know how can I do to make it work which key and easy motion without overriding it?

`whichkey.sortOrder` - sort alphabetically with characters before numbers?

Sorry I know I'm getting picky about this now, but it'd be wonderful if you could sort by characters first and then by numbers (special characters I don't particularly care about, they can stay where they are). Right now when hitting <space> with VSpaceCode, half of the menu items that show up are just selections for focusing a particular editor group; which is definitely handy, but I'd argue is not an action I'll need to reference very often.

Avoid redundant declarations of bindings

Problem

Currently, we don't have a way to reuse bindings across different bindings. Hence, we have the following issues related to not having a way to share declaration across different language id like c and c++ or js/typescript.

Solution

Supply location of the configuration to value of "bindings". For example:

{
    "key": "b",
    "name": "+Buffers/Editors",
    "type": "bindings",
    "bindings": "whichkey.bindingsRef.buffers"
}

This will refer to the bindings defined at whichkey.bindingsRef.buffers in the configuration for example

Alternatives

We can change the conditional key to support logical or to solve issue of sharing bindings between different language mode like c and c++; however, that is limited in what it can solve, and could make the declarations the key for the condition.

Additional context

  • The implementation of layer mode (VSpaceCode/VSpaceCode#199) might affect the solutions to this issue
  • The purposed solution can share an identical copies of bindings; however, that would not able to support if a user want to mutate some part of the same config. For example: imaging this as an inheritance relationship, where the c++ bindings are inherited from the c bindings with some extra overrides.

How to add easymotion keybindings

I want to create my custom whichkey "menu" and I have been struggling to add easymotion. As with VSpaceCode when i press <space>-j then i get a list of possible jump points, <space>-j-w does easymotion jump start of word. I want do add same behavior in my whichkey.bindings but with no luck.

here is an example that i have tried

"whichkey.bindings": [
      ...
     {
            "key": "e",
            "name": "Easymotion",
            "type": "bindings",
            "bindings": [
                {
                    "key": "w",
                    "name": "jump word",
                    "type": "command",
                    "args": ["leader", "leader", "leader", "b", "d", "w"] 
                },
                 ....
            ]
      },
       ...
]

Which key stops working after adding this and i get this error
image
I know i am doing something wrong but i don't know what.

Unable to create when condition for pin/unpin editor

Hey I am trying to create the pin / unpin logic, like with the toggle project tree example in the docs, but I can't make it work. Do you have any suggestions?

{
    "key": "p",
    "name": "Pin / Unpin editor",
    "type": "conditional",
    "bindings": [
        {
            "key": "",
            "name": "default",
            "type": "command",
            "command": "workbench.action.pinEditor",
        },
        {
            "key": "when:activeEditorIsPinned",
            "name": "Unpin Editor",
            "type": "command",
            "command": "workbench.action.unpinEditor",
        },
    ]
}

Support several menus

Problem

I want to reduce the length of composite key combinations and, for that reason, I want to have several "entry points" to which keys. For example, I want Alt+s to pop open "symbol" menu, Alt+f -- "file" menu, Alt+e -- "edit" menu, etc. At the moment, this is not possible, as which keys defines a singleton global menu.

Solution

I think a nice solution would be to add an argument to whichkey.show to narrow the menu. I'd love to be able to have something like this in my keybindings.json

    {
      "key": "alt+s",
      "command": "whichkey.show",
      "args": {"narrow": ["s"]}
    },
    {
      "key": "alt+f",
      "command": "whichkey.show",
      "args": {"narrow": ["f"]}
    },
    {
      "key": "alt+e",
      "command": "whichkey.show",
      "args": {"narrow": ["e"]}
    },

Alternatives

I think I can achieve this by writing my own extension which uses whichkey. commands.executeCommand("whichkey.show", "myExtension.bindings"); + whichkey.register should do the trick. However, I don't think that's possible to do without an extra extension, using only user's config.

I also tried to do this using macros extension:

    "macros": {
        "which.symbols": [
            "whichkey.show",
            {"command": "type", "args": {"text": "s"}}
        ],
    }

Sadly, the s is typed into the text editor, rather than into whichkey menu.

Additional context

Thank you for building a lovely extension ❤️ !

Selection can be hard to see in some themes

By the way just a suggestion, but if you want the selection to look better (currently in some themes the inactive selection is barely noticeable) you can try to change the setting "editor.inactiveSelectionBackground" from "workbench.colorCustomizations" to ThemeColor('editor.selectionBackground') when opening the QuickPick menu and then change it back to whatever the user had it set or undefined if it wasn't set when closing the QuickPick menu. I haven't tested this but it should work.

Originally posted by @berknam in VSCodeVim/Vim#5050 (comment)

whichkey.show command doesn't work when used from VSCodeVim keybinding

I'm using vscode-which-key standalone (without VSpaceCode). I have the following VSCodeVim keybinding set up to bring the which-key menu:

    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["<leader>"],
            "commands": ["whichkey.show"]
        },
      ]

When I run the keybinding, I get an empty quick-pick menu:
image

However, if I open the VSCode Command Palette and run the whichkey.show action from there, the command seems to run properly:
image

[Help Wanted] Show the menu when press g

When I press <SPC> key, vscode shows the menu of space key sequence.

image

similar to the spacemacs behavior

image

When I press g key, spacemacs shows the menu of g key sequence such as gd for jump-to-definition and g; for evil-goto-last-change. It's g key sequence, not <SPC> g key sequence.

image

When I press g key, vscode just shows a g in the status bar. I want vscode to show a menu of the g key sequence. Is that possible?

image

Debug Transient State gets closed.

Bug description

I am trying to create a debug transient state to help me debug. When I start debugging and trigger the step over command, the menu reappears for a short menu but then disappears, leaving me outside of the transient menu.

To Reproduce

  1. Add a which key transient menu, like this:
    "whichkey.transient": {
        "debug": {
            "title": "Debug transient",
            "bindings": [
                {
                    "key": "s",
                    "name": "Step over",
                    "icon": "debug-step-over",
                    "command": "workbench.action.debug.stepOver"
                }
// [...]
  1. Start debugging and stop at a breakpoint
  2. Open the transient menu
  3. Press 's' to step over

Expected behavior

The menu should be active after the step over is completed.

Extension broken with the latest VS Code update (1.57.0-insider)

Bug description

After updating VS Code to the latest version (1.57.0-insider), which-key stops capturing keypress in the menu which broke the entire extension. Clicking the menu item using a mouse still works.

To Reproduce

Steps to reproduce the behavior. Something like:

  1. Update VS Code to the latest version (1.57.0-insider)
  2. Open up which-key menu
  3. Type a character to expand an item or exec a command
  4. See xxx is undefined in the status bar and nothing happens

Expected behavior

It should still do its magic after keyprss

System information

Version: 1.57.0-insider
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: 8.9.255.24-electron.0
OS: Darwin x64 19.6.0

Bigger or multi-column menu?

Problem

When I press space, I don't immediately see all possible keybindings:

image

Solution

Either showing the possible options in multiple columns; or at least extending the overlay to the bottom of the window.

I have no idea if either of those are possible, though, as I assume the overlay is displayed by VS code, not manually by the extension.

Alternatives

Scrolling manually to see all possible keys. Maybe there's a way to customize this already, but I didn't find anything after looking through the docs and VS code settings.

Additional context

Thanks for the extension! ❤️ This makes me seriously consider to switch away from Emacs (with Spacemacs and later Doom emacs) after some years, because I never really got the hang of it, but I love the concept!

KeyDetection happening on wrong workspaces

Bug description

To open the menu, by default you have to press space. The problem is that when you're in somewhere such as Ctrl+F (Find) or even in some of the vscode menu screens (for example extensions one), pressing space will trigger the menu, and it will prevent you from searching for example.

To Reproduce

  1. Go to any vscode screen different than the file editor
  2. Press space (or the key for open the menu)
  3. The menu will open

Expected behavior

Open the menu just if focusing the text editor.

Aditional context

I could achieve this functionality by changing the default keybindings.json that I had before, which was:

{
    "key": "space",
    "command": "whichkey.show",
    "when": "neovim.mode != 'insert'"
}

to:

{
    "key": "space",
    "command": "whichkey.show",
    "when": "editorTextFocus && neovim.mode != 'insert'"
 }

Since I don't really work on vscode extensions, I could not find where to put this into the source code to open a pull request, but I think it should be easy.

Thanks.

New commands do not show in default menu

Bug description

I was testing out 0.9.0 and wanted to check out the awesome new stuff that's been added recently (searching through commands, repeating last command, etc.) and noticed that they weren't actually mapped in my config. I have a very large bindingOverrides section in VSpaceCode, so I thought maybe there was some conflict there, however even after removing all of my overrides and restarting VSpaceCode, I still don't see them in the menu, and things like SPC r . and SPC ? give me an "undefined" error in the status bar.

What kind of debugging can I do here to get to the bottom of this? I'm adding my full, unmodified settings.json, but keep in mind I can reproduce this without anything overridden.

Keybindings

Click to toggle contents of `keybindings.json`

[
  {
    "command": "--editor.action.rename",
    "key": "f2",
    "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "--workbench.action.openRecent",
    "key": "cmd+e"
  },
  {
    "key": "shift+cmd+l",
    "command": "-addCursorsAtSearchResults",
    "when": "fileMatchOrMatchFocus && searchViewletVisible"
  },
  {
    "command": "-bookmarks.expandSelectionToNext",
    "key": "shift+alt+l",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+l",
    "command": "-bookmarks.jumpToNext",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+j",
    "command": "-bookmarks.jumpToPrevious",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+cmd+k",
    "command": "-bookmarks.toggle",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+cmd+.",
    "command": "-breadcrumbs.toggleToOn",
    "when": "!config.breadcrumbs.enabled"
  },
  {
    "command": "-code-runner.run",
    "key": "ctrl+alt+n"
  },
  {
    "command": "-code-runner.runByLanguage",
    "key": "ctrl+alt+j"
  },
  {
    "command": "-code-runner.runCustomCommand",
    "key": "ctrl+alt+k"
  },
  {
    "key": "ctrl+l",
    "command": "-copy-relative-path-and-line-numbers.both",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'csv'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'tsv'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'csv (semicolon)'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-csv.preview",
    "when": "editorLangId == 'csv (pipe)'"
  },
  {
    "command": "-cursorDown",
    "key": "ctrl+n",
    "when": "textInputFocus"
  },
  {
    "key": "cmd+u",
    "command": "-cursorUndo",
    "when": "textInputFocus"
  },
  {
    "command": "-deleteAllLeft",
    "key": "cmd+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-deleteAllRight",
    "key": "ctrl+k",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-deleteLeft",
    "key": "ctrl+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-deleteRight",
    "key": "ctrl+d",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "key": "cmd+k cmd+c",
    "command": "-editor.action.addCommentLine",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "shift+alt+a",
    "command": "-editor.action.blockComment",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.changeAll",
    "key": "cmd+f2",
    "when": "editorTextFocus && editorTextFocus && !editorReadonly"
  },
  {
    "key": "cmd+c",
    "command": "-editor.action.clipboardCopyAction",
    "when": "textInputFocus"
  },
  {
    "command": "-editor.action.codeAction",
    "key": "alt+cmd+v",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.commentLine",
    "key": "cmd+/",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.deleteLines",
    "key": "cmd+backspace",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.deleteLines",
    "key": "shift+cmd+k",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.diffReview.next",
    "key": "f7",
    "when": "isInDiffEditor"
  },
  {
    "command": "-editor.action.diffReview.prev",
    "key": "shift+f7",
    "when": "isInDiffEditor"
  },
  {
    "command": "-editor.action.dirtydiff.next",
    "key": "alt+f3",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.dirtydiff.previous",
    "key": "shift+alt+f3",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.goToDeclaration",
    "key": "cmd+down",
    "when": "editorHasDefinitionProvider && editorTextFocus"
  },
  {
    "command": "-editor.action.goToDeclaration",
    "key": "f4",
    "when": "editorHasDefinitionProvider && editorTextFocus"
  },
  {
    "command": "-editor.action.goToImplementation",
    "key": "cmd+f12",
    "when": "editorHasImplementationProvider && editorTextFocus && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.goToReferences",
    "key": "shift+f12",
    "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "key": "shift+cmd+.",
    "command": "-editor.action.inPlaceReplace.down",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "shift+cmd+,",
    "command": "-editor.action.inPlaceReplace.up",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.indentLines",
    "key": "cmd+]",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.insertLineAfter",
    "key": "cmd+enter",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.insertLineAfter",
    "key": "shift+cmd+enter",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible"
  },
  {
    "command": "-editor.action.insertLineBefore",
    "key": "alt+cmd+enter",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.joinLines",
    "key": "ctrl+j",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.joinLines",
    "key": "ctrl+shift+j",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.moveLinesDownAction",
    "key": "alt+down",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.moveLinesUpAction",
    "key": "alt+up",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.nextMatchFindAction",
    "key": "f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.nextSelectionMatchFindAction",
    "key": "cmd+f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.outdentLines",
    "key": "cmd+[",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.peekDefinition",
    "key": "alt+f12",
    "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.peekImplementation",
    "key": "shift+cmd+f12",
    "when": "editorHasImplementationProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.previewDeclaration",
    "key": "alt+space",
    "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor"
  },
  {
    "command": "-editor.action.previousMatchFindAction",
    "key": "shift+cmd+g",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.previousMatchFindAction",
    "key": "shift+f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.previousSelectionMatchFindAction",
    "key": "shift+cmd+f3",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.quickFix",
    "key": "alt+enter",
    "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.referenceSearch.trigger",
    "key": "alt+cmd+f7",
    "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor"
  },
  {
    "key": "cmd+k cmd+u",
    "command": "-editor.action.removeCommentLine",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.rename",
    "key": "f2",
    "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.rename",
    "key": "shift+f6",
    "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
  },
  {
    "command": "-editor.action.revealDefinition",
    "key": "f12",
    "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.revealDefinitionAside",
    "key": "cmd+k f12",
    "when": "editorHasDefinitionProvider && editorTextFocus && !isInEmbeddedEditor"
  },
  {
    "command": "-editor.action.showAccessibilityHelp",
    "key": "alt+f1",
    "when": "editorFocus"
  },
  {
    "command": "-editor.action.showContextMenu",
    "key": "shift+f10",
    "when": "textInputFocus"
  },
  {
    "key": "cmd+k cmd+i",
    "command": "-editor.action.showHover",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.showHover",
    "key": "ctrl+j",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.smartSelect.grow",
    "key": "alt+up",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.smartSelect.shrink",
    "key": "alt+down",
    "when": "editorTextFocus"
  },
  {
    "command": "-editor.action.triggerSuggest",
    "key": "ctrl+space",
    "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
  },
  {
    "key": "cmd+k cmd+x",
    "command": "-editor.action.trimTrailingWhitespace",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "key": "cmd+c",
    "command": "-editor.action.webvieweditor.copy",
    "when": "!editorFocus && !inputFocus && activeEditor == 'WebviewEditor'"
  },
  {
    "command": "-editor.action.wordHighlight.next",
    "key": "f7",
    "when": "editorTextFocus && hasWordHighlights"
  },
  {
    "command": "-editor.action.wordHighlight.prev",
    "key": "shift+f7",
    "when": "editorTextFocus && hasWordHighlights"
  },
  {
    "command": "-editor.debug.action.runToCursor",
    "key": "alt+f9",
    "when": "inDebugMode"
  },
  {
    "command": "-editor.debug.action.selectionToRepl",
    "key": "alt+f8",
    "when": "editorHasSelection && editorTextFocus"
  },
  {
    "command": "-editor.debug.action.toggleInlineBreakpoint",
    "key": "shift+f9",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+k cmd+0",
    "command": "-editor.foldAll",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "command": "-editor.foldAll",
    "key": "shift+cmd+-",
    "when": "editorFocus"
  },
  {
    "key": "cmd+k cmd+/",
    "command": "-editor.foldAllBlockComments",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+8",
    "command": "-editor.foldAllMarkerRegions",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+1",
    "command": "-editor.foldLevel1",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+2",
    "command": "-editor.foldLevel2",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+3",
    "command": "-editor.foldLevel3",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+4",
    "command": "-editor.foldLevel4",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+5",
    "command": "-editor.foldLevel5",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+6",
    "command": "-editor.foldLevel6",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+7",
    "command": "-editor.foldLevel7",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+[",
    "command": "-editor.foldRecursively",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "command": "-editor.gotoNextSymbolFromResult",
    "key": "f12",
    "when": "hasSymbols"
  },
  {
    "key": "cmd+k cmd+l",
    "command": "-editor.toggleFold",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "command": "-editor.unfold",
    "key": "cmd+=",
    "when": "editorFocus"
  },
  {
    "command": "-editor.unfold",
    "key": "cmd+numpad_add",
    "when": "editorFocus"
  },
  {
    "key": "cmd+k cmd+j",
    "command": "-editor.unfoldAll",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+9",
    "command": "-editor.unfoldAllMarkerRegions",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+k cmd+]",
    "command": "-editor.unfoldRecursively",
    "when": "editorTextFocus && foldingEnabled"
  },
  {
    "key": "cmd+c",
    "command": "-execCopy"
  },
  {
    "key": "ctrl+l c",
    "command": "-extension.copyGitHubLinkToClipboard"
  },
  {
    "key": "ctrl+shift+h",
    "command": "-extension.dash.emptySyntax",
    "when": "editorTextFocus"
  },
  {
    "command": "-extension.downloadSettings",
    "key": "shift+alt+d"
  },
  {
    "command": "-extension.node-debug.pickLoadedScript",
    "key": "cmd+f4",
    "when": "debugType == 'node'"
  },
  {
    "command": "-extension.node-debug.pickLoadedScript",
    "key": "cmd+f4",
    "when": "debugType == 'node2'"
  },
  {
    "command": "-extension.node-debug.pickLoadedScript",
    "key": "cmd+f4",
    "when": "debugType == 'chrome'"
  },
  {
    "command": "-extension.node-debug.startWithStopOnEntry",
    "key": "f10",
    "when": "!inDebugMode && debugConfigurationType == 'node'"
  },
  {
    "command": "-extension.node-debug.startWithStopOnEntry",
    "key": "f11",
    "when": "!inDebugMode && debugConfigurationType == 'node'"
  },
  {
    "key": "cmd+unknown",
    "command": "-extension.openWith",
    "when": "editorTextFocus && editorLangId == 'html'"
  },
  {
    "key": "cmd+k d",
    "command": "-extension.openWithDefault",
    "when": "editorTextFocus && editorLangId == 'html'"
  },
  {
    "key": "alt+b",
    "command": "-extension.setBrowserScope"
  },
  {
    "key": "cmd+c",
    "command": "-filesExplorer.copy",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
  },
  {
    "command": "-git.commitAll",
    "key": "cmd+k",
    "when": "!inDebugMode && !terminalFocus"
  },
  {
    "key": "cmd+k cmd+r",
    "command": "-git.revertSelectedRanges",
    "when": "isInDiffEditor"
  },
  {
    "key": "alt+cmd+g /",
    "command": "-gitlens.showCommitSearch",
    "when": "gitlens:enabled && config.gitlens.keymap == 'chorded'"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.compare.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.compare/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.fileHistory.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.fileHistory/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.lineHistory.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.lineHistory/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.repositories.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.repositories/"
  },
  {
    "key": "cmd+c",
    "command": "-gitlens.views.search.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.search/"
  },
  {
    "key": "cmd+c cmd+c",
    "command": "-gitlens.views.search.copy",
    "when": "gitlens:enabled && focusedView =~ /^gitlens\\.views\\.search/"
  },
  {
    "command": "-goToNextReference",
    "key": "f12",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-goToNextReference",
    "key": "f4",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-goToPreviousReference",
    "key": "shift+f12",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-goToPreviousReference",
    "key": "shift+f4",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "key": "ctrl+s",
    "command": "-issue.createIssueFromFile",
    "when": "resourceScheme == 'newIssue' && config.files.autoSave != 'off'"
  },
  {
    "key": "cmd+c",
    "command": "-keybindings.editor.copyKeybindingEntry",
    "when": "inKeybindings && keybindingFocus"
  },
  {
    "key": "cmd+c cmd+c",
    "command": "-keybindings.editor.copyKeybindingEntry",
    "when": "inKeybindings && keybindingFocus"
  },
  {
    "command": "-lineBreakInsert",
    "key": "cmd+enter",
    "when": "editorTextFocus && !editorReadonly"
  },
  {
    "command": "-list.focusDown",
    "key": "ctrl+n",
    "when": "listFocus && !inputFocus"
  },
  {
    "command": "-list.focusUp",
    "key": "ctrl+p",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "k",
    "command": "-magit.discard-at-point"
  },
  {
    "key": "ctrl+u x",
    "command": "-magit.reset-hard"
  },
  {
    "key": "x",
    "command": "-magit.reset-mixed"
  },
  {
    "key": "shift+x",
    "command": "-magit.resetting"
  },
  {
    "key": "v",
    "command": "-magit.reverse-at-point"
  },
  {
    "key": "shift+v",
    "command": "-magit.reverting"
  },
  {
    "key": "y",
    "command": "-magit.show-refs"
  },
  {
    "key": "tab",
    "command": "-magit.toggle-fold",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "command": "-markdown-checkbox.markCheckbox",
    "key": "shift+cmd+enter",
    "when": "editorTextFocus"
  },
  {
    "command": "-markdown-preview-enhanced.openPreview",
    "key": "cmd+k v",
    "when": "editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onBackspaceKey",
    "key": "backspace",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onCtrlEnterKey",
    "key": "cmd+enter",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onIndentLines",
    "key": "cmd+]",
    "when": "editorTextFocus && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onMoveLineDown",
    "key": "alt+down",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onMoveLineUp",
    "key": "alt+up",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onOutdentLines",
    "key": "cmd+[",
    "when": "editorTextFocus && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.onShiftEnterKey",
    "key": "shift+enter",
    "when": "editorTextFocus && !editorReadonly && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "key": "shift+tab",
    "command": "-markdown.extension.onShiftTabKey",
    "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "key": "tab",
    "command": "-markdown.extension.onTabKey",
    "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'"
  },
  {
    "command": "-markdown.extension.togglePreview",
    "key": "ctrl+shift+v",
    "when": "!terminalFocus"
  },
  {
    "key": "shift+cmd+v",
    "command": "-markdown.extension.togglePreview",
    "when": "!terminalFocus"
  },
  {
    "key": "cmd+k v",
    "command": "-markdown.extension.togglePreviewToSide",
    "when": "!terminalFocus"
  },
  {
    "command": "-markdown.extension.togglePreviewToSide",
    "key": "ctrl+k v",
    "when": "!terminalFocus"
  },
  {
    "key": "pagedown",
    "command": "-notifications.focusLastToast",
    "when": "notificationFocus && notificationToastsVisible"
  },
  {
    "command": "-npm-script.rerun-last-script",
    "key": "cmd+r r"
  },
  {
    "command": "-o.showOutput",
    "key": "shift+cmd+f9"
  },
  {
    "key": "cmd+c",
    "command": "-problems.action.copy",
    "when": "problemFocus"
  },
  {
    "command": "-projects.open",
    "key": "alt+cmd+p"
  },
  {
    "command": "-references-view.find",
    "key": "alt+f7",
    "when": "editorHasReferenceProvider"
  },
  {
    "command": "-references-view.find",
    "key": "shift+alt+f12",
    "when": "editorHasReferenceProvider"
  },
  {
    "command": "-references-view.next",
    "key": "f4",
    "when": "reference-list.hasResult"
  },
  {
    "command": "-references-view.prev",
    "key": "shift+f4",
    "when": "reference-list.hasResult"
  },
  {
    "key": "cmd+c",
    "command": "-remote.tunnel.copyAddressInline",
    "when": "tunnelViewFocus && tunnelType == 'Detected' || tunnelViewFocus && tunnelType == 'Forwarded'"
  },
  {
    "command": "-renameFile",
    "key": "shift+f6",
    "when": "explorerViewletVisible && filesExplorerFocus"
  },
  {
    "command": "-revealFileInOS",
    "key": "alt+cmd+r",
    "when": "!editorFocus"
  },
  {
    "key": "ctrl+shift+j",
    "command": "-rust-analyzer.joinLines",
    "when": "editorTextFocus && editorLangId == 'rust'"
  },
  {
    "command": "-search.action.copyMatch",
    "key": "cmd+c",
    "when": "fileMatchOrMatchFocus"
  },
  {
    "command": "-search.action.focusNextSearchResult",
    "key": "f4",
    "when": "hasSearchResult"
  },
  {
    "key": "f4",
    "command": "-search.action.focusNextSearchResult",
    "when": "hasSearchResult || inSearchEditor"
  },
  {
    "key": "ctrl+shift+j",
    "command": "search.action.focusNextSearchResult",
    "when": "hasSearchResult && searchViewletVisible && focusedView == 'workbench.view.search'"
  },
  {
    "command": "-search.action.focusPreviousSearchResult",
    "key": "shift+f4",
    "when": "hasSearchResult"
  },
  {
    "key": "shift+cmd+l",
    "command": "-selectAllSearchEditorMatches",
    "when": "inSearchEditor"
  },
  {
    "command": "-selectNextSuggestion",
    "key": "ctrl+n",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "command": "-selectPrevSuggestion",
    "key": "ctrl+p",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "escape",
    "command": "-settings.action.clearSearchResults",
    "when": "inSettingsSearch"
  },
  {
    "command": "-settings.action.showContextMenu",
    "key": "shift+f9",
    "when": "inSettingsEditor"
  },
  {
    "command": "-showNextParameterHint",
    "key": "ctrl+n",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-showNextParameterHint",
    "key": "ctrl+n",
    "when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-showPrevParameterHint",
    "key": "ctrl+p",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-showPrevParameterHint",
    "key": "ctrl+p",
    "when": "editorTextFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "-todo.toggleBox",
    "key": "cmd+enter",
    "when": "editorTextFocus && editorLangId == 'todo'"
  },
  {
    "command": "-toggleFindRegex",
    "key": "alt+cmd+r",
    "when": "editorFocus"
  },
  {
    "command": "-togglePeekWidgetFocus",
    "key": "cmd+k f2",
    "when": "inReferenceSearchEditor || referenceSearchVisible"
  },
  {
    "command": "-toggleSuggestionDetails",
    "key": "ctrl+space",
    "when": "suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "ctrl+]",
    "command": "-wiki.goToWiki"
  },
  {
    "command": "-workbench.action.compareEditor.nextChange",
    "key": "alt+f5",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.compareEditor.nextChange",
    "key": "f7",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.compareEditor.previousChange",
    "key": "shift+alt+f5",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.compareEditor.previousChange",
    "key": "shift+f7",
    "when": "textCompareEditorVisible"
  },
  {
    "command": "-workbench.action.debug.pause",
    "key": "f6",
    "when": "debugState == 'running'"
  },
  {
    "command": "-workbench.action.editor.changeLanguageMode",
    "key": "cmd+k m"
  },
  {
    "command": "-workbench.action.editor.nextChange",
    "key": "alt+f5",
    "when": "editorTextFocus"
  },
  {
    "command": "-workbench.action.editor.previousChange",
    "key": "shift+alt+f5",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+s",
    "command": "-workbench.action.files.save"
  },
  {
    "command": "-workbench.action.files.saveAll",
    "key": "cmd+s"
  },
  {
    "key": "cmd+k o",
    "command": "-workbench.action.files.showOpenedFileInNewWindow"
  },
  {
    "key": "cmd+0",
    "command": "-workbench.action.focusSideBar"
  },
  {
    "command": "-workbench.action.keybindingsReference",
    "key": "cmd+k cmd+r"
  },
  {
    "command": "-workbench.action.maximizeEditor",
    "key": "shift+cmd+f12"
  },
  {
    "command": "-workbench.action.navigateBack",
    "key": "cmd+["
  },
  {
    "command": "-workbench.action.navigateForward",
    "key": "cmd+]"
  },
  {
    "key": "cmd+k cmd+q",
    "command": "-workbench.action.navigateToLastEditLocation"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "-workbench.action.quickOpenLeastRecentlyUsedEditorInGroup"
  },
  {
    "key": "ctrl+tab",
    "command": "-workbench.action.quickOpenNavigateNextInEditorPicker",
    "when": "inEditorsPicker && inQuickOpen"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "-workbench.action.quickOpenNavigatePreviousInEditorPicker",
    "when": "inEditorsPicker && inQuickOpen"
  },
  {
    "key": "ctrl+tab",
    "command": "-workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup"
  },
  {
    "command": "-workbench.action.quickOpenSelectNext",
    "key": "ctrl+n",
    "when": "inQuickOpen"
  },
  {
    "command": "-workbench.action.quickOpenSelectNext",
    "key": "ctrl+n",
    "when": "neovim.mode == 'cmdline_normal'"
  },
  {
    "command": "-workbench.action.quickOpenSelectPrevious",
    "key": "ctrl+p",
    "when": "inQuickOpen"
  },
  {
    "command": "-workbench.action.quickOpenSelectPrevious",
    "key": "ctrl+p",
    "when": "neovim.mode == 'cmdline_normal'"
  },
  {
    "key": "cmd+q",
    "command": "-workbench.action.quit"
  },
  {
    "key": "alt+cmd+tab",
    "command": "-workbench.action.showAllEditors"
  },
  {
    "command": "-workbench.action.showCommands",
    "key": "f1"
  },
  {
    "command": "-workbench.action.showCommands",
    "key": "shift+cmd+a"
  },
  {
    "command": "-workbench.action.showCommands",
    "key": "shift+cmd+p"
  },
  {
    "command": "-workbench.action.showErrorsWarnings",
    "key": "cmd+f1",
    "when": "editorTextFocus"
  },
  {
    "command": "-workbench.action.splitEditorOrthogonal",
    "key": "cmd+k cmd+\\"
  },
  {
    "command": "-workbench.action.tasks.build",
    "key": "cmd+f9"
  },
  {
    "key": "cmd+k",
    "command": "-workbench.action.terminal.clear",
    "when": "terminalFocus"
  },
  {
    "key": "cmd+c",
    "command": "-workbench.action.terminal.copySelection",
    "when": "terminalFocus && terminalTextSelected"
  },
  {
    "command": "-workbench.action.terminal.findNext",
    "key": "f3",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.findNext",
    "key": "f3",
    "when": "terminalFindWidgetFocused"
  },
  {
    "command": "-workbench.action.terminal.findPrevious",
    "key": "shift+f3",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.findPrevious",
    "key": "shift+f3",
    "when": "terminalFindWidgetFocused"
  },
  {
    "command": "-workbench.action.terminal.focus",
    "key": "alt+f12",
    "when": "!terminalFocus"
  },
  {
    "key": "ctrl+cmd+down",
    "command": "-workbench.action.terminal.resizePaneDown",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.resizePaneLeft",
    "key": "ctrl+cmd+left",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+cmd+right",
    "command": "-workbench.action.terminal.resizePaneRight",
    "when": "terminalFocus"
  },
  {
    "key": "ctrl+cmd+up",
    "command": "-workbench.action.terminal.resizePaneUp",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.toggleTerminal",
    "key": "alt+f12",
    "when": "terminalFocus"
  },
  {
    "command": "-workbench.action.terminal.toggleTerminal",
    "key": "ctrl+`"
  },
  {
    "key": "alt+cmd+i",
    "command": "-workbench.action.toggleDevTools",
    "when": "isDevelopment"
  },
  {
    "command": "-workbench.action.togglePanel",
    "key": "cmd+j"
  },
  {
    "command": "-workbench.action.zoomIn",
    "key": "cmd+="
  },
  {
    "command": "-workbench.action.zoomIn",
    "key": "cmd+numpad_add"
  },
  {
    "command": "-workbench.actions.view.problems",
    "key": "cmd+0"
  },
  {
    "command": "-workbench.actions.view.problems",
    "key": "cmd+numpad0"
  },
  {
    "command": "-workbench.actions.view.problems",
    "key": "shift+cmd+m"
  },
  {
    "key": "cmd+k d",
    "command": "-workbench.files.action.compareWithSaved"
  },
  {
    "command": "-workbench.files.action.focusOpenEditorsView",
    "key": "cmd+k e",
    "when": "workbench.explorer.openEditorsView.active"
  },
  {
    "command": "-workbench.view.search",
    "key": "cmd+numpad3",
    "when": "!searchViewletVisible"
  },
  {
    "command": "-workbench.view.search",
    "key": "shift+cmd+f",
    "when": "!searchViewletVisible"
  },
  {
    "command": "cursorLeft",
    "key": "ctrl+h",
    "when": "textInputFocus"
  },
  {
    "command": "cursorRight",
    "key": "ctrl+l",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartRight",
    "key": "ctrl+alt+right",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartRightSelect",
    "key": "ctrl+shift+alt+right",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartStartLeft",
    "key": "ctrl+alt+left",
    "when": "textInputFocus"
  },
  {
    "command": "cursorWordPartStartLeftSelect",
    "key": "ctrl+shift+alt+left",
    "when": "textInputFocus"
  },
  {
    "command": "deleteAllLeft",
    "key": "cmd+backspace"
  },
  {
    "command": "deleteWordPartLeft",
    "key": "ctrl+alt+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "deleteWordPartRight",
    "key": "ctrl+shift+alt+backspace",
    "when": "textInputFocus && !editorReadonly"
  },
  {
    "command": "editor.action.deleteLines",
    "key": "shift+cmd+backspace",
    "when": "editorFocus"
  },
  {
    "key": "shift+alt+down",
    "command": "editor.action.moveLinesDownAction"
  },
  {
    "key": "shift+alt+up",
    "command": "editor.action.moveLinesUpAction"
  },
  {
    "command": "editor.action.peekDefinition",
    "key": "alt+enter",
    "when": "editorHasDefinitionProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
  },
  {
    "command": "editor.action.triggerSuggest",
    "key": "ctrl+space",
    "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
  },
  {
    "command": "expand_region",
    "key": "alt+up"
  },
  {
    "key": "a",
    "command": "explorer.newFile",
    "when": "filesExplorerFocus && !editorTextFocus && !inputFocus"
  },
  {
    "key": "shift+a",
    "command": "explorer.newFolder",
    "when": "filesExplorerFocus && !editorTextFocus && !inputFocus"
  },
  {
    "command": "extension.jumpy-exit",
    "key": "Escape",
    "when": "editorTextFocus && jumpy.isJumpyMode"
  },
  {
    "command": "extension.jumpy-line",
    "key": "shift+alt+enter",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+alt+a",
    "command": "extension.switchDay"
  },
  {
    "key": "shift+alt+d",
    "command": "extension.switchNight"
  },
  {
    "command": "extension.toggleTheme",
    "key": "shift+alt+d"
  },
  {
    "key": "backspace",
    "command": "extension.vim_backspace",
    "when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
  },
  {
    "key": "ctrl+l",
    "command": "file-browser.stepIn",
    "when": "inFileBrowser"
  },
  {
    "key": "ctrl+h",
    "command": "file-browser.stepOut",
    "when": "inFileBrowser"
  },
  {
    "key": "c",
    "command": "filesExplorer.copy",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !inputFocus"
  },
  {
    "key": "cmd+k cmd+r",
    "command": "keybindings.editor.resetKeybinding"
  },
  {
    "command": "list.focusDown",
    "key": "ctrl+tab",
    "when": "listFocus && !inputFocus && !editorFocus"
  },
  {
    "command": "list.focusUp",
    "key": "ctrl+k",
    "when": "listFocus && !inputFocus"
  },
  {
    "command": "list.focusUp",
    "key": "ctrl+shift+tab",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "x",
    "command": "magit.discard-at-point",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "shift+o",
    "command": "magit.resetting",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "-",
    "command": "magit.reverse-at-point",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "shift+-",
    "command": "magit.reverting",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "key": "ctrl+tab",
    "command": "magit.toggle-fold",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
  },
  {
    "command": "markdown-checkbox.markCheckbox",
    "key": "alt+enter",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+c",
    "command": "problems.action.copy",
    "when": "problemFocus"
  },
  {
    "key": "cmd+c",
    "command": "remote.tunnel.copyAddressInline",
    "when": "tunnelViewFocus && tunnelType == 'Detected' || tunnelViewFocus && tunnelType == 'Forwarded'"
  },
  {
    "command": "search.action.copyMatch",
    "key": "cmd+c",
    "when": "fileMatchOrMatchFocus"
  },
  {
    "key": "ctrl+shift+k",
    "command": "search.action.focusPreviousSearchResult",
    "when": "hasSearchResult && searchViewletVisible"
  },
  {
    "key": "tab",
    "command": "selectNextQuickFix",
    "when": "editorFocus && quickFixWidgetVisible"
  },
  {
    "command": "selectNextSuggestion",
    "key": "ctrl+j",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "ctrl+j",
    "command": "selectNextSuggestion",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "tab",
    "command": "selectNextSuggestion",
    "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
  },
  {
    "key": "shift+tab",
    "command": "selectPrevQuickFix",
    "when": "editorFocus && quickFixWidgetVisible"
  },
  {
    "command": "selectPrevSuggestion",
    "key": "ctrl+k",
    "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "ctrl+k",
    "command": "selectPrevSuggestion",
    "when": "suggestWidgetMultipleworkbenchSuggestions && suggestWidgetVisible && textInputFocus"
  },
  {
    "key": "shift+tab",
    "command": "selectPrevSuggestion",
    "when": "editorTextFocus && suggestWidgetMultipleSuggestions && suggestWidgetVisible"
  },
  {
    "key": "Escape",
    "command": "workbench.action.blur",
    "when": "inSettingsSearch"
  },
  {
    "key": "ctrl+j",
    "command": "showNextParameterHint",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "key": "ctrl+k",
    "command": "showPrevParameterHint",
    "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
  },
  {
    "command": "toggleSuggestionDetails",
    "key": "alt+space",
    "when": "suggestWidgetVisible && textInputFocus"
  },
  {
    "command": "undo_expand_region",
    "key": "alt+down",
    "when": "editorTextFocus && editorHasSelection"
  },
  {
    "key": "y",
    "command": "vspacecode.showMagitRefMenu",
    "when": "editorTextFocus && editorLangId == 'magit' && vim.mode == 'Normal'"
  },
  {
    "key": "ctrl+space",
    "command": "vspacecode.space",
    "when": "terminalFocus"
  },
  {
    "key": "space",
    "command": "vspacecode.space",
    "when": "!whichkeyActive && !inputFocus && !textInputFocus && activeViewlet != 'workbench.view.extension.github-pull-requests'"
  },
  {
    "key": "ctrl+n",
    "command": "workbench.action.compareEditor.nextChange",
    "when": "isInDiffEditor"
  },
  {
    "key": "ctrl+p",
    "command": "workbench.action.compareEditor.previousChange",
    "when": "isInDiffEditor"
  },
  {
    "key": "shift+cmd+,",
    "command": "workbench.action.decreaseViewSize"
  },
  {
    "key": "escape",
    "command": "workbench.action.blur",
    "when": "!editorTextFocus && !whichKeyActive && inputFocus && !terminalFocus"
  },
  {
    "key": "escape",
    "command": "workbench.action.blur",
    "when": "!editorTextFocus && !whichKeyActive && panelFocus && !terminalFocus"
  },
  {
    "key": "shift+escape",
    "command": "workbench.action.blur",
    "when": "terminalFocus"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.explorer'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.scm'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.debug'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extensions'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.test'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.github-pull-requests'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.bookmarks'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.gistpad'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.todo-tree-container'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.project-manager'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.dockerView'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.kubernetesView'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusFirstEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.mongoDB'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.explorer'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.scm'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.debug'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extensions'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.github-pull-requests'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "inKeybindings"
  },
  {
    "command": "workbench.action.focusLastEditorGroup",
    "key": "shift+tab",
    "when": "inKeybindings && activeEditorGroupLast && !sideBarVisible"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.bookmarks'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.gistpad'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.todo-tree-container'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.project-manager'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.dockerView'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.kubernetesView'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.focusLastEditorGroup",
    "when": "sideBarFocus && activeViewlet == 'workbench.view.extension.mongoDB'"
  },
  {
    "command": "workbench.action.focusNextGroup",
    "key": "tab",
    "when": "editorFocus && vim.mode == 'Normal'"
  },
  {
    "key": "tab",
    "command": "workbench.action.focusNextGroup",
    "when": "inKeybindings"
  },
  {
    "command": "workbench.action.focusPreviousGroup",
    "key": "shift+tab",
    "when": "editorFocus && vim.mode == 'Normal' && activeEditorGroupIndex != 1"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "shift+tab",
    "when": "editorFocus && vim.mode == 'Normal' && activeEditorGroupIndex == 1"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "shift+tab",
    "when": "inKeybindings && activeEditorGroupIndex == 1 && sideBarVisible"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "tab",
    "when": "editorFocus && vim.mode == 'Normal' && activeEditorGroupLast && sideBarVisible"
  },
  {
    "command": "workbench.action.focusSideBar",
    "key": "tab",
    "when": "inKeybindings && activeEditorGroupLast && sideBarVisible"
  },
  {
    "key": "shift+cmd+.",
    "command": "workbench.action.increaseViewSize"
  },
  {
    "command": "workbench.action.navigateBack",
    "key": "cmd+["
  },
  {
    "command": "workbench.action.navigateForward",
    "key": "cmd+]"
  },
  {
    "key": "ctrl+tab",
    "command": "workbench.action.nextPanelView",
    "when": "panelFocus"
  },
  {
    "key": "shift+ctrl+tab",
    "command": "workbench.action.previousPanelView",
    "when": "panelFocus"
  },
  {
    "key": "ctrl+j",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
  },
  {
    "key": "ctrl+j",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
  },
  {
    "command": "workbench.action.quickOpenSelectPrevious",
    "key": "ctrl+k",
    "when": "inQuickOpen"
  },
  {
    "key": "ctrl+k",
    "command": "workbench.action.quickOpenSelectPrevious",
    "when": "inQuickOpen"
  },
  {
    "key": "cmd+c",
    "command": "workbench.action.terminal.copySelection",
    "when": "terminalFocus && terminalTextSelected"
  },
  {
    "command": "workbench.action.terminal.focus",
    "key": "cmd+'"
  },
  {
    "command": "workbench.action.terminal.runSelectedText",
    "key": "ctrl+shift+alt+t"
  },
  {
    "command": "workbench.action.terminal.toggleTerminal",
    "key": "ctrl+'"
  },
  {
    "key": "cmd+k alt+cmd+right",
    "command": "-workbench.action.nextEditorInGroup"
  },
  {
    "key": "cmd+k alt+cmd+left",
    "command": "-workbench.action.previousEditorInGroup"
  },
  {
    "key": "shift+cmd+i",
    "command": "-emojisense.quickEmojitext",
    "when": "editorTextFocus"
  },
  {
    "key": "shift+cmd+i",
    "command": "-emojisense.quickEmojitextTerminal",
    "when": "terminalFocus"
  },
  {
    "key": "cmd+i",
    "command": "-emojisense.quickEmoji",
    "when": "editorTextFocus"
  },
  {
    "key": "cmd+i",
    "command": "-emojisense.quickEmojiTerminal",
    "when": "terminalFocus"
  },
  {
    "key": "backspace",
    "command": "extension.vim_shift+backspace",
    "when": "editorTextFocus && vim.use<shift+BS> && !inDebugRepl && vim.mode == 'SearchInProgressMode'"
  },
  {
    "key": "backspace",
    "command": "deleteLeft",
    "when": "textInputFocus && !vim.active"
  },
  {
    "key": "backspace",
    "command": "deleteLeft",
    "when": "textInputFocus && !editorTextFocus"
  },
  {
    "key": "backspace",
    "command": "deleteLeft",
    "when": "editorTextFocus && vim.active && !inDebugRepl && vim.mode == 'Insert'"
  },
  {
    "key": "shift+tab",
    "command": "editor.action.outdentLines",
    "when": "editorTextFocus && vim.mode == 'Visual'"
  },
  {
    "key": "shift+tab",
    "command": "editor.action.outdentLines",
    "when": "editorTextFocus && vim.mode == 'VisualLine'"
  },
  {
    "key": "shift+tab",
    "command": "editor.action.outdentlines",
    "when": "editorTextfocus && vim.mode == 'VisualBlock'"
  },
  {
    "key": "q",
    "command": "workbench.action.closeSidebar",
    "when": "sideBarFocus && !inputFocus"
  },
  {
    "key": "ctrl+tab",
    "command": "workbench.action.nextSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "ctrl+shift+tab",
    "command": "workbench.action.previousSideBarView",
    "when": "sideBarFocus"
  },
  {
    "key": "d",
    "command": "deleteFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "alt+cmd+backspace",
    "command": "-deleteFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "r",
    "command": "renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "shift+r",
    "command": "workbench.files.action.refreshFilesExplorer",
    "when": "explorerViewletVisible && filesExplorerFocus && !inputFocus"
  },
  {
    "key": "enter",
    "command": "-renameFile",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "enter",
    "command": "list.select",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "p",
    "command": "filesExplorer.openFilePreserveFocus",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsFolder && !inputFocus"
  },
  {
    "key": "space",
    "command": "-filesExplorer.openFilePreserveFocus",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsFolder && !inputFocus"
  },
  {
    "key": "j",
    "command": "list.focusDown",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "j",
    "command": "-list.focusDown",
    "when": "listFocus && !inputFocus"
  },
  {
    "key": "g h",
    "command": "workbench.files.action.collapseExplorerFolders",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "X",
    "command": "code-runner.run",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "j",
    "command": "workbench.statusBar.focusNext",
    "when": "statusBarFocused"
  },
  {
    "key": "k",
    "command": "workbench.statusBar.focusPrevious",
    "when": "statusBarFocused"
  },
  {
    "key": "alt+j",
    "command": "editor.action.copyLinesDownAction"
  },
  {
    "key": "alt+k",
    "command": "editor.action.copyLinesUpAction"
  },
  {
    "key": "ctrl+shift+s",
    "command": "workbench.action.files.saveAll"
  },
  {
    "key": "alt+cmd+s",
    "command": "-workbench.action.files.saveAll"
  },
  {
    "key": "ctrl+s",
    "command": "workbench.action.files.save"
  },
  {
    "key": "shift+alt+cmd+p",
    "command": "togglePeekWidgetFocus"
  },
  {
    "key": "cmd+\\",
    "command": "workbench.action.toggleSidebarVisibility"
  },
  {
    "key": "cmd+b",
    "command": "-workbench.action.toggleSidebarVisibility"
  },
  {
    "key": "cmd+\\",
    "command": "-workbench.action.splitEditor"
  },
  {
    "key": "shift+alt+f",
    "command": "-editor.action.formatDocument.none",
    "when": "editorTextFocus && !editorHasDocumentFormattingProvider && !editorHasDocumentFormattingProvider && !editorReadonly"
  },
  {
    "key": "shift+alt+f",
    "command": "-editor.action.formatDocument",
    "when": "editorHasDocumentFormattingProvider && editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
  },
  {
    "key": "ctrl+p",
    "command": "-cursorUp",
    "when": "textInputFocus"
  },
  {
    "key": "p",
    "command": "filesExplorer.paste",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "cmd+v",
    "command": "-filesExplorer.paste",
    "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceReadonly && !inputFocus"
  },
  {
    "key": "shift+l",
    "command": "breadcrumbs.focusNextWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "alt+right",
    "command": "-breadcrumbs.focusNextWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "h",
    "command": "breadcrumbs.focusPrevious",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "alt+left",
    "command": "-breadcrumbs.focusPrevious",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "left",
    "command": "-breadcrumbs.focusPrevious",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "shift+l",
    "command": "breadcrumbs.focusNext",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "right",
    "command": "-breadcrumbs.focusNext",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "shift+h",
    "command": "breadcrumbs.focusPreviousWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "alt+left",
    "command": "-breadcrumbs.focusPreviousWithPicker",
    "when": "breadcrumbsActive && breadcrumbsVisible && listFocus && !inputFocus"
  },
  {
    "key": "alt+right",
    "command": "-breadcrumbs.focusNext",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "l",
    "command": "list.expand",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "h",
    "command": "list.collapse",
    "when": "breadcrumbsActive && breadcrumbsVisible"
  },
  {
    "key": "ctrl+enter",
    "command": "editor.action.openLink",
    "when": "inSearchEditor"
  },
  {
    "key": "ctrl+l",
    "command": "-md-shortcut.toggleLink",
    "when": "editorTextFocus && markdownShortcuts:enabled"
  },
  {
    "key": "alt+w",
    "command": "workbench.action.increaseViewHeight"
  },
  {
    "key": "alt+w",
    "command": "-extension.htmlTagWrap",
    "when": "editorTextFocus"
  },
  {
    "key": "alt+d",
    "command": "workbench.action.increaseViewWidth"
  },
  {
    "key": "alt+s",
    "command": "workbench.action.decreaseViewHeight"
  },
  {
    "key": "alt+a",
    "command": "workbench.action.decreaseViewWidth"
  },
  {
    "key": "tab",
    "command": "search.action.focusSearchList",
    "when": "hasSearchResult && searchViewletVisible && focusedView == 'workbench.view.search'"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.findInFiles",
    "when": "hasSearchResult && searchViewletVisible && focusedView == 'workbench.view.search'"
  },
  {
    "key": "ctrl+j",
    "command": "list.focusDown",
    "when": "panelFocus && activePanel == 'workbench.panel.markers' && !inputFocus"
  },
  {
    "key": "ctrl+l",
    "command": "list.expand",
    "when": "panelFocus && activePanel == 'workbench.panel.markers' && !inputFocus"
  },
  {
    "key": "ctrl+h",
    "command": "list.collapse",
    "when": "panelFocus && activePanel == 'workbench.panel.markers' && !inputFocus"
  },
  {
    "key": "tab",
    "command": "problems.action.focusProblemsFromFilter",
    "when": "problemsFilterFocus"
  },
  {
    "key": "shift+tab",
    "command": "problems.action.focusProblemsFromFilter",
    "when": "problemsFilterFocus"
  },
  {
    "key": "tab",
    "command": "problems.action.focusFilter",
    "when": "focusedView == 'workbench.panel.markers.view'"
  },
  {
    "key": "shift+tab",
    "command": "problems.action.focusFilter",
    "when": "focusedView == 'workbench.panel.markers.view'"
  },
  {
    "key": "tab",
    "command": "workbench.action.quickOpenSelectNext",
    "when": "inQuickOpen"
  },
  {
    "key": "shift+tab",
    "command": "workbench.action.quickOpenSelectPrevious",
    "when": "inQuickOpen"
  }
]

Settings

Click to toggle contents of `settings.json`

{
  "Lua.telemetry.enable": false,
  "[confluence]": {
    "editor.formatOnSave": false,
    "editor.minimap.enabled": false,
    "editor.quickSuggestions": {
      "comments": false,
      "other": false,
      "strings": false
    },
    "editor.wordWrap": "wordWrapColumn",
    "editor.wordWrapColumn": 120
  },
  "[css]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[dockerfile]": {
    "editor.defaultFormatter": "ms-azuretools.vscode-docker"
  },
  "[go]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports": true
    },
    "editor.formatOnSave": true,
    "editor.snippetSuggestions": "none"
  },
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": false
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "modifications"
  },
  "[javascriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file"
  },
  "[makefile]": {
    "editor.insertSpaces": false,
    "editor.tabSize": 4
  },
  "[markdown]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": false,
    "editor.minimap.enabled": false,
    "editor.quickSuggestions": false,
    "editor.wordWrap": "off",
    "editor.wordWrapColumn": 100
  },
  "[mongodb]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[nunjucks]": {
    "editor.defaultFormatter": "okitavera.vscode-nunjucks-formatter"
  },
  "[plaintext]": {
    "editor.wordWrap": "off",
    "editor.wordWrapColumn": 120
  },
  "[python]": {
    "editor.codeActionsOnSave": {
      "source.organizeImports.python": true
    },
    "editor.defaultFormatter": "ms-python.python",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file",
    "editor.rulers": [88],
    "editor.tabSize": 8
  },
  "[shellscript]": {
    "editor.defaultFormatter": "foxundermoon.shell-format",
    "editor.formatOnSave": false
  },
  "[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
    "editor.formatOnSave": true
  },
  "[typescriptreact]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[yaml]": {
    "editor.defaultFormatter": "redhat.vscode-yaml",
    "editor.tabSize": 2
  },
  "breadcrumbs.enabled": true,
  "code-runner.enableAppInsights": false,
  "code-runner.executorMap": {
    "javascript": "node -r esm",
    "perl": "perl",
    "python": "$pythonPath $fullFileName"
  },
  "code-runner.fileDirectoryAsCwd": true,
  "code-runner.showRunIconInEditorTitleMenu": false,
  "codeui.targetingMode": "themeSpecific",
  "color-highlight.markRuler": false,
  "color-highlight.markerType": "underline",
  "confluenceMarkup.monospaceFont": "MonoLisa",
  "customizeUI.activityBar": "regular",
  "customizeUI.fontSizeMap": {
    "13px": "13px",
    "monospace": "14px"
  },
  "customizeUI.stylesheet": {
    "[id='workbench.view.explorer'] .monaco-icon-label.folder-icon > .monaco-icon-label-container > .monaco-icon-name-container > .label-name": "font-weight: 900; filter: brightness(1.2);",
    "[id='workbench.view.explorer'] .pane-body .mac": "font-family: 'MonoLisa'; font-size: 13px;"
  },
  "customizeUI.titleBar": "inline",
  "diffEditor.codeLens": true,
  "diffEditor.ignoreTrimWhitespace": true,
  "diffEditor.renderSideBySide": true,
  "diffEditor.wordWrap": "off",
  "docker.images.sortBy": "CreatedTime",
  "editor.acceptSuggestionOnCommitCharacter": false,
  "editor.codeLensFontFamily": "Inter",
  "editor.cursorBlinking": "solid",
  "editor.cursorSmoothCaretAnimation": true,
  "editor.cursorSurroundingLines": 10,
  "editor.dragAndDrop": true,
  "editor.find.cursorMoveOnType": false,
  "editor.fontFamily": "MonoLisa",
  "editor.fontLigatures": true,
  "editor.fontSize": 14,
  "editor.formatOnSaveMode": "modifications",
  "editor.highlightActiveIndentGuide": false,
  "editor.lineHeight": 21,
  "editor.lineNumbers": "on",
  "editor.linkedEditing": true,
  "editor.minimap.enabled": false,
  "editor.renderIndentGuides": false,
  "editor.renderLineHighlight": "gutter",
  "editor.renderWhitespace": "all",
  "editor.semanticHighlighting.enabled": true,
  "editor.showFoldingControls": "always",
  "editor.smoothScrolling": true,
  "editor.snippetSuggestions": "top",
  "editor.stickyTabStops": true,
  "editor.suggest.localityBonus": true,
  "editor.suggest.snippetsPreventQuickSuggestions": false,
  "editor.suggestSelection": "first",
  "editor.tokenColorCustomizations": {},
  "editor.wordWrap": "off",
  "emmet.includeLanguages": {
    "markdown": "html",
    "nunjucks": "html"
  },
  "emmet.showSuggestionsAsSnippets": true,
  "emmet.triggerExpansionOnTab": true,
  "errorLens.addNumberOfDiagnostics": true,
  "errorLens.followCursor": "activeLine",
  "errorLens.gutterIconsEnabled": true,
  "explorer.autoReveal": "focusNoScroll",
  "explorer.confirmDelete": false,
  "explorer.confirmDragAndDrop": false,
  "explorer.openEditors.visible": 0,
  "extensions.autoUpdate": false,
  "files.associations": {
    "*.end": "shellscript",
    "*.jira": "confluence",
    "*.json": "json",
    "*.sublime-keymap": "json",
    "*.textbundle": "markdown",
    ".ackrc": "shellscript",
    ".env": "env",
    ".env-example": "env",
    ".ideavimrc": "viml",
    ".prettierrc": "yaml",
    ".spacemacs": "lisp",
    "settings.json": "jsonc"
  },
  "files.autoSave": "off",
  "files.exclude": {
    "**/*.zwc*": true,
    "**/.classpath": true,
    "**/.factorypath": true,
    "**/.git": false,
    "**/.project": true,
    "**/.settings": true,
    "**/.zcompdump": true,
    "**/.zsh_history": true
  },
  "git.autofetch": true,
  "git.confirmSync": false,
  "git.enableCommitSigning": true,
  "git.enableSmartCommit": true,
  "git.enableStatusBarSync": false,
  "gitlens.advanced.messages": {
    "suppressCommitHasNoPreviousCommitWarning": false,
    "suppressCommitNotFoundWarning": false,
    "suppressFileNotUnderSourceControlWarning": false,
    "suppressGitVersionWarning": false,
    "suppressLineUncommittedWarning": true,
    "suppressNoRepositoryWarning": false
  },
  "gitlens.blame.ignoreWhitespace": true,
  "gitlens.codeLens.scopes": ["document", "blocks"],
  "gitlens.keymap": "none",
  "gitlens.statusBar.command": "gitlens.toggleFileBlame",
  "gitlens.statusBar.reduceFlicker": true,
  "go.autocompleteUnimportedPackages": true,
  "go.buildOnSave": "package",
  "go.coverOnTestPackage": false,
  "go.formatTool": "goimports",
  "go.lintFlags": ["--fast"],
  "go.lintOnSave": "package",
  "go.lintTool": "golangci-lint",
  "go.useCodeSnippetsOnFunctionSuggest": true,
  "go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
  "go.useLanguageServer": true,
  "go.vetOnSave": "package",
  "gopls": {
    "gofumpt": true
  },
  "indentRainbow.colors": [
    "rgba(98, 114, 164, 0.1)",
    "rgba(98, 114, 164, 0.2)",
    "rgba(98, 114, 164, 0.3)",
    "rgba(98, 114, 164, 0.4)",
    "rgba(98, 114, 164, 0.5)"
  ],
  "indentRainbow.includedLanguages": ["python"],
  "javascript.suggest.completeFunctionCalls": true,
  "javascript.updateImportsOnFileMove.enabled": "always",
  "json.trace.server": "verbose",
  "jupyter.askForKernelRestart": false,
  "jupyter.sendSelectionToInteractiveWindow": false,
  "keyboard.dispatch": "keyCode",
  "markdown.extension.italic.indicator": "_",
  "markdown.extension.list.indentationSize": "inherit",
  "markdown.extension.toc.levels": "2..6",
  "markdown.extension.toc.slugifyMode": "github",
  "markdownShortcuts.bullets.marker": "-",
  "markdownShortcuts.icons.bold": false,
  "markdownShortcuts.icons.bullets": false,
  "markdownShortcuts.icons.italic": false,
  "markdownShortcuts.icons.strikethrough": false,
  "markdownlint.config": {
    "MD004": {
      "style": "dash"
    },
    "MD006": false,
    "MD007": false,
    "MD010": false,
    "MD012": false,
    "MD026": false,
    "MD027": false,
    "MD029": false,
    "MD032": false,
    "MD033": false,
    "MD034": false,
    "MD040": false,
    "MD041": false,
    "MD047": false,
    "default": true
  },
  "multiCommand.commands": [
    {
      "command": "multiCommand.peekDefinitionAndFocus",
      "interval": 100,
      "sequence": ["editor.action.peekDefinition", "togglePeekWidgetFocus"]
    },
    {
      "command": "multiCommand.navigateExplorerDownAndPreviewFile",
      "sequence": ["list.focusDown", "filesExplorer.openFilePreserveFocus"]
    },
    {
      "command": "multiCommand.navigateExplorerUpAndPreviewFile",
      "sequence": ["list.focusUp", "filesExplorer.openFilePreserveFocus"]
    },
    {
      "command": "multiCommand.splitWindowRightAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorRight",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.splitWindowLeftAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorLeft",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.splitWindowBelowAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorDown",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.splitWindowAboveAndSearchForFile",
      "sequence": [
        "workbench.action.splitEditorUp",
        "workbench.action.quickOpen"
      ]
    },
    {
      "command": "multiCommand.unfocusInputByCreatingNewEditorGroup",
      "sequence": ["workbench.action.newGroupAbove"]
    },
    {
      "command": "multiCommand.closePanelAndSidebarAndOtherEditors",
      "sequence": [
        "workbench.action.closePanel",
        "workbench.action.closeSidebar",
        "workbench.action.closeEditorsInOtherGroups"
      ]
    },
    {
      "command": "multiCommand.moveToNextChangeAndShow",
      "sequence": [
        "workbench.action.editor.nextChange",
        "editor.action.dirtydiff.next"
      ]
    },
    {
      "command": "multiCommand.moveToPreviousChangeAndShow",
      "sequence": [
        "workbench.action.editor.previousChange",
        "editor.action.dirtydiff.previous"
      ]
    },
    {
      "command": "multiCommand.copyAndCommentLines",
      "sequence": [
        "editor.action.clipboardCopyAction",
        "editor.action.commentLine"
      ]
    },
    {
      "command": "multiCommand.copyRelativePathAndPrintIt",
      "sequence": ["copy-relative-path-and-line-numbers.path-only", "execPaste"]
    },
    {
      "command": "multiCommand.copyRelativePathAndSelectedLinesAndPrintIt",
      "sequence": ["copy-relative-path-and-line-numbers.both", "execPaste"]
    },
    {
      "command": "multiCommand.acceptCompletionAndInsertPeriod",
      "sequence": [
        "acceptSelectedSuggestion",
        {
          "args": {
            "text": "."
          },
          "command": "type"
        }
      ]
    },
    {
      "command": "multiCommand.acceptCompletionAndInsertEquals",
      "sequence": [
        "acceptSelectedSuggestion",
        {
          "args": {
            "text": " = "
          },
          "command": "type"
        }
      ]
    },
    {
      "command": "multiCommand.acceptCompletionAndInsertSpace",
      "sequence": [
        "acceptSelectedSuggestion",
        {
          "args": {
            "text": " "
          },
          "command": "type"
        }
      ]
    }
  ],
  "mypy.dmypyExecutable": "/Users/juliant/.mypyls/bin/dmypy",
  "nightswitch.autoSwitch": false,
  "nightswitch.dayTheme": "GitHub Light",
  "nightswitch.nightTheme": "GitHub Dark",
  "path-autocomplete.excludedItems": {
    "**/{.git,node_modules}": {
      "when": "**"
    }
  },
  "path-intellisense.showHiddenFiles": true,
  "projectManager.git.baseFolders": ["/Users/juliant/GitLocal/"],
  "projectManager.git.ignoredFolders": [
    "node_modules",
    "out",
    "typings",
    "test",
    ".haxelib",
    ".zinit",
    "rust-lang-book"
  ],
  "projectManager.git.maxDepthRecursion": 4,
  "projectManager.groupList": true,
  "projectManager.openInNewWindowWhenClickingInStatusBar": true,
  "projectManager.showProjectNameInStatusBar": true,
  "projectManager.sortList": "Saved",
  "python.analysis.autoImportCompletions": true,
  "python.analysis.completeFunctionParens": true,
  "python.analysis.diagnosticMode": "workspace",
  "python.analysis.typeCheckingMode": "basic",
  "python.experiments.optInto": ["pythonDiscoveryModuleWithoutWatcher"],
  "python.formatting.blackPath": "black",
  "python.formatting.provider": "black",
  "python.languageServer": "Pylance",
  "python.logging.level": "info",
  "python.showStartPage": false,
  "python.sortImports.args": [
    "--settings-path=${workspaceFolder}/pyproject.toml",
    "--profile=black"
  ],
  "python.sortImports.path": "/usr/local/bin/isort",
  "redhat.telemetry.enabled": false,
  "rpmspec.lint": false,
  "scm.defaultViewMode": "tree",
  "search.exclude": {
    "**/.git": true,
    "yarn-error.log": true,
    "yarn.lock": true
  },
  "search.showLineNumbers": true,
  "search.smartCase": true,
  "settings.cycle": [
    {
      "id": "lineNumbers",
      "values": [
        {
          "editor.lineNumbers": "off"
        },
        {
          "editor.lineNumbers": "on"
        },
        {
          "editor.lineNumbers": "relative"
        }
      ]
    },
    {
      "id": "vimSelectionBackground",
      "values": [
        {
          "workbench.colorCustomizations": {
            "editor.lineHighlightBackground": "#44475a"
          }
        },
        {
          "workbench.colorCustomizations": {
            "editor.lineHighlightBackground": "#282a36"
          }
        }
      ]
    }
  ],
  "shellcheck.customArgs": ["-x"],
  "shellformat.flag": "-i 2 -ci -bn",
  "snipsnap.silent": true,
  "sync.autoDownload": false,
  "sync.autoUpload": false,
  "sync.forceDownload": false,
  "sync.forceUpload": true,
  "sync.gist": "d6476dba5ec0a560c674cef5fdba969f",
  "sync.quietSync": false,
  "sync.removeExtensions": true,
  "sync.syncExtensions": true,
  "telemetry.enableTelemetry": false,
  "terminal.explorerKind": "external",
  "terminal.external.osxExec": "iTerm2.app",
  "terminal.integrated.commandsToSkipShell": ["vspacecode.space"],
  "terminal.integrated.fontFamily": "MonoLisa, Hack Nerd Font",
  "terminal.integrated.fontSize": 14,
  "terminal.integrated.letterSpacing": 1,
  "terminal.integrated.lineHeight": 1.1,
  "terminal.integrated.macOptionIsMeta": true,
  "terminal.integrated.tabs.enabled": true,
  "todo-tree.filtering.includeHiddenFiles": true,
  "todo-tree.general.tags": [
    "BUG",
    "HACK",
    "FIXME",
    "TODO",
    "XXX",
    "[ ]",
    "[x]"
  ],
  "todo-tree.regex.regex": "(//|#|<!--|;|/\\*|^|^\\s*(-|\\d+.))\\s*($TAGS)",
  "typescript.suggest.completeFunctionCalls": true,
  "typescript.suggest.paths": false,
  "vim.cursorStylePerMode.insert": "line",
  "vim.cursorStylePerMode.normal": "block",
  "vim.cursorStylePerMode.replace": "block-outline",
  "vim.cursorStylePerMode.visual": "block-outline",
  "vim.cursorStylePerMode.visualblock": "block-outline",
  "vim.cursorStylePerMode.visualline": "block-outline",
  "vim.easymotion": true,
  "vim.easymotionKeys": "asdfghjklvbcn",
  "vim.easymotionMarkerFontWeight": "bold",
  "vim.easymotionMarkerForegroundColorOneChar": "#f78ae0",
  "vim.enableNeovim": true,
  "vim.highlightedyank.color": "rgba(247, 138, 224, 0.40)",
  "vim.highlightedyank.enable": true,
  "vim.history": 100,
  "vim.hlsearch": true,
  "vim.insertModeKeyBindings": [
    {
      "before": ["<C-j>"],
      "commands": ["cursorDown"]
    },
    {
      "before": ["<C-k>"],
      "commands": ["cursorUp"]
    },
    {
      "before": ["<BS>"],
      "commands": ["deleteLeft"]
    },
    {
      "after": ["cmd+z"],
      "before": ["cmd+a"]
    },
    {
      "after": ["<Esc>"],
      "before": ["ctrl+d"]
    }
  ],
  "vim.leader": ";",
  "vim.neovimPath": "/usr/local/bin/nvim",
  "vim.normalModeKeyBindingsNonRecursive": [
    {
      "after": ["<ESC>"],
      "before": ["<ESC>"],
      "commands": [":nohl"]
    },
    {
      "before": ["g", "h"],
      "commands": ["editor.action.showDefinitionPreviewHover"]
    },
    {
      "after": ["<leader>", "<leader>", "f"],
      "before": ["f"]
    },
    {
      "after": ["<leader>", "<leader>", "F"],
      "before": ["F"]
    },
    {
      "after": ["<leader>", "<leader>", "t"],
      "before": ["t"]
    },
    {
      "after": ["<leader>", "<leader>", "T"],
      "before": ["T"]
    },
    {
      "before": ["g", "r"],
      "commands": ["editor.action.referenceSearch.trigger"]
    },
    {
      "after": ["q"],
      "before": ["Q"]
    },
    {
      "before": ["q"],
      "commands": ["workbench.action.closeActiveEditor"]
    },
    {
      "after": ["<C-d>", "z", "z"],
      "before": ["<C-d>"]
    },
    {
      "after": ["<C-u>", "z", "z"],
      "before": ["<C-u>"]
    },
    {
      "before": [">"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "before": ["<"],
      "commands": ["editor.action.outdentLines"]
    },
    {
      "after": ["\"", "_", "D"],
      "before": ["D"]
    },
    {
      "after": ["\"", "_", "d"],
      "before": ["d"]
    },
    {
      "after": ["\"", "_", "d", "d"],
      "before": ["d", "d"]
    },
    {
      "after": ["\"", "_", "c"],
      "before": ["c"]
    },
    {
      "after": ["\"", "_", "C"],
      "before": ["C"]
    },
    {
      "after": ["\"", "_", "c", "c"],
      "before": ["c", "c"]
    },
    {
      "after": ["\"", "_", "x"],
      "before": ["x"]
    },
    {
      "after": ["\"", "_", "X"],
      "before": ["X"]
    },
    {
      "after": ["d"],
      "before": ["m"]
    },
    {
      "after": ["d", "d"],
      "before": ["m", "m"]
    },
    {
      "after": ["D"],
      "before": ["M"]
    },
    {
      "after": ["g", "b"],
      "before": ["<C-n>"]
    },
    {
      "before": ["<C-j>"],
      "commands": ["editor.action.insertCursorBelow"]
    },
    {
      "before": ["<C-k>"],
      "commands": ["editor.action.insertCursorAbove"]
    },
    {
      "before": ["J"],
      "commands": ["editor.action.moveLinesDownAction"]
    },
    {
      "before": ["K"],
      "commands": ["editor.action.moveLinesUpAction"]
    },
    {
      "before": ["g", "l"],
      "commands": ["editor.action.openLink"]
    },
    {
      "before": ["g", "D"],
      "commands": ["extension.dash.specific"]
    },
    {
      "after": ["<leader>", "<leader>", "s"],
      "before": ["<leader>", "s"]
    },
    {
      "before": ["<space>"],
      "commands": ["vspacecode.space"]
    },
    {
      "after": ["$"],
      "before": ["L"]
    },
    {
      "after": ["^"],
      "before": ["H"]
    },
    {
      "after": [],
      "before": ["g", "B"],
      "commands": [
        {
          "command": "editor.action.selectHighlights"
        }
      ]
    },
    {
      "after": [],
      "before": ["g", "H"],
      "commands": [
        {
          "command": "editor.action.triggerParameterHints"
        }
      ]
    },
    {
      "before": ["u"],
      "commands": [
        {
          "command": "undo"
        }
      ]
    },
    {
      "before": ["<C-r>"],
      "commands": [
        {
          "command": "redo"
        }
      ]
    },
    {
      "after": ["v"],
      "before": ["v"]
    },
    {
      "after": ["g", "k"],
      "before": ["<up>"]
    },
    {
      "after": ["g", "j"],
      "before": ["<down>"]
    },
    {
      "after": ["y", "$"],
      "before": ["Y"]
    },
    {
      "before": [","],
      "commands": [
        "vspacecode.space",
        {
          "args": "m",
          "command": "whichkey.triggerKey"
        }
      ]
    }
  ],
  "vim.searchHighlightColor": "#85e89d",
  "vim.searchHighlightTextColor": "#24292e",
  "vim.smartRelativeLine": true,
  "vim.smartcase": true,
  "vim.sneak": true,
  "vim.useSystemClipboard": true,
  "vim.visualModeKeyBindingsNonRecursive": [
    {
      "after": ["<leader>", "<leader>", "f"],
      "before": ["f"]
    },
    {
      "after": ["<leader>", "<leader>", "F"],
      "before": ["F"]
    },
    {
      "after": ["<leader>", "<leader>", "t"],
      "before": ["t"]
    },
    {
      "after": ["<leader>", "<leader>", "T"],
      "before": ["T"]
    },
    {
      "before": ["<Tab>"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "after": ["y", "g", "v", "<ESC>"],
      "before": ["y"]
    },
    {
      "after": ["g", "b"],
      "before": ["<C-n>"]
    },
    {
      "after": ["\"", "_", "d"],
      "before": ["d"]
    },
    {
      "after": ["\"", "_", "c"],
      "before": ["c"]
    },
    {
      "after": ["\"", "_", "x"],
      "before": ["x"]
    },
    {
      "after": ["d"],
      "before": ["m"]
    },
    {
      "before": ["K"],
      "commands": ["editor.action.moveLinesUpAction"]
    },
    {
      "before": ["J"],
      "commands": ["editor.action.moveLinesDownAction"]
    },
    {
      "before": ["<space>"],
      "commands": ["vspacecode.space"]
    },
    {
      "before": ["g", "B"],
      "commands": [
        {
          "command": "editor.action.selectHighlights"
        }
      ]
    },
    {
      "after": ["^"],
      "before": ["H"]
    },
    {
      "after": ["$"],
      "before": ["L"]
    },
    {
      "before": [">"],
      "commands": ["editor.action.indentLines"]
    },
    {
      "before": ["<"],
      "commands": ["editor.action.outdentLines"]
    },
    {
      "after": ["a", "f"],
      "before": ["v"]
    },
    {
      "before": [","],
      "commands": [
        "vspacecode.space",
        {
          "args": "m",
          "command": "whichkey.triggerKey"
        }
      ]
    }
  ],
  "vim.visualstar": true,
  "vscode-kubernetes.kubectl-path.mac": "/Users/juliant/.asdf/shims/kubectl",
  "vscode-neovim.logOutputToConsole": true,
  "vscode-neovim.mouseSelectionStartVisualMode": true,
  "vscode-neovim.neovimExecutablePaths.darwin": "/usr/local/bin/nvim",
  "vscode-neovim.revealCursorScrollLine": true,
  "vscode-neovim.textDecorationsAtTop": true,
  "vscsm.smergeExecutablePath": "/usr/local/bin/smerge",
  "vspacecode.bindingOverrides": [
    {
      "bindings": [
        {
          "command": "md-shortcut.toggleTitleH1",
          "key": "1",
          "name": "Level 1 (#)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH2",
          "key": "2",
          "name": "Level 2 (##)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH3",
          "key": "3",
          "name": "Level 3 (###)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH4",
          "key": "4",
          "name": "Level 4 (####)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH5",
          "key": "5",
          "name": "Level 5 (#####)",
          "type": "command"
        },
        {
          "command": "md-shortcut.toggleTitleH6",
          "key": "6",
          "name": "Level 6 (######)",
          "type": "command"
        }
      ],
      "keys": ["m", "languageId:markdown", "x", "h"],
      "name": "+Choose header level...",
      "type": "bindings"
    },
    {
      "command": "workbench.action.toggleCenteredLayout",
      "keys": "t.c",
      "name": "Toggle centered window layout",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleImage",
      "keys": ["m", "languageId:markdown", "x", "I"],
      "name": "Toggle image link",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleBullets",
      "keys": ["m", "languageId:markdown", "x", "u"],
      "name": "Toggle unordered list",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleNumbers",
      "keys": ["m", "languageId:markdown", "x", "o"],
      "name": "Toggle ordered list",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleCheckboxes",
      "keys": ["m", "languageId:markdown", "x", "c"],
      "name": "Toggle checkboxes",
      "type": "command"
    },
    {
      "command": "md-shortcut.toggleLink",
      "keys": ["m", "languageId:markdown", "x", "k"],
      "name": "Toggle link",
      "type": "command"
    },
    {
      "bindings": [
        {
          "bindings": [
            {
              "command": "code-runner.run",
              "key": "r",
              "name": "Run code in current file",
              "type": "command"
            },
            {
              "command": "code-runner.stop",
              "key": "R",
              "name": "Stop ongoing code run",
              "type": "command"
            }
          ],
          "key": "a",
          "name": "+Actions",
          "type": "bindings"
        }
      ],
      "keys": ["m", "languageId:python"],
      "name": "+Python Major Mode",
      "type": "bindings"
    },
    {
      "command": "git.push",
      "keys": "g.P",
      "name": "Push changes to remote",
      "type": "command"
    },
    {
      "command": "openInGitHub.openProject",
      "keys": "g.O",
      "name": "Open project in GitHub",
      "type": "command"
    },
    {
      "command": "workbench.action.toggleMaximizedPanel",
      "keys": "l.m",
      "name": "Toggle maximize panel",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "workbench.action.openGlobalSettings",
          "key": ",",
          "name": "Open global settings",
          "type": "command"
        },
        {
          "command": "workbench.action.selectIconTheme",
          "key": "i",
          "name": "Choose icon theme",
          "type": "command"
        },
        {
          "command": "workbench.action.openGlobalKeybindings",
          "key": "k",
          "name": "Open global keybindings",
          "type": "command"
        },
        {
          "command": "workbench.action.openGlobalKeybindingsFile",
          "key": "K",
          "name": "Open global keybindings JSON",
          "type": "command"
        },
        {
          "command": "workbench.action.configureLanguageBasedSettings",
          "key": "l",
          "name": "Open language settings",
          "type": "command"
        },
        {
          "command": "workbench.action.openSnippets",
          "key": "n",
          "name": "Open user snippets",
          "type": "command"
        },
        {
          "command": "workbench.action.openSettingsJson",
          "key": "s",
          "name": "Open global settings JSON",
          "type": "command"
        },
        {
          "command": "workbench.action.selectTheme",
          "key": "t",
          "name": "Choose color theme",
          "type": "command"
        },
        {
          "command": "workbench.userDataSync.actions.syncNow",
          "key": "u",
          "name": "Update/upload settings",
          "type": "command"
        },
        {
          "command": "workbench.action.openWorkspaceSettings",
          "key": "w",
          "name": "Open workspace settings",
          "type": "command"
        },
        {
          "command": "workbench.action.openWorkspaceSettingsFile",
          "key": "W",
          "name": "Open workspace settings JSON",
          "type": "command"
        },
        {
          "bindings": [
            {
              "command": "workbench.action.toggleDevTools",
              "key": "d",
              "name": "Show developer tools",
              "type": "command"
            },
            {
              "command": "workbench.action.setLogLevel",
              "key": "l",
              "name": "Set log level...",
              "type": "command"
            },
            {
              "command": "workbench.action.showLogs",
              "key": "L",
              "name": "Show logs...",
              "type": "command"
            },
            {
              "command": "workbench.action.showRuntimeExtensions",
              "key": "r",
              "name": "Show running extensions",
              "type": "command"
            },
            {
              "command": "workbench.action.openProcessExplorer",
              "key": "p",
              "name": "Open Process Explorer",
              "type": "command"
            }
          ],
          "key": "d",
          "name": "+Developer...",
          "type": "bindings"
        }
      ],
      "keys": ",",
      "name": "+Settings/Preferences",
      "type": "bindings"
    },
    {
      "bindings": [
        {
          "command": "bookmarks.toggle",
          "key": "m",
          "name": "Toggle bookmark",
          "type": "command"
        },
        {
          "command": "bookmarks.jumpToNext",
          "key": "n",
          "name": "Jump to next bookmark",
          "type": "command"
        },
        {
          "command": "bookmarks.jumpToPrevious",
          "key": "p",
          "name": "Jump to previous bookmark",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.bookmarks",
          "key": "o",
          "name": "Open Bookmarks explorer",
          "type": "command"
        },
        {
          "command": "bookmarks.list",
          "key": "b",
          "name": "Open list of bookmarks in current file",
          "type": "command"
        },
        {
          "command": "bookmarks.listFromAllFiles",
          "key": "B",
          "name": "Open list of bookmarks in all files",
          "type": "command"
        }
      ],
      "keys": "B",
      "name": "+Bookmarks",
      "type": "bindings"
    },
    {
      "command": "workbench.view.extension.project-manager",
      "keys": "S.M",
      "name": "Show Project Manager",
      "type": "command"
    },
    {
      "command": "workbench.view.extension.github-pull-requests",
      "keys": "S.P",
      "name": "Show Github Pull Requests",
      "type": "command"
    },
    {
      "command": "workbench.view.extension.todo-tree-container",
      "keys": "S.T",
      "name": "Show TODOs",
      "type": "command"
    },
    {
      "command": "workbench.action.files.openFileFolder",
      "keys": "S.f",
      "name": "Show OS file picker",
      "type": "command"
    },
    {
      "command": "workbench.view.extension.mongoDB",
      "keys": "S.m",
      "name": "Show MongoDB",
      "type": "command"
    },
    {
      "command": "toggleVim",
      "keys": "T.v",
      "name": "Toggle vim",
      "type": "command"
    },
    {
      "command": "workbench.action.navigateBack",
      "keys": "[",
      "name": "Go back",
      "type": "command"
    },
    {
      "command": "workbench.action.navigateForward",
      "keys": "]",
      "name": "Go forward",
      "type": "command"
    },
    {
      "command": "workbench.action.nextEditor",
      "keys": "`",
      "name": "Next Editor (regardless of group)",
      "type": "command"
    },
    {
      "command": "workbench.action.closeOtherEditors",
      "keys": "b.D",
      "name": "Close unmodified editors",
      "type": "command"
    },
    {
      "command": "workbench.action.nextEditorInGroup",
      "keys": "b.`",
      "name": "Next Editor (current group)",
      "type": "command"
    },
    {
      "command": "outline.focus",
      "keys": "b.o",
      "name": "Focus outline for buffer",
      "type": "command"
    },
    {
      "command": "workbench.action.previousEditorInGroup",
      "keys": "b.~",
      "name": "Previous Editor (current group)",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "editor.action.commentLine",
          "key": "l",
          "name": "Comment/uncomment line(s)",
          "type": "command"
        },
        {
          "command": "code-runner.run",
          "key": "r",
          "name": "Run code in curent file",
          "type": "command"
        },
        {
          "commands": [
            "editor.action.clipboardCopyAction",
            "editor.action.commentLine"
          ],
          "key": "y",
          "name": "Copy selection and comment line",
          "type": "command"
        }
      ],
      "keys": "c",
      "name": "+Code Actions...",
      "type": "bindings"
    },
    {
      "command": "workbench.debug.action.toggleRepl",
      "keys": "d.t",
      "name": "Toggle Debug Console view",
      "type": "command"
    },
    {
      "command": "workbench.action.output.toggleOutput",
      "keys": "e.o",
      "name": "Toggle output view",
      "type": "command"
    },
    {
      "command": "outline.focus",
      "keys": "f.O",
      "name": "Focus file outline view",
      "type": "command"
    },
    {
      "command": "fileutils.renameFile",
      "keys": "f.R",
      "name": "Rename file",
      "type": "command"
    },
    {
      "command": "workbench.action.openSettings",
      "keys": "f.e.D",
      "name": "Open settings UI",
      "type": "command"
    },
    {
      "command": "workbench.action.reloadWindow",
      "keys": "f.e.R",
      "name": "Reload window",
      "type": "command"
    },
    {
      "command": "workbench.action.openSettingsJson",
      "keys": "f.e.d",
      "name": "Open settings JSON",
      "type": "command"
    },
    {
      "command": "workbench.action.quickOpen",
      "keys": "f.f",
      "name": "Open file...",
      "type": "command"
    },
    {
      "command": "file-browser.open",
      "keys": "f.n",
      "name": "New file (via File Browser)",
      "type": "command"
    },
    {
      "command": "workbench.action.files.openFileFolder",
      "keys": "f.o",
      "name": "Open file browser",
      "type": "command"
    },
    {
      "command": "editor.action.formatDocument",
      "keys": "f.=",
      "name": "Format current file",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "gitlens.diffWithPrevious",
          "key": "d",
          "name": "...diff current file against previous revision",
          "type": "command"
        },
        {
          "command": "gitHistory.diffFileAtCommitAgainstCurrent",
          "key": "D",
          "name": "...diff current file against previous revision (choose commit)",
          "type": "command"
        },
        {
          "command": "vscsm.fileHistoryInSublimeMerge",
          "key": "f",
          "name": "...open file history in Sublime Merge",
          "type": "command"
        },
        {
          "command": "vscsm.lineHistoryInSublimeMerge",
          "key": "l",
          "name": "...open line history in Sublime Merge",
          "type": "command"
        }
      ],
      "keys": ["g", "f"],
      "name": "+File...",
      "type": "bindings"
    },
    {
      "bindings": [
        {
          "command": "openInGitHub.openFileBlame",
          "key": "b",
          "name": "...open file blame",
          "type": "command"
        },
        {
          "command": "openInGitHub.openFile",
          "key": "f",
          "name": "...open file",
          "type": "command"
        },
        {
          "command": "openInGitHub.openFileHistory",
          "key": "h",
          "name": "...open file history",
          "type": "command"
        },
        {
          "command": "openInGitHub.openIssues",
          "key": "i",
          "name": "...open repo issues",
          "type": "command"
        },
        {
          "command": "openInGitHub.openProject",
          "key": "p",
          "name": "...open project",
          "type": "command"
        },
        {
          "command": "openInGitHub.openPullRequests",
          "key": "r",
          "name": "...open pull requests",
          "type": "command"
        }
      ],
      "keys": ["g", "g"],
      "name": "+Github...",
      "type": "bindings"
    },
    {
      "command": "workbench.view.extension.github-pull-requests",
      "keys": "g.r",
      "name": "Open Pull Requests view",
      "type": "command"
    },
    {
      "command": "gitlens.showCommitSearch",
      "keys": "g./",
      "name": "Search history",
      "type": "command"
    },
    {
      "command": "git.checkout",
      "keys": "g.B",
      "name": "Branch",
      "type": "command"
    },
    {
      "command": "gitlens.fetchRepositories",
      "keys": "g.F",
      "name": "Fetch repositories",
      "type": "command"
    },
    {
      "command": "gitlens.gitCommands",
      "keys": "g.G",
      "name": "Git commands",
      "type": "command"
    },
    {
      "keys": "g.S",
      "position": -1
    },
    {
      "command": "workbench.scm.focus",
      "keys": "g.S",
      "name": "View status in VSCode",
      "type": "command"
    },
    {
      "command": "gitlens.toggleFileBlame",
      "keys": "g.b",
      "name": "Show blame for current file",
      "type": "command"
    },
    {
      "command": "githd.viewBranchHistory",
      "keys": "g.h",
      "name": "View history",
      "type": "command"
    },
    {
      "command": "git.pull",
      "keys": "g.l",
      "name": "Pull",
      "type": "command"
    },
    {
      "keys": "g.m",
      "position": -1
    },
    {
      "command": "multiCommand.moveToNextChangeAndShow",
      "keys": "g.n",
      "name": "Move to next change and show",
      "type": "command"
    },
    {
      "command": "multiCommand.moveToPreviousChangeAndShow",
      "keys": "g.p",
      "name": "Move to previous change and show",
      "type": "command"
    },
    {
      "command": "vscsm.openInSublimeMerge",
      "keys": "g.s",
      "name": "View status in Sublime Merge",
      "type": "command"
    },
    {
      "keys": "h.k",
      "position": -1
    },
    {
      "bindings": [
        {
          "commands": [
            "copy-relative-path-and-line-numbers.path-only",
            "execPaste"
          ],
          "key": "r",
          "name": "...relative path of current file (copies it too)",
          "type": "command"
        },
        {
          "command": "extension.relativePath",
          "key": "R",
          "name": "...relative path of other file in project",
          "type": "command"
        },
        {
          "commands": ["copy-relative-path-and-line-numbers.both", "execPaste"],
          "key": "l",
          "name": "...relative path of current file AND selected line numbers (copies it too)",
          "type": "command"
        }
      ],
      "keys": ["i", "f"],
      "name": "+Insert file...",
      "type": "bindings"
    },
    {
      "command": "workbench.action.showAllSymbols",
      "keys": "j.I",
      "name": "Jump to symbol in project",
      "type": "command"
    },
    {
      "command": "breadcrumbs.focusAndSelect",
      "keys": "j.b",
      "name": "Jump to breadcrumbs",
      "type": "command"
    },
    {
      "command": "workbench.action.gotoMethod",
      "keys": "j.m",
      "name": "Jump to method/function in file",
      "type": "command"
    },
    {
      "keys": "j.v",
      "position": -1
    },
    {
      "command": "workbench.action.positionPanelLeft",
      "keys": "l.H",
      "name": "Move panel left",
      "type": "command"
    },
    {
      "command": "workbench.action.positionPanelBottom",
      "keys": "l.J",
      "name": "Move panel bottom",
      "type": "command"
    },
    {
      "command": "workbench.action.positionPanelRight",
      "keys": "l.L",
      "name": "Move panel right",
      "type": "command"
    },
    {
      "command": "workbench.action.toggleSidebarVisibility",
      "keys": "l.b",
      "name": "Toggle sidebar",
      "type": "command"
    },
    {
      "command": "workbench.action.closePanel",
      "keys": "l.c",
      "name": "Close panel",
      "type": "command"
    },
    {
      "command": "workbench.action.focusPanel",
      "keys": "l.f",
      "name": "Focus panel",
      "type": "command"
    },
    {
      "command": "workbench.action.togglePanel",
      "keys": "l.o",
      "name": "Toggle panel",
      "type": "command"
    },
    {
      "command": "workbench.actions.view.problems",
      "keys": "l.p",
      "name": "Focus Problems panel",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "workbench.view.explorer",
          "key": "e",
          "name": "Explorer view",
          "type": "command"
        },
        {
          "command": "workbench.scm.focus",
          "key": "g",
          "name": "Source Control view",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.mongoDB",
          "key": "m",
          "name": "MongoDB view",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.github-pull-requests",
          "key": "p",
          "name": "Github Pull Requests view",
          "type": "command"
        },
        {
          "command": "workbench.view.extension.project-manager",
          "key": "P",
          "name": "Project Manager view",
          "type": "command"
        },
        {
          "command": "todo-tree-view.focus",
          "key": "t",
          "name": "TODO View",
          "type": "command"
        },
        {
          "command": "timeline.focus",
          "key": "T",
          "name": "Timeline View",
          "type": "command"
        },
        {
          "command": "workbench.view.extensions",
          "key": "x",
          "name": "Extensions Marketplace",
          "type": "command"
        }
      ],
      "keys": "o",
      "name": "+Open",
      "type": "bindings"
    },
    {
      "command": "projectManager.listProjectsNewWindow",
      "keys": "p.P",
      "name": "List projects (new window)...",
      "type": "command"
    },
    {
      "command": "projectManager.editProjects",
      "keys": "p.e",
      "name": "Edit projects",
      "type": "command"
    },
    {
      "command": "projectManager.listProjects",
      "keys": "p.l",
      "name": "List projects (current window)...",
      "type": "command"
    },
    {
      "command": "projectManager.listProjects",
      "keys": "p.p",
      "name": "List projects (current window)...",
      "type": "command"
    },
    {
      "command": "projectManager.refreshAnyProjects",
      "keys": "p.r",
      "name": "Refresh projects",
      "type": "command"
    },
    {
      "command": "projectManager.saveProject",
      "keys": "p.s",
      "name": "Save project",
      "type": "command"
    },
    {
      "command": "workbench.action.closeEditorsInAllGroups",
      "keys": "q.A",
      "name": "Close current file in all groups",
      "type": "command"
    },
    {
      "command": "workbench.action.closeEditorsToTheLeft",
      "keys": "q.H",
      "name": "Close editors to the left",
      "type": "command"
    },
    {
      "command": "workbench.action.closeEditorsToTheRight",
      "keys": "q.L",
      "name": "Close editors to the right",
      "type": "command"
    },
    {
      "command": "workbench.action.closeAllEditors",
      "keys": "q.a",
      "name": "Close all editors",
      "type": "command"
    },
    {
      "command": "code-runner.stop",
      "keys": "q.c",
      "name": "Stop currently running code",
      "type": "command"
    },
    {
      "command": "workbench.action.debug.stop",
      "keys": "q.d",
      "name": "Stop debugging",
      "type": "command"
    },
    {
      "command": "workbench.action.closeFolder",
      "keys": "q.p",
      "name": "Close current project",
      "type": "command"
    },
    {
      "command": "search.action.openNewEditor",
      "keys": "s.E",
      "name": "New Search Editor",
      "type": "command"
    },
    {
      "command": "editor.action.toggleWordWrap",
      "keys": "t.W",
      "name": "Toggle word wrap",
      "type": "command"
    },
    {
      "command": "extension.toggleTheme",
      "keys": "t.d",
      "name": "Toggle day/night theme",
      "type": "command"
    },
    {
      "command": "settings.cycle.lineNumbers",
      "keys": "t.l",
      "name": "Cycle line numbers",
      "type": "command"
    },
    {
      "command": "workbench.action.toggleTabsVisibility",
      "keys": "t.t",
      "name": "Toggle tab visibility",
      "type": "command"
    },
    {
      "bindings": [
        {
          "commands": [
            "workbench.action.splitEditorRight",
            "workbench.action.quickOpen"
          ],
          "key": "l",
          "name": "...to the right",
          "type": "commands"
        },
        {
          "commands": [
            "workbench.action.splitEditorLeft",
            "workbench.action.quickOpen"
          ],
          "key": "h",
          "name": "...to the left",
          "type": "commands"
        },
        {
          "commands": [
            "workbench.action.splitEditorDown",
            "workbench.action.quickOpen"
          ],
          "key": "j",
          "name": "...to below",
          "type": "commands"
        },
        {
          "commands": [
            "workbench.action.splitEditorUp",
            "workbench.action.quickOpen"
          ],
          "key": "k",
          "name": "...to above",
          "type": "commands"
        }
      ],
      "keys": ["w", "f"],
      "name": "+Open file in new group...",
      "type": "bindings"
    },
    {
      "commands": [
        "workbench.action.closePanel",
        "workbench.action.closeSidebar",
        "workbench.action.closeEditorsInOtherGroups"
      ],
      "keys": "w.M",
      "name": "Close sidebar, panel, and other editor groups",
      "type": "commands"
    },
    {
      "command": "workbench.action.focusNextGroup",
      "keys": "w.`",
      "name": "Focus next group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusPreviousGroup",
      "keys": "w.h",
      "name": "Focus previous group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusBelowGroup",
      "keys": "w.j",
      "name": "Focus below group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusAboveGroup",
      "keys": "w.k",
      "name": "Focus above group",
      "type": "command"
    },
    {
      "command": "workbench.action.focusNextGroup",
      "keys": "w.l",
      "name": "Focus next group",
      "type": "command"
    },
    {
      "command": "workbench.action.files.newUntitledFile",
      "keys": "w.t",
      "name": "New untitled file",
      "type": "command"
    },
    {
      "command": "workbench.action.focusPreviousGroup",
      "keys": "w.~",
      "name": "Focus previous group",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "editor.action.trimTrailingWhitespace",
          "key": "w",
          "name": "Delete trailing whitespace",
          "type": "command"
        },
        {
          "command": "remove-empty-lines.inDocument",
          "key": "f",
          "name": "Delete empty lines in file",
          "type": "command"
        },
        {
          "command": "remove-empty-lines.inSelection",
          "key": "s",
          "name": "Delete empty lines in selection (adjacent lines if no selection)",
          "type": "command"
        }
      ],
      "keys": ["x", "d"],
      "name": "+Delete",
      "type": "bindings"
    },
    {
      "command": "editor.action.formatSelection",
      "keys": "x.=",
      "name": "Format selection",
      "type": "command"
    },
    {
      "command": "wwm.aligncode",
      "keys": "x.A",
      "name": "Align code",
      "type": "command"
    },
    {
      "command": "workbench.action.replaceInFiles",
      "keys": "x.R",
      "name": "Replace in files",
      "type": "command"
    },
    {
      "bindings": [
        {
          "command": "editor.action.copyLinesDownAction",
          "key": "j",
          "name": "Copy line(s) down",
          "type": "command"
        },
        {
          "command": "editor.action.copyLinesUpAction",
          "key": "k",
          "name": "Copy line(s) up",
          "type": "command"
        },
        {
          "command": "fileutils.copyFileName",
          "key": "n",
          "name": "Copy current file name",
          "type": "command"
        },
        {
          "command": "copyFilePath",
          "key": "p",
          "name": "Copy current file absolute path",
          "type": "command"
        },
        {
          "command": "copyRelativeFilePath",
          "key": "P",
          "name": "Copy current file relative path",
          "type": "command"
        }
      ],
      "keys": "y",
      "name": "+Yank/Copy",
      "type": "bindings"
    },
    {
      "command": "workbench.action.previousEditor",
      "keys": "~",
      "name": "Previous Editor (regardless of group)",
      "type": "command"
    }
  ],
  "whichkey.delay": 200,
  "whichkey.sortOrder": "nonNumberFirst",
  "window.restoreWindows": "all",
  "window.titleBarStyle": "native",
  "workbench.activityBar.visible": true,
  "workbench.colorCustomizations": {
    "[GitHub Dark]": {
      "terminal.ansiBlack": "#24292e",
      "terminal.ansiBlue": "#b392f0",
      "terminal.ansiCyan": "#79b8ff",
      "terminal.ansiGreen": "#85e89d",
      "terminal.ansiMagenta": "#f692ce",
      "terminal.ansiRed": "#f97583",
      "terminal.ansiWhite": "#ffffff",
      "terminal.ansiYellow": "#ffea7f"
    },
    "editor.lineHighlightBackground": "#1073cf2d",
    "editor.lineHighlightBorder": "#9fced11f",
    "editorCursor.foreground": "#db2466"
  },
  "workbench.colorTheme": "Dracula",
  "workbench.editor.enablePreview": false,
  "workbench.editor.enablePreviewFromQuickOpen": false,
  "workbench.editor.labelFormat": "medium",
  "workbench.editor.openPositioning": "first",
  "workbench.editor.revealIfOpen": false,
  "workbench.editor.showTabs": false,
  "workbench.editor.tabSizing": "shrink",
  "workbench.editorAssociations": {
    "*.ipynb": "jupyter.notebook.ipynb",
    "*.json": "default"
  },
  "workbench.fontAliasing": "auto",
  "workbench.iconTheme": "helium-icon-theme",
  "workbench.list.automaticKeyboardNavigation": false,
  "workbench.productIconTheme": "material-product-icons",
  "workbench.quickOpen.closeOnFocusLost": false,
  "workbench.sideBar.location": "right",
  "workbench.startupEditor": "newUntitledFile",
  "workbench.tree.indent": 20,
  "workbench.view.alwaysShowHeaderActions": true
}

System information

The "Report Performance Issue" window doesn't seem to be working in the latest version of VSCode, so I'm just going to open this for now and post it later if it's necessary.

OS: macOS 11.4
VSCode Info:
Version: 1.57.1
Commit: 507ce72a4466fbb27b715c3722558bb15afa9f48
Date: 2021-06-17T13:28:32.912Z (1 wk ago)
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Darwin x64 20.5.0

Extensions List

aaron-bond.better-comments
abusaidm.html-snippets
adamwalzer.scss-lint
ahmadawais.shades-of-purple
akamud.vscode-javascript-snippet-pack
akamud.vscode-theme-onedark
akamud.vscode-theme-onelight
alefragnani.Bookmarks
alefragnani.project-manager
alexesprit.vscode-unfancy-file-icons
arcticicestudio.nord-visual-studio-code
asvetliakov.vscode-neovim
austenc.tailwind-docs
azemoh.one-monokai
BazelBuild.vscode-bazel
bdavs.expect
be5invis.vscode-icontheme-nomo-dark
belfz.search-crates-io
BerriJ.github-vscode-theme-dark-classic
bierner.color-info
bierner.github-markdown-preview
bierner.markdown-emoji
bierner.markdown-preview-github-styles
bmalehorn.vscode-fish
bodil.file-browser
bradgashler.htmltagwrap
bradlc.vscode-tailwindcss
budparr.language-hugo-vscode
christian-kohler.npm-intellisense
christian-kohler.path-intellisense
Cmacu.gotoanything
cocopon.iceberg-theme
codezombiech.gitignore
CoenraadS.bracket-pair-colorizer-2
CoenraadS.disableligatures
Compulim.compulim-vscode-closetag
cssho.vscode-svgviewer
csstools.postcss
dakara.transformer
DavidAnson.vscode-markdownlint
dbaeumer.vscode-eslint
dcasella.monokai-plusplus
deerawan.vscode-dash
denco.confluence-markup
denoland.vscode-deno
DotJoshJohnson.xml
dracula-theme.theme-dracula
dunstontc.viml
eamodio.gitlens
eamodio.tsl-problem-matcher
ecmel.vscode-html-css
EditorConfig.EditorConfig
eg2.vscode-npm-script
emilast.LogFileHighlighter
emmanuelbeziat.vscode-great-icons
esbenp.prettier-vscode
ethan-reesor.vscode-go-test-adapter
ezforo.copy-relative-path-and-line-numbers
fabiospampinato.vscode-git-history
fabiospampinato.vscode-open-in-github
file-icons.file-icons
firefox-devtools.vscode-firefox-debug
fknop.vscode-npm
formulahendry.auto-close-tag
formulahendry.code-runner
foxundermoon.shell-format
fvclaus.sort-json-array
gerane.Theme-FlatlandMonokai
gharveymn.nightswitch
ghmcadams.lintlens
ginfuru.ginfuru-better-solarized-dark-theme
giovdk21.vscode-sublime-merge
GitHub.github-vscode-theme
GitHub.vscode-pull-request-github
golang.go
GrapeCity.gc-excelviewer
Gruntfuggly.todo-tree
hashicorp.terraform
hbenl.vscode-test-explorer
helgardrichard.helium-icon-theme
herrmannplatz.npm-dependency-links
heybourn.headwind
hoovercj.vscode-settings-cycler
Hyzeta.vscode-theme-github-light
IBM.output-colorizer
imperez.smarty
iocave.customize-ui
iocave.monkey-patch
ionutvmi.path-autocomplete
IronGeek.vscode-env
jacobdufault.fuzzy-search
jakob101.RelativePath
jdinhlife.gruvbox
jgclark.vscode-todo-highlight
johnpapa.winteriscoming
jolaleye.horizon-theme-vscode
jy-xlj.vscode-json-editor
kevinkyang.auto-comment-blocks
kevinmcgowan.TypeScriptImport
KevinRose.vsc-python-indent
khaeransori.json2csv
kisstkondoros.vscode-gutter-preview
Koihik.vscode-lua-format
lacroixdavid1.vscode-format-context-menu
LaurentTreguier.rpm-spec
LaurentTreguier.vscode-simple-icons
lehni.vscode-fix-checksums
leizongmin.node-module-intellisense
leodevbro.blockman
letrieu.expand-region
liviuschera.noctis
lkytal.FlatUI
mads-hartmann.bash-ide-vscode
matangover.mypy
mattn.Lisp
mdickin.markdown-shortcuts
mechatroner.rainbow-csv
miguelsolorio.fluent-icons
mkaufman.HTMLHint
mongodb.mongodb-vscode
mrmlnc.vscode-less
mrmlnc.vscode-scss
ms-azuretools.vscode-docker
ms-dotnettools.csharp
ms-kubernetes-tools.vscode-kubernetes-tools
ms-python.gather
ms-python.python
ms-python.vscode-pylance
ms-toolsai.jupyter
ms-vscode-remote.remote-wsl
ms-vscode.cpptools
ms-vscode.test-adapter-converter
ms-vscode.vscode-typescript-next
ms-vsliveshare.vsliveshare
msjsdiag.debugger-for-chrome
mushan.vscode-paste-image
naumovs.color-highlight
njpwerner.autodocstring
oderwat.indent-rainbow
okitavera.vscode-nunjucks-formatter
olback.es6-css-minify
oliversturm.fix-json
pejmannikram.vscode-auto-scroll
philipbe.theme-gray-matter
PKief.markdown-checkbox
PKief.material-icon-theme
PKief.material-product-icons
pranaygp.vscode-css-peek
pucelle.vscode-css-navigation
qcz.text-power-tools
rahmanyerli.armadillo
rebornix.ruby
redhat.vscode-commons
redhat.vscode-xml
redhat.vscode-yaml
RedVanWorkshop.explorer-exclude-vscode-extension
Remisa.shellman
richie5um2.vscode-sort-json
RobbOwen.synthwave-vscode
rogalmic.bash-debug
rogalmic.zsh-debug
ronnidc.nunjucks
ryanraposo.codeui
ryu1kn.partial-diff
ryuta46.multi-command
sburg.vscode-javascript-booster
sdras.night-owl
serayuzgur.crates
Shan.code-settings-sync
sharat.vscode-brewfile
shardulm94.trailing-spaces
silvenon.mdx
skellock.just
sleistner.vscode-fileutils
snipsnapdev.snipsnap-vscode
stackbreak.comment-divider
stkb.rewrap
stylelint.vscode-stylelint
Sujan.code-blue
sumneko.lua
svipas.control-snippets
TakumiI.markdowntable
tamasfe.even-better-toml
teabyii.ayu
telesoho.vscode-markdown-paste-image
thenikso.github-plus-theme
timonwong.shellcheck
tlahmann.alex-linter
tokoph.ghosttext
travisthetechie.write-good-linter
trixnz.go-to-method
Tyriar.sort-lines
usernamehw.errorlens
usernamehw.remove-empty-lines
vadimcn.vscode-lldb
VisualStudioExptTeam.vscodeintellicode
vscodevim.vim
VSpaceCode.vspacecode
VSpaceCode.whichkey
wayou.file-icons-mac
wayou.vscode-icons-mac
wayou.vscode-todo-highlight
whatwedo.twig
wingrunr21.vscode-ruby
wmaurer.change-case
wwm.better-align
xaver.clang-format
yzhang.markdown-all-in-one
zhuangtongfa.material-theme
Zignd.html-css-class-completion
ziyasal.vscode-open-in-github

Not very responsive

Bug description

I don't know if it's the same responsive speed on all machines or just on mine, but on my device it takes a second or so till the menu appears. And I checked the delay setting, it was 0. I even tried to set it to 1, but nothing changes. The speed of the menu showing up isn't really the issue, the problem is that I can't use the bindings, I have to wait till the menu shows up otherwise it executes other vim commands, or whatever the key I pressed is bound to, or hangs on a different menu because the extension couldn't catch up with my keystrokes.

To Reproduce

Try to chain multiple nested bindings quickly, i.e. (VSpaceCode) Space f p

Expected behavior

Executes the binding pressed.

System information

image

Open file/folder not working.

Bug description

Open file/folder command not working

To Reproduce

  1. Install and configure which key extension
  2. Press <spc> f f
    Error: command workbench.action.files.openFileFolder not found

Expected behavior

Should show a panel for opening files/folders.

Screenshots

err

Comments

Ideally, I think vscode should be providing this command. Maybe it has been removed from new versions of vscode.
I am on Linux.

Support partial override

Problem

I would like to use the display: hidden options for focusing windows (space.1..9), but the way I'm currently doing it is this:

"vspacecode.bindingOverrides": [
  {
    "keys": "1",
    "name": "Focus 1st Window",
    "display": "hidden",
    "type": "command",
    "command": "workbench.action.focusFirstEditorGroup"
  },
  ....
],
...

Solution

Ideally, I'd just need to have:

"vspacecode.bindingOverrides": [
  { "keys": "1", "display": "hidden" },
]

without needing to redefine the entire keybinding.

Alternatives

Additional context

Not sure if this is an issue that goes belongs to which-key or spacecode... Maybe I'm also just using the flag wrong. Why does the documentation say this:

This type contains all the possible way to display a BindingItem or TransientBindingItem.

Does this mean the hidden option is not supported in OverrideBindingItem?

Need help adding a conditional keybinding to an existing menu, not sure how to do so based on documentation

Hello! I'm following this documentation section about overriding conditional bindings, and it's not immediately obvious to me how to do so so I wanted to open an issue about it.

Let's say have a command foo.bar that I want to add to the x submenu for major mode for the Markdown language. How would I go about adding that to my settings? Lets say I want to map it to be SPC m x k, since that's something I'm actively having trouble getting set up, but it honestly doesn't really matter what it is - I don't want to replace anything that is currently there, I just want to add a new command to the menu. How would I do that?

Once I get clarity here, I'll propose some changes to the documentation, because the way it's currently written doesn't make it very explicit how to go about this (at least for me). Thanks!

Show key bindings in menus

Problem

I like how the normal VS Code command menu shows key bindings on the right side of the quick-pick menu. It's a useful way to learn keyboard shortcuts.

Solution

Could which-key optionally do the same?

Incrementally add/replace Menu Customization does not work.

Bug description

Followed documentation step to add/replace menu items and it has no effect.

To Reproduce

Follow documentation steps, try <Space> g s and it will still open the magit status.

Expected behavior

Menu action would now be "workbench.action.gotoLine"

Settings

Click to toggle contents of `settings.json`

{
  "whichkey.bindingOverrides": [
    {
      "keys": "g.s",
      "name": "Go to line",
      "type": "command",
      "command":"workbench.action.gotoLine",
    }
  ]
}

System information

image

About VSCode

Version: 1.52.0
Commit: 940b5f4bb5fa47866a54529ed759d95d09ee80be
Date: 2020-12-10T22:46:53.673Z
Electron: 9.3.5
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: 8.3.110.13-electron.0
OS: Darwin x64 19.6.0

Crash when mixing `key` / `keys` and using `whichkey.sortOrder`

Bug description

With the config below (note the accidental mixture of key and keys), depending on the exact config (?),

  • either "Activating extension 'VSpaceCode.vspacecode' failed: Cannot read properties of undefined (reading 'localeCompare')" gets shown
  • or (with this minimal example rather than my real config, it seems?), VS Code seems to freeze entirely.

To Reproduce

  • Start VS Code with a clean --user-data-dir
  • Copy the snippet below to your config
  • Trigger the VSpaceCode menu

Expected behavior

Not quite sure. Probably VSpaceCode should detect that this config is invalid and complain somehow?

Additional context

With my real config:

notificationsAlerts.ts:40 TypeError: Cannot read properties of undefined (reading 'localeCompare')
    at u (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:1208)
    at l (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:1312)
    at Array.sort (<anonymous>)
    at g (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:22724)
    at g (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:22749)
    at g (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:22749)
    at g (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:22749)
    at g (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:22749)
    at _ (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:24345)
    at t.default.register (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:24550)
    at t.WhichKeyRegistry.register (/home/florian/.vscode/extensions/vspacecode.whichkey-0.11.3/dist/extension-node.js:1:26336)
    at o._executeContributedCommand (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:31333)
    at o._doExecuteCommand (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:30153)
    at o.executeCommand (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:30059)
    at Object.executeCommand (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:97:31789)
    at /home/florian/.vscode/extensions/vspacecode.vspacecode-0.10.9/dist/extension-node.js:1:49117
    at e.activate (/home/florian/.vscode/extensions/vspacecode.vspacecode-0.10.9/dist/extension-node.js:1:49224)
    at Function._callActivateOptional (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:88:17454)
    at Function._callActivate (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:88:17119)
    at /opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:88:14937
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at _activate (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:8180)
    at _waitForDepsThenActivate (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:8122)
    at _initialize (/opt/visual-studio-code/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:83:7486)

Keybindings

None.

Settings

Click to toggle contents of `settings.json`

{
    "whichkey.sortOrder": "nonNumberFirst",
    "vspacecode.bindingOverrides": [
        {
            "keys": ["x"],
            "name": "+Tox",
            "icon": "play",
            "type": "bindings",
            "bindings": [
                {
                    "key": "a",
                    "name": "Run tox",
                    "icon": "play",
                    "type": "command",
                    "command": "python-tox.select"
                },
                {
                    "keys": "t",
                    "name": "Run tox",
                    "icon": "play",
                    "type": "command",
                    "command": "python-tox.select"
                },
            ]
        },
    ]
}

System information

image

List of enabled extensions is too long to screenshot (as the --user-data-dir override ignores the extensions I actually have disabled in my main instance), but I doubt it's relevant really. VSpaceCode v0.10.9 and which-key v0.11.3.

[bug/ feature?]: whichkey.searchBindings should support fuzzy search

first of all: i love your extension and appreciate your work. thank you 💖

i noticed that the command whichkey.searchBindings does not support fuzzy search.
it would be great if it would. i dont know if it is by design or a bug.

vscode:

Version: 1.69.2 (user setup)
Commit: 3b889b090b5ad5793f524b5d1d39fda662b96a2a
Date: 2022-07-18T16:12:52.460Z
Electron: 18.3.5
Chromium: 100.0.4896.160
Node.js: 16.13.2
V8: 10.0.139.17-electron.0
OS: Windows_NT x64 10.0.22000

which key: 0.11.3

Race condition with VSpaceCode comma binding (whichkey.triggerKey)

Bug description

It looks like the default , binding of VSpaceCode works by opening vscode-which-key, and then (probably asynchronously) sending the m key to it. However, when typing quickly, this can result in a race condition between what which-key does internally and what the user types.

To Reproduce

  • Open a .tex file (or presumably, any other file with a x binding for "text")
  • Press ,
  • Press x very quickly

(Alternatively, on Linux/X11, run sleep 1; xdotool type ,x and then switch focus to VS Code)

Expected behavior

Ending up in the "Text" menu:

image

Screenshots

Ending up in the "Merge conflict" menu:

image

Additional context

The merge conflict menu is bound to SPC x m, so pressing , x ended up being interpreted as SPC x m rather than SPC m x.

Keybindings

Essentially the default recommended in the VSpaceCode readme:

Click to toggle contents of `keybindinds.json`

[
    // https://github.com/VSpaceCode/VSpaceCode/blob/master/src/configuration/keybindings.jsonc

    // Trigger vspacecode in empty editor group
    {
        "key": "space",
        "command": "vspacecode.space",
        "when": "activeEditorGroupEmpty && focusedView == '' && !whichkeyActive && !inputFocus"
    },
    // Trigger vspacecode when sidebar is in focus
    {
        "key": "space",
        "command": "vspacecode.space",
        "when": "sideBarFocus && !inputFocus && !whichkeyActive"
    },
    // Keybindings required for edamagit
    // https://github.com/kahole/edamagit#vim-support-vscodevim
    // Cannot be added to package.json because keybinding replacements
    {
        "key": "tab",
        "command": "extension.vim_tab",
        "when": "editorFocus && vim.active && !inDebugRepl && vim.mode != 'Insert' && editorLangId != 'magit'"
    },
    {
        "key": "tab",
        "command": "-extension.vim_tab",
        "when": "editorFocus && vim.active && !inDebugRepl && vim.mode != 'Insert'"
    },
    {
        "key": "x",
        "command": "magit.discard-at-point",
        "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
    },
    {
        "key": "k",
        "command": "-magit.discard-at-point"
    },
    {
        "key": "-",
        "command": "magit.reverse-at-point",
        "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
    },
    {
        "key": "v",
        "command": "-magit.reverse-at-point"
    },
    {
        "key": "shift+-",
        "command": "magit.reverting",
        "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
    },
    {
        "key": "shift+v",
        "command": "-magit.reverting"
    },
    {
        "key": "shift+o",
        "command": "magit.resetting",
        "when": "editorTextFocus && editorLangId == 'magit' && vim.mode =~ /^(?!SearchInProgressMode|CommandlineInProgress).*$/"
    },
    {
        "key": "shift+x",
        "command": "-magit.resetting"
    },
    {
        "key": "x",
        "command": "-magit.reset-mixed"
    },
    {
        "key": "ctrl+u x",
        "command": "-magit.reset-hard"
    },
    // Extra ref menu support for edamagit with the key "y"
    // Cannot be added to package.json because keybinding replacements
    {
        "key": "y",
        "command": "-magit.show-refs"
    },
    {
        "key": "y",
        "command": "vspacecode.showMagitRefMenu",
        "when": "editorTextFocus && editorLangId == 'magit' && vim.mode == 'Normal'"
    },
    // Easy navigation in quick open/QuickPick
    {
        "key": "ctrl+j",
        "command": "workbench.action.quickOpenSelectNext",
        "when": "inQuickOpen"
    },
    {
        "key": "ctrl+k",
        "command": "workbench.action.quickOpenSelectPrevious",
        "when": "inQuickOpen"
    },
    // Easy navigation in sugesstion/intellisense
    // Cannot be added to package.json because of conflict with vim's default bindings
    {
        "key": "ctrl+j",
        "command": "selectNextSuggestion",
        "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    },
    {
        "key": "ctrl+k",
        "command": "selectPrevSuggestion",
        "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    },
    {
        "key": "ctrl+l",
        "command": "acceptSelectedSuggestion",
        "when": "suggestWidgetMultipleSuggestions && suggestWidgetVisible && textInputFocus"
    },
    // Easy navigation in parameter hint (i.e. traverse the hints when there's multiple overload for one method)
    // Cannot be added to package.json because of conflict with vim's default bindings
    {
        "key": "ctrl+j",
        "command": "showNextParameterHint",
        "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
    },
    {
        "key": "ctrl+k",
        "command": "showPrevParameterHint",
        "when": "editorFocus && parameterHintsMultipleSignatures && parameterHintsVisible"
    },
    // Add ctrl+h/l to navigate in file browser
    {
        "key": "ctrl+h",
        "command": "file-browser.stepOut",
        "when": "inFileBrowser"
    },
    {
        "key": "ctrl+l",
        "command": "file-browser.stepIn",
        "when": "inFileBrowser"
    }
]

Settings

Click to toggle contents of `settings.json`

{
    /********** VSpaceCode boilerplate **********/
    // https://github.com/VSpaceCode/VSpaceCode/blob/master/src/configuration/settings.jsonc

    "vim.easymotion": true,  // Vim easymotion is required for Jump menu - <SPC> j
    "vim.useSystemClipboard": true,
    // Trigger the main which key menu with in the active editor with vim
    // This cannot be put into keybindings.json because it will
    // create conflict with Vim.
    // https://github.com/stevenguh/spacecode/issues/3
    "vim.normalModeKeyBindingsNonRecursive": [
        {
            "before": ["<space>"],
            "commands": ["vspacecode.space"]
        },
        {
            "before": [","],
            "commands": [
                "vspacecode.space",
                {
                    "command": "whichkey.triggerKey",
                    "args": "m"
                }
            ]
        }
    ],
    "vim.visualModeKeyBindingsNonRecursive": [
        {
            "before": ["<space>"],
            "commands": ["vspacecode.space"]
        },
        {
            "before": [","],
            "commands": [
                "vspacecode.space",
                {
                    "command": "whichkey.triggerKey",
                    "args": "m"
                }
            ]
        }
    ],

    /********** Custom VSpaceCode bindings **********/
    "vspacecode.bindingOverrides": [
        {
            "keys": "g.b",
            "name": "Blame file with GitLens",
            "type" : "command",
            "command": "gitlens.toggleFileBlame",
        },
        {
            "keys": "g.B",
            "name": "Blame file with magit",
            "type" : "command",
            "command": "magit.blame-file",
        },
        {
            "keys": "g.g",
            "name": "GitLens Commands",
            "type" : "command",
            "command": "gitlens.gitCommands",
        },


        {
            "keys": "h.z",
            "name": "Zeal for current text",
            "type" : "command",
            "command": "extension.dash.specific",
        },
        {
            "keys": "h.Z",
            "name": "Open Zeal",
            "type" : "command",
            "command": "extension.dash.emptySyntax",
        },

        {
            "keys": "p.o",
            "name": "Open folder",
            "type" : "command",
            "command": "workbench.action.files.openFolder",
        },
    ],

    /********** Appearance **********/
    "editor.cursorBlinking": "phase",
    "editor.cursorSurroundingLines": 2,
    "editor.fontFamily": "Iosevka",
    "editor.fontLigatures": true,
    "editor.fontSize": 18,
    "editor.inlineHints.fontFamily": "Iosevka",
    "editor.minimap.scale": 2,
    "editor.minimap.showSlider": "always",
    "editor.renderControlCharacters": true,
    "editor.renderLineHighlightOnlyWhenFocus": true,
    "editor.renderWhitespace": "trailing",
    // "editor.cursorSmoothCaretAnimation": true,
    "errorLens.fontFamily": "Iosevka Extralight",
    "errorLens.fontSize": "10pt",
    "search.showLineNumbers": true,
    "vim.showMarksInGutter": true,
    "window.dialogStyle": "custom",
    "window.menuBarVisibility": "toggle",
    "window.zoomLevel": 2,
    "workbench.colorTheme": "Monokai Classic",
    "workbench.editor.highlightModifiedTabs": true,
    "workbench.iconTheme": "Monokai Classic Icons",
    "workbench.tree.indent": 16,

    /********** Behavior **********/
    "debug.console.closeOnEnd": true,
    "editor.find.autoFindInSelection": "multiline",
    "editor.mouseWheelZoom": true,
    "editor.tabCompletion": "on",
    "file-browser.hideIgnoredFiles": true,
    "file-browser.labelIgnoredFiles": true,
    "files.insertFinalNewline": true,
    "files.simpleDialog.enable": true,
    "keyboard.dispatch": "keyCode",  // https://stackoverflow.com/a/50875402/2085149
    "search.smartCase": true,
    "terminal.external.linuxExec": "kitty",
    "vim.camelCaseMotion.enable": true,
    //"vim.textwidth": 88,
    "workbench.startupEditor": "newUntitledFile",

    /********** Privacy **********/
    "update.mode": "none",
    "telemetry.enableCrashReporter": false,
    "telemetry.enableTelemetry": false,
    "workbench.settings.enableNaturalLanguageSearch": false,

    /*********** Git **********/
    "magit.forge-enabled": true,
    "gitlens.hovers.currentLine.over": "line",
    "gitlens.currentLine.enabled": false,
    // "gitlens.codeLens.scopes": [
    //     "document",
    //     "containers",
    //     "blocks"
    // ],
    "gitlens.hovers.currentLine.enabled": false,

    /********** Python **********/
    "python.useIsolation": false,  // for pytest to find qutebrowser package

    /********** LaTeX **********/
	"latex-workshop.latex.tools": [
		{
			"name": "latexmk",
			"command": "latexmk",
			"args": [
                "-shell-escape",  // FIXME do we really want this globally?
				"-synctex=1",
				"-interaction=nonstopmode",
				"-file-line-error",
				"-pdf",
				"-outdir=%OUTDIR%",
				"%DOC%"
			],
			"env": {}
		},
    ],
    // https://github.com/James-Yu/LaTeX-Workshop/wiki/View#using-synctex-with-an-external-viewer
    "latex-workshop.view.pdf.viewer": "external",
    "latex-workshop.view.pdf.external.viewer.command": "zathura",
    "latex-workshop.view.pdf.external.viewer.args": [
        "--synctex-editor-command",
        "code --reuse-window -g \"%{input}:%{line}\"",
        "%PDF%"
    ],
    "latex-workshop.view.pdf.external.synctex.command": "zathura",
    "latex-workshop.view.pdf.external.synctex.args": [
        "--synctex-forward=%LINE%:0:%TEX%",
        "%PDF%"
    ],

    /********** Dash/Zeal **********/
    "dash.languageIdToDocsetMap": {
        "ansible": [
            "ansible"
        ],
        "python": [
            "python",
            "qt",
        ],
    },
    "workbench.editorAssociations": [
        {
            "viewType": "jupyter.notebook.ipynb",
            "filenamePattern": "*.ipynb"
        }
    ],

    /********** Unknown **********/
    // "workbench.editorAssociations": [
    //     {
    //         "viewType": "jupyter.notebook.ipynb",
    //         "filenamePattern": "*.ipynb"
    //     }
    // ],
    // "workbench.colorCustomizations": {
    //     "statusBar.background": "#005f5f",
    //     "statusBar.noFolderBackground": "#005f5f",
    //     "statusBar.debuggingBackground": "#005f5f"
    // },
    // "yaml.customTags": [
    //     "!encrypted/pkcs1-oaep scalar",
    //     "!vault scalar"
    // ],
}

System information

image

Add `+` before each sub menu

I am opening this after discussion on VSpaceCode/VSpaceCode#130

Problem

It is not easy to understand when a key binding is an action or it is a sub menu.
For example, right now we manually add "..." at the end of a submenu in VSpaceCode:

image

Solution

Which key should automatically add the + character in front of each binding that has a sub menu.

image

You can add an option to which key that let users customize the + sign. Users can edit it, so they can have an icon, a different character or just leave it blank with "".

Trouble getting development set up

Taking the freedom to open an issue for this, as I'm pretty stuck and hope someone here can help me out. I'm trying to wrap my head around extension development so I can maybe contribute a few small fixes in the future (when I find the time, that is...).

According to https://github.com/VSpaceCode/vscode-which-key/blob/master/CONTRIBUTING.md I should be able to use "Run Extension" from VS Code, and get a new window with the extension installed. I can see the extension getting built, and a new "[Extension Development Host]" instance of VS Code gets started.

However, it looks like that new instance still has my normal extension setup, and my changes aren't getting reflected there. For example, I tried to change +Debug to +Debug test in package.json, but the menu in the new window still shows +Debug.

Am I missing something here? I have no experience at all with npm/webpack/Typescript/VS Code extensions (I'm mainly doing Python), so maybe there's something obvious I'm not aware of?

Having some form of `else` to do different actions

Is your feature request related to a problem? Please describe.
Maybe I missed it, but i didn't see a way to have an "else" command to run if the when condition is false.
This would be useful to fill parts of VSC that are missing, for example, there is no toggleExplorer workbench action. So you could make your own by having a conditional check for explorerViewletVisible.

Describe the solution you'd like
Maybe it would be best to just allow javascript as the command ?

{
  "key": "e",
  "name": "toggleExplorer",
  "type": "javascript",
  "command": " if(!VSCOpts.explorerViewletVisible) return workbench.view.explorer; return workbench.action.toggleSidebarVisibility;"
}

Way less flexible, first one would be cooler :D !

{
  "key": "e",
  "name": "toggleExplorer",
  "type": "command",
  "command": " workbench.view.explorer",
  "when": "explorerViewletVisible",
  "failCommand":  "workbench.action.toggleSidebarVisibility",
}

Describe alternatives you've considered
Having two commands to show / hide the editor

`whichkey.delay` causes a delay in `SPC SPC` shortcut, others seem to be unaffected

Bug description

When playing around with the whichkey.delay setting, I noticed that SPC SPC would not get registered, whereas going into a menu and executing a command in there (such as SPC f f) worked fine no matter how fast I executed it. It seems like no matter what, for SPC SPC you have to wait for the full delay before the command will be registered.

It's not clear to me whether or not this is intentional, however because things like SPC f f work as fast as I can type it, I am assuming that this is not intentional.

To Reproduce

  1. Set whichkey.delay to 500 (or some larger arbitrary value)
  2. Press SPC f f as quickly as you can (faster than the whichkey.delay) to search for some files. Note that the list of files comes up immediately, with no delay.
  3. Now, press SPC SPC as quickly as you can (again, faster than the whichkey.delay). Notice how this command doesn't get executed until you wait for the menu to fully render.

Expected behavior

SPC SPC would bring up the command prompt as quickly as SPC f f brings up the list of files to search for.

Screenshots

It's hard to see this in the following recording, but you can see me updating this option from 0 to 500 and notice how I have to wait for the menu to display fully before being allowed to run the SPC SPC command:

CleanShot.2022-04-11.at.13.58.04.mp4

Additional context

Keybindings

My keybindings are far too large to fit into a GitHub issue, but thankfully I keep them backed up here: https://github.com/macintacos/dotfiles/blob/trunk/vscode/keybindings.json

Settings

My settings are available here: https://github.com/macintacos/dotfiles/blob/trunk/vscode/settings.json

System information

The extensions I use are here: https://github.com/macintacos/dotfiles/blob/trunk/backup/vscode-extensions-backup.txt (yes, I know it's a lot, but I don't think the number of extensions I'm using is the problem 🙂 )

Here's my system info, if that matters:

CPUs Apple M1 Pro (10 x 24)
GPU Status 2d_canvas: enabled canvas_oop_rasterization: disabled_off direct_rendering_display_compositor: disabled_off_ok gpu_compositing: enabled metal: disabled_off multiple_raster_threads: enabled_on oop_rasterization: enabled opengl: enabled_on rasterization: enabled raw_draw: disabled_off_ok skia_renderer: enabled_on video_decode: enabled video_encode: enabled webgl: enabled webgl2: enabled
Load (avg) 9, 7, 7
Memory (System) 32.00GB (0.78GB free)
Process Argv --crash-reporter-id 07e484e5-ada3-4296-adea-39d6c26a0c7c
Screen Reader no
VM 0%

Remove redundant settings for transient menu

Often you wanna use the keys of a transient menu also as it's starting-point.
But at the moment this means you need to duplicate the menu for every used key.

Example of how it is now:

        {
          "key": "j",
          "name": "Move lines down",
          "type": "transient",
          "command": "editor.action.moveLinesDownAction",
          "bindings": [
            {
              "key": "j",
              "name": "Move lines down",
              "type": "command",
              "command": "editor.action.moveLinesDownAction"
            },
            {
              "key": "k",
              "name": "Move lines up",
              "type": "command",
              "command": "editor.action.moveLinesUpAction"
            }
          ]
        },
        {
          "key": "k",
          "name": "Move lines up",
          "type": "transient",
          "command": "editor.action.moveLinesUpAction",
          "bindings": [
            {
              "key": "j",
              "name": "Move lines down",
              "type": "command",
              "command": "editor.action.moveLinesDownAction"
            },
            {
              "key": "k",
              "name": "Move lines up",
              "type": "command",
              "command": "editor.action.moveLinesUpAction"
            }
          ]
        }

A better solution would be to have a "headless" transient, which automatically takes it's startingkeys from the menu itself.

        {
          "type": "transient",
          "bindings": [
            {
              "key": "J",
              "name": "Move lines down",
              "type": "command",
              "command": "editor.action.moveLinesDownAction"
            },
            {
              "key": "K",
              "name": "Move lines up",
              "type": "command",
              "command": "editor.action.moveLinesUpAction"
            }
          ]
        },

Or define a number of keys from which it will take the commands to the upper level,
while it leaves the remaining commands for the transient menu.

        {
          "keys": ["J", "K"]      <---- New Setting
          "type": "transient",
          "bindings": [
            {
              "key": "J",
              "name": "Move lines down",
              "type": "command",
              "command": "editor.action.moveLinesDownAction"
            },
            {
              "key": "K",
              "name": "Move lines up",
              "type": "command",
              "command": "editor.action.moveLinesUpAction"
            },
            {
              "key": "x",
              "name": "Do something else",
              "type": "command",
              "command": "some.action"
            }
          ]
        }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.