[
    {
        "key": "shift+[Tab]",
        "command": "acceptAlternativeSelectedSuggestion",
        "when": "suggestWidgetVisible && textInputFocus && textInputFocus"
    },
    {
        "key": "shift+[Enter]",
        "command": "acceptAlternativeSelectedSuggestion",
        "when": "suggestWidgetVisible && textInputFocus && textInputFocus"
    },
    {
        "key": "tab",
        "command": "acceptSelectedSuggestion",
        "when": "suggestWidgetVisible && textInputFocus"
    },
    {
        "key": "enter",
        "command": "acceptSelectedSuggestion",
        "when": "acceptSuggestionOnEnter && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus"
    },
    {
        "key": "ctrl+shift+[Space]",
        "command": "editor.action.triggerParameterHints",
        "when": "editorHasSignatureHelpProvider && editorTextFocus"
    },
    {
        "key": "ctrl+k ctrl+i",
        "command": "editor.action.showHover",
        "when": "editorTextFocus"
    },
    {
        "key": "",
        "command": "workbench.action.showErrorsWarnings",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+n",
        "command": "workbench.action.files.newUntitledFile"
    },
    {
        "key": "ctrl+[Slash]",
        "command": "editor.action.commentLine",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+shift+a",
        "command": "editor.action.blockComment",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "",
        "command": "editor.action.smartSelect.grow",
        "when": "editorTextFocus"
    },
    {
        "key": "shift+alt+[ArrowLeft]",
        "command": "editor.action.smartSelect.shrink",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+[Period]",
        "command": "editor.action.quickFix",
        "when": "editorHasCodeActionsProvider && editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+shift+i",
        "command": "editor.action.formatDocument",
        "when": "editorHasDocumentFormattingProvider && editorTextFocus && !editorReadonly && !inCompositeEditor"
    },
    {
        "key": "ctrl+k ctrl+f",
        "command": "editor.action.formatSelection",
        "when": "editorHasDocumentSelectionFormattingProvider && editorHasSelection && editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+x",
        "command": "editor.action.clipboardCutAction"
    },
    {
        "key": "ctrl+shift+alt+[ArrowDown]",
        "command": "editor.action.copyLinesDownAction",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "",
        "command": "editor.action.duplicateSelection",
        "when": "editorTextFocus && !editorReadonly && editorHasSelection"
    },
    {
        "key": "ctrl+shift+k",
        "command": "editor.action.deleteLines",
        "when": "textInputFocus && !editorReadonly"
    },
    {
        "key": "",
        "command": "editor.action.joinLines",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "",
        "command": "lineBreakInsert",
        "when": "textInputFocus && !editorReadonly"
    },
    {
        "key": "ctrl+[Enter]",
        "command": "editor.action.insertLineAfter",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+[Delete]",
        "command": "deleteWordRight",
        "when": "textInputFocus && !editorReadonly"
    },
    {
        "key": "ctrl+backspace",
        "command": "deleteWordLeft",
        "when": "textInputFocus && !editorReadonly"
    },
    {
        "key": "ctrl+shift+]",
        "command": "editor.unfold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+shift+[",
        "command": "editor.fold",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+]",
        "command": "editor.unfoldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+[",
        "command": "editor.foldRecursively",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+j",
        "command": "editor.unfoldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+k ctrl+[Digit0]",
        "command": "editor.foldAll",
        "when": "editorTextFocus && foldingEnabled"
    },
    {
        "key": "ctrl+w",
        "command": "workbench.action.closeActiveEditor"
    },
    {
        "key": "ctrl+d",
        "command": "editor.action.addSelectionToNextFindMatch",
        "when": "editorFocus"
    },
    {
        "key": "ctrl+u",
        "command": "cursorUndo",
        "when": "textInputFocus"
    },
    {
        "key": "alt+[ArrowDown]",
        "command": "editor.action.moveLinesDownAction",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "alt+[ArrowUp]",
        "command": "editor.action.moveLinesUpAction",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "",
        "command": "editor.action.toggleColumnSelection"
    },
    {
        "key": "f3",
        "command": "editor.action.nextMatchFindAction",
        "when": "editorFocus"
    },
    {
        "key": "enter",
        "command": "editor.action.nextMatchFindAction",
        "when": "editorFocus && findInputFocussed"
    },
    {
        "key": "shift+[F3]",
        "command": "editor.action.previousMatchFindAction",
        "when": "editorFocus"
    },
    {
        "key": "shift+[Enter]",
        "command": "editor.action.previousMatchFindAction",
        "when": "editorFocus && findInputFocussed"
    },
    {
        "key": "ctrl+h",
        "command": "editor.action.startFindReplaceAction",
        "when": "editorFocus || editorIsOpen"
    },
    {
        "key": "ctrl+shift+f",
        "command": "workbench.action.findInFiles"
    },
    {
        "key": "ctrl+shift+h",
        "command": "workbench.action.replaceInFiles"
    },
    {
        "key": "shift+alt+[F12]",
        "command": "references-view.findReferences",
        "when": "editorHasReferenceProvider"
    },
    {
        "key": "",
        "command": "editor.action.referenceSearch.trigger",
        "when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor"
    },
    {
        "key": "ctrl+shift+b",
        "command": "workbench.action.tasks.build"
    },
    {
        "key": "",
        "command": "workbench.action.tasks.reRunTask"
    },
    {
        "key": "ctrl+shift+d",
        "command": "workbench.view.debug"
    },
    {
        "key": "ctrl+[F5]",
        "command": "workbench.action.debug.run",
        "when": "debuggersAvailable"
    },
    {
        "key": "f10",
        "command": "workbench.action.debug.stepOver",
        "when": "debugState == 'stopped'"
    },
    {
        "key": "f11",
        "command": "workbench.action.debug.stepInto",
        "when": "debugState != 'inactive'"
    },
    {
        "key": "shift+[F11]",
        "command": "workbench.action.debug.stepOut",
        "when": "debugState == 'stopped'"
    },
    {
        "key": "",
        "command": "editor.debug.action.runToCursor",
        "when": "debugState == 'stopped'"
    },
    {
        "key": "ctrl+shift+y",
        "command": "workbench.debug.action.toggleRepl",
        "when": "debuggersAvailable"
    },
    {
        "key": "",
        "command": "editor.debug.action.selectionToRepl",
        "when": "debuggersAvailable && editorHasSelection"
    },
    {
        "key": "f5",
        "command": "workbench.action.debug.continue",
        "when": "inDebugMode"
    },
    {
        "key": "f9",
        "command": "editor.debug.action.toggleBreakpoint",
        "when": "debuggersAvailable && editorTextFocus"
    },
    {
        "key": "ctrl+shift+d",
        "command": "workbench.view.debug"
    },
    {
        "key": "ctrl+t",
        "command": "workbench.action.showAllSymbols"
    },
    {
        "key": "ctrl+e",
        "command": "workbench.action.openPreviousEditorFromHistory",
        "when": "inQuickOpen"
    },
    {
        "key": "ctrl+e",
        "command": "workbench.action.openRecent",
        "when": "!inQuickOpen"
    },
    {
        "key": "ctrl+p",
        "command": "workbench.action.quickOpen"
    },
    {
        "key": "ctrl+shift+o",
        "command": "workbench.action.gotoSymbol",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+[PageUp]",
        "command": "workbench.action.previousEditor"
    },
    {
        "key": "ctrl+[PageDown]",
        "command": "workbench.action.nextEditor"
    },
    {
        "key": "ctrl+b",
        "command": "workbench.action.toggleSidebarVisibility"
    },
    {
        "key": "ctrl+shift+m",
        "command": "workbench.actions.view.problems"
    },
    {
        "key": "ctrl+`",
        "command": "workbench.action.terminal.toggleTerminal"
    },
    {
        "key": "ctrl+g",
        "command": "workbench.action.gotoLine"
    },
    {
        "key": "",
        "command": "workbench.action.quickOpenNavigateNext",
        "when": "inQuickOpen"
    },
    {
        "key": "ctrl+r",
        "command": "workbench.action.quickOpen"
    },
    {
        "key": "ctrl+alt+[Minus]",
        "command": "workbench.action.navigateBack"
    },
    {
        "key": "ctrl+shift+[Minus]",
        "command": "workbench.action.navigateForward"
    },
    {
        "key": "ctrl+k ctrl+q",
        "command": "workbench.action.navigateToLastEditLocation"
    },
    {
        "key": "",
        "command": "editor.action.goToDeclaration",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+[F12]",
        "command": "editor.action.goToImplementation",
        "when": "editorHasImplementationProvider && editorTextFocus && !isInEmbeddedEditor"
    },
    {
        "key": "",
        "command": "editor.action.previewDeclaration"
    },
    {
        "key": "",
        "command": "editor.action.goToTypeDefinition",
        "when": "editorTextFocus"
    },
    {
        "key": "",
        "command": "outline.focus"
    },
    {
        "key": "ctrl+shift+o",
        "command": "workbench.action.gotoSymbol",
        "when": "editorTextFocus"
    },
    {
        "key": "alt+[F8]",
        "command": "editor.action.marker.next",
        "when": "editorFocus"
    },
    {
        "key": "shift+alt+[F8]",
        "command": "editor.action.marker.prev",
        "when": "editorFocus"
    },
    {
        "key": "alt+[F3]",
        "command": "editor.action.dirtydiff.next",
        "when": "editorTextFocus"
    },
    {
        "key": "shift+alt+[F3]",
        "command": "editor.action.dirtydiff.previous",
        "when": "editorTextFocus"
    },
    {
        "key": "ctrl+[Home]",
        "command": "cursorTop",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+[End]",
        "command": "cursorBottom",
        "when": "textInputFocus"
    },
    {
        "key": "f2",
        "command": "editor.action.rename",
        "when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+[F2]",
        "command": "editor.action.changeAll",
        "when": "editorTextFocus && editorTextFocus && !editorReadonly"
    },
    {
        "key": "f2",
        "command": "renameFile",
        "when": "explorerViewletVisible && filesExplorerFocus && !explorerResourceIsRoot && !explorerResourceReadonly && !inputFocus"
    },
    {
        "key": "",
        "command": "git.commitAll",
        "when": "!inDebugMode && !terminalFocus"
    },
    {
        "key": "",
        "command": "git.pushTo",
        "when": "!inDebugMode && !terminalFocus"
    },
    {
        "key": "",
        "command": "git.sync"
    },
    {
        "key": "ctrl+k ctrl+r",
        "command": "git.revertSelectedRanges",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+shift+m",
        "command": "workbench.actions.view.problems"
    },
    {
        "key": "ctrl+shift+e",
        "command": "workbench.view.explorer"
    },
    {
        "key": "ctrl+b",
        "command": "workbench.action.toggleSidebarVisibility"
    },
    {
        "key": "ctrl+shift+g",
        "command": "workbench.view.scm"
    },
    {
        "key": "",
        "command": "workbench.action.files.saveAll"
    },
    {
        "key": "f11",
        "command": "workbench.action.toggleFullScreen"
    },
    {
        "key": "",
        "command": "workbench.action.maximizeEditor"
    },
    {
        "key": "ctrl+k ctrl+t",
        "command": "workbench.action.selectTheme"
    },
    {
        "key": "",
        "command": "workbench.action.openGlobalSettings"
    },
    {
        "key": "",
        "command": "workbench.action.tasks.configureTaskRunner"
    },
    {
        "key": "f1",
        "command": "workbench.action.showCommands"
    },
    {
        "key": "ctrl+shift+p",
        "command": "workbench.action.showCommands"
    },
    {
        "key": "",
        "command": "workbench.action.quickOpenNavigateNext"
    },
    {
        "key": "alt+[F5]",
        "command": "workbench.action.compareEditor.nextChange",
        "when": "textCompareEditorVisible"
    },
    {
        "key": "shift+alt+[F5]",
        "command": "workbench.action.compareEditor.previousChange",
        "when": "textCompareEditorVisible"
    },
    {
        "key": "ctrl+shift+[Enter]",
        "command": "editor.action.insertLineBefore",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "ctrl+[Enter]",
        "command": "editor.action.insertLineAfter",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "",
        "command": "workbench.action.terminal.focus"
    },
    {
        "key": "ctrl+`",
        "command": "workbench.action.terminal.toggleTerminal"
    },
    {
        "key": "ctrl+shift+l",
        "command": "editor.action.selectHighlights",
        "when": "editorFocus"
    },
    {
        "key": "",
        "command": "workbench.action.terminal.focusPrevious",
        "when": "terminalFocus"
    },
    {
        "key": "",
        "command": "workbench.action.terminal.focusNext",
        "when": "terminalFocus"
    },
    {
        "key": "",
        "command": "workbench.action.focusNextGroup",
        "when": "terminalFocus"
    },
    {
        "key": "",
        "command": "workbench.action.focusPreviousGroup",
        "when": "editorFocus"
    },
    {
        "key": "enter",
        "command": "list.select",
        "when": "listFocus && !inputFocus"
    },
    {
        "key": "ctrl+shift+[Semicolon]",
        "command": "breadcrumbs.focus",
        "when": "breadcrumbsPossible"
    },
    {
        "key": "ctrl+alt+c",
        "command": "copyFilePath",
        "when": "!editorFocus"
    },
    {
        "key": "ctrl+i",
        "command": "editor.action.triggerSuggest",
        "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
    },
    {
        "key": "ctrl+[Space]",
        "command": "editor.action.triggerSuggest",
        "when": "editorHasCompletionItemProvider && textInputFocus && !editorReadonly"
    },
    {
        "key": "ctrl+shift+f",
        "command": "workbench.action.findInFiles"
    },
    {
        "key": "ctrl+c",
        "command": "editor.action.clipboardCopyAction"
    },
    {
        "key": "shift+[Insert]",
        "command": "editor.action.clipboardPasteAction"
    },
    {
        "key": "ctrl+v",
        "command": "editor.action.clipboardPasteAction"
    },
    {
        "key": "ctrl+shift+z",
        "command": "redo"
    },
    {
        "key": "ctrl+y",
        "command": "redo"
    },
    {
        "key": "ctrl+z",
        "command": "undo"
    },
    {
        "key": "",
        "command": "compareFiles"
    },
    {
        "key": "",
        "command": "merge-conflict.accept.current",
        "when": "isInDiffEditor"
    },
    {
        "key": "",
        "command": "merge-conflict.accept.incoming",
        "when": "isInDiffEditor"
    },
    {
        "key": "",
        "command": "git.openChange"
    },
    {
        "key": "ctrl+k o",
        "command": "workbench.action.files.showOpenedFileInNewWindow",
        "when": "emptyWorkspaceSupport"
    },
    {
        "key": "",
        "command": "cursorLineEnd",
        "when": "textInputFocus"
    },
    {
        "key": "",
        "command": "cursorLineEndSelect",
        "when": "textInputFocus"
    },
    {
        "key": "",
        "command": "cursorLineStart",
        "when": "textInputFocus"
    },
    {
        "key": "",
        "command": "cursorLineStartSelect",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+[End]",
        "command": "cursorBottom",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+[End]",
        "command": "cursorBottomSelect",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+[Home]",
        "command": "cursorTop",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+[Home]",
        "command": "cursorTopSelect",
        "when": "textInputFocus"
    },
    {
        "key": "",
        "command": "cursorWordRight",
        "when": "textInputFocus"
    },
    {
        "key": "",
        "command": "cursorWordRightSelect",
        "when": "textInputFocus"
    },
    {
        "key": "pagedown",
        "command": "cursorPageDown",
        "when": "textInputFocus"
    },
    {
        "key": "shift+[PageDown]",
        "command": "cursorPageDownSelect",
        "when": "textInputFocus"
    },
    {
        "key": "pageup",
        "command": "cursorPageUp",
        "when": "textInputFocus"
    },
    {
        "key": "shift+[PageUp]",
        "command": "cursorPageUpSelect",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+[ArrowLeft]",
        "command": "cursorWordLeft",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+[ArrowLeft]",
        "command": "cursorWordLeftSelect",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+n",
        "command": "workbench.action.files.newUntitledFile"
    },
    {
        "key": "shift+alt+h",
        "command": "references-view.showCallHierarchy",
        "when": "editorHasCallHierarchyProvider"
    },
    {
        "key": "shift+alt+o",
        "command": "editor.action.organizeImports",
        "when": "editorTextFocus && !editorReadonly && supportedCodeAction =~ /(\\s|^)source\\.organizeImports\\b/"
    },
    {
        "key": "",
        "command": "java.action.showTypeHierarchy",
        "when": "editorLangId == java && editorTextFocus"
    }
]