mirror of
https://github.com/jimeh/dotfiles.git
synced 2026-02-19 12:06:41 +00:00
839 lines
28 KiB
JSON
839 lines
28 KiB
JSON
[
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Command Palette
|
|
// ===========================================================================
|
|
//
|
|
{ // Show commands.
|
|
"key": "ctrl+x m",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
{ // Show commands.
|
|
"key": "ctrl+x ctrl+m",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
{ // Show commands.
|
|
"key": "ctrl+x enter",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
{ // Show commands.
|
|
"key": "alt+x",
|
|
"command": "workbench.action.showCommands"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Window
|
|
// ===========================================================================
|
|
//
|
|
{ // Reset zoom.
|
|
"key": "cmd+0",
|
|
"command": "workbench.action.zoomReset"
|
|
},
|
|
{ // Toggle sidebar visibility.
|
|
"key": "ctrl+s",
|
|
"command": "workbench.action.toggleSidebarVisibility"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Window Tabs
|
|
// ===========================================================================
|
|
//
|
|
{ // Go to next window tab.
|
|
"key": "ctrl+z ctrl+n",
|
|
"command": "workbench.action.showNextWindowTab"
|
|
},
|
|
{ // Go to next window tab.
|
|
//
|
|
// This is a workaround for ctrl+n not working globally as down arrow in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+n to
|
|
// down arrow.
|
|
"key": "ctrl+z down",
|
|
"command": "workbench.action.showNextWindowTab"
|
|
},
|
|
{ // Go to next window tab.
|
|
"key": "shift+cmd+]",
|
|
"command": "workbench.action.showNextWindowTab"
|
|
},
|
|
{ // Go to previous window tab.
|
|
"key": "ctrl+z ctrl+p",
|
|
"command": "workbench.action.showPreviousWindowTab"
|
|
},
|
|
{ // Go to previous window tab.
|
|
//
|
|
// This is a workaround for ctrl+p not working globally as up arrow in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+p to
|
|
// up arrow.
|
|
"key": "ctrl+z up",
|
|
"command": "workbench.action.showPreviousWindowTab"
|
|
},
|
|
{ // Go to previous window tab.
|
|
"key": "shift+cmd+[",
|
|
"command": "workbench.action.showPreviousWindowTab"
|
|
},
|
|
{ // Create new window tab.
|
|
"key": "ctrl+z ctrl+c",
|
|
"command": "workbench.action.newWindowTab"
|
|
},
|
|
{ // Merge all window tabs.
|
|
"key": "ctrl+z ctrl+j",
|
|
"command": "workbench.action.mergeAllWindowTabs"
|
|
},
|
|
{ // Move window tab to new window.
|
|
"key": "ctrl+z ctrl+t",
|
|
"command": "workbench.action.moveWindowTabToNewWindow"
|
|
},
|
|
{ // Toggle window tabs bar.
|
|
"key": "ctrl+z ctrl+z",
|
|
"command": "workbench.action.toggleWindowTabsBar"
|
|
},
|
|
{
|
|
"key": "ctrl+z ctrl+k",
|
|
"command": "workbench.action.closeWindow"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Save
|
|
// ===========================================================================
|
|
//
|
|
{ // Save file.
|
|
"key": "ctrl+x ctrl+s",
|
|
"command": "workbench.action.files.save"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: File open
|
|
// ===========================================================================
|
|
//
|
|
{ // Open file via file browser extension.
|
|
"key": "ctrl+x ctrl+f",
|
|
"command": "file-browser.open",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Open file via file browser extension.
|
|
//
|
|
// This is a workaround for ctrl+f not working globally as right arrow in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+f to
|
|
// right arrow.
|
|
"key": "ctrl+x right",
|
|
"command": "file-browser.open",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Open quick open.
|
|
"key": "ctrl+x ctrl+;",
|
|
"command": "workbench.action.quickOpen"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: File rename
|
|
// ===========================================================================
|
|
//
|
|
{ // Rename file via file browser extension.
|
|
"key": "ctrl+c r",
|
|
"command": "file-browser.rename"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Switch and close editor
|
|
// ===========================================================================
|
|
//
|
|
{ // Show all editors by most recently used.
|
|
"key": "ctrl+x ctrl+b",
|
|
"command": "workbench.action.showAllEditorsByMostRecentlyUsed",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Show all editors by most recently used.
|
|
//
|
|
// This is a workaround for ctrl+b not working globally as left arrow in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+b to
|
|
// left arrow.
|
|
"key": "ctrl+x left",
|
|
"command": "workbench.action.showAllEditorsByMostRecentlyUsed",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Close active editor.
|
|
"key": "ctrl+x ctrl+k",
|
|
"command": "workbench.action.closeActiveEditor",
|
|
"when": "!terminalFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Fullscreen
|
|
// ===========================================================================
|
|
//
|
|
{ // Toggle fullscreen.
|
|
"key": "ctrl+cmd+enter",
|
|
"command": "workbench.action.toggleFullScreen",
|
|
"when": "!isIOS"
|
|
},
|
|
{ // Toggle fullscreen.
|
|
"key": "cmd+enter",
|
|
"command": "workbench.action.toggleFullScreen",
|
|
"when": "!isIOS"
|
|
},
|
|
{ // Disable default toggle fullscreen keybinding.
|
|
"key": "ctrl+cmd+f",
|
|
"command": "-workbench.action.toggleFullScreen",
|
|
"when": "!isIOS"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Editor Navigation
|
|
// ===========================================================================
|
|
//
|
|
{ // Go to next editor.
|
|
"key": "cmd+]",
|
|
"command": "workbench.action.nextEditor",
|
|
"when": "!(terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus)"
|
|
},
|
|
{ // Go to previous editor.
|
|
"key": "cmd+[",
|
|
"command": "workbench.action.previousEditor",
|
|
"when": "!(terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus)"
|
|
},
|
|
{ // Focus next terminal.
|
|
"key": "cmd+]",
|
|
"command": "workbench.action.terminal.focusNext",
|
|
"when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
|
|
},
|
|
{ // Focus previous terminal.
|
|
"key": "cmd+[",
|
|
"command": "workbench.action.terminal.focusPrevious",
|
|
"when": "terminalFocus && terminalHasBeenCreated && !terminalEditorFocus || terminalFocus && terminalProcessSupported && !terminalEditorFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Editor Group Navigation
|
|
// ===========================================================================
|
|
//
|
|
{ // Focus next editor group.
|
|
"key": "ctrl+x ctrl+o",
|
|
"command": "workbench.action.focusNextGroup",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Focus previous editor group.
|
|
"key": "ctrl+x ctrl+i",
|
|
"command": "workbench.action.focusPreviousGroup",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Navigate up.
|
|
"key": "alt+i",
|
|
"command": "workbench.action.navigateUp",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Navigate up.
|
|
//
|
|
// Workaround for alt+i not working in VSCode. Relies on Karabiner-Elements
|
|
// to remap alt+i to cmd+alt+up.
|
|
"key": "cmd+alt+up",
|
|
"command": "workbench.action.navigateUp",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{ // Navigate right.
|
|
"key": "alt+l",
|
|
"command": "workbench.action.navigateRight",
|
|
},
|
|
{ // Navigate left.
|
|
"key": "alt+j",
|
|
"command": "workbench.action.navigateLeft",
|
|
},
|
|
{ // Navigate down.
|
|
"key": "alt+k",
|
|
"command": "workbench.action.navigateDown",
|
|
},
|
|
{ // Navigate up back to editor from terminal.
|
|
"key": "alt+i",
|
|
"command": "workbench.action.focusActiveEditorGroup",
|
|
"when": "terminalFocus"
|
|
},
|
|
{ // Navigate up back to editor from terminal.
|
|
//
|
|
// Workaround for alt+i not working in VSCode. Relies on Karabiner-Elements
|
|
// to remap alt+i to cmd+alt+up.
|
|
"key": "cmd+alt+up",
|
|
"command": "workbench.action.focusActiveEditorGroup",
|
|
"when": "terminalFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Editor group layout
|
|
// ===========================================================================
|
|
//
|
|
{ // Even editor widths.
|
|
"key": "ctrl+x space",
|
|
"command": "workbench.action.evenEditorWidths",
|
|
"when": "!terminalFocus"
|
|
},
|
|
{
|
|
"key": "ctrl+z ctrl+enter",
|
|
"command": "workbench.action.toggleMaximizeEditorGroup",
|
|
"when": "editorPartMaximizedEditorGroup || editorPartMultipleEditorGroups"
|
|
},
|
|
{
|
|
"key": "ctrl+z enter",
|
|
"command": "workbench.action.minimizeOtherEditors",
|
|
"when": "editorPartMaximizedEditorGroup || editorPartMultipleEditorGroups"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Move active editor group
|
|
// ===========================================================================
|
|
//
|
|
{ // Move active editor group up.
|
|
"key": "ctrl+shift+i",
|
|
"command": "workbench.action.moveActiveEditorGroupUp"
|
|
},
|
|
{ // Move active editor group down.
|
|
"key": "ctrl+shift+k",
|
|
"command": "workbench.action.moveActiveEditorGroupDown"
|
|
},
|
|
{ // Move active editor group left.
|
|
"key": "ctrl+shift+j",
|
|
"command": "workbench.action.moveActiveEditorGroupLeft"
|
|
},
|
|
{ // Move active editor group right.
|
|
"key": "ctrl+shift+l",
|
|
"command": "workbench.action.moveActiveEditorGroupRight"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Move active editor into group
|
|
// ===========================================================================
|
|
//
|
|
{ // Move active editor into group above.
|
|
"key": "alt+shift+i",
|
|
"command": "workbench.action.moveEditorToAboveGroup"
|
|
},
|
|
{ // Move active editor into group above.
|
|
//
|
|
// Workaround for alt+i not working in VSCode. Relies on Karabiner-Elements
|
|
// to remap alt+i to cmd+alt+up.
|
|
"key": "cmd+alt+shift+up",
|
|
"command": "workbench.action.moveEditorToAboveGroup"
|
|
},
|
|
{ // Move active editor into group below.
|
|
"key": "alt+shift+k",
|
|
"command": "workbench.action.moveEditorToBelowGroup"
|
|
},
|
|
{ // Move active editor into group left.
|
|
"key": "alt+shift+j",
|
|
"command": "workbench.action.moveEditorToLeftGroup"
|
|
},
|
|
{ // Move active editor into group right.
|
|
"key": "alt+shift+l",
|
|
"command": "workbench.action.moveEditorToRightGroup"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Undo/redo
|
|
// ===========================================================================
|
|
//
|
|
{ // Undo.
|
|
"key": "alt+-",
|
|
"command": "undo"
|
|
},
|
|
{ // Redo.
|
|
"key": "alt+shift+-",
|
|
"command": "redo"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Scrolling
|
|
// ===========================================================================
|
|
//
|
|
{ // Scroll half page down.
|
|
"key": "ctrl+v",
|
|
"command": "editorScroll",
|
|
"args": {
|
|
"to": "down",
|
|
"by": "halfPage",
|
|
"revealCursor": true,
|
|
"value": 1
|
|
},
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Scroll half page up.
|
|
"key": "alt+v",
|
|
"command": "editorScroll",
|
|
"args": {
|
|
"to": "up",
|
|
"by": "halfPage",
|
|
"revealCursor": true,
|
|
"value": 1
|
|
},
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Disable awesome-emacs-keymap scroll down keybinding.
|
|
"key": "ctrl+v",
|
|
"command": "-emacs-mcx.scrollUpCommand",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Disable awesome-emacs-keymap scroll up keybinding.
|
|
"key": "alt+v",
|
|
"command": "-emacs-mcx.scrollDownCommand",
|
|
"when": "editorTextFocus && !config.emacs-mcx.useMetaPrefixMacCmd && !suggestWidgetVisible"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Suggestions
|
|
// ===========================================================================
|
|
//
|
|
{ // Trigger suggestions.
|
|
"key": "ctrl+/",
|
|
"command": "editor.action.triggerSuggest",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Toggle suggestion details.
|
|
"key": "ctrl+/",
|
|
"command": "toggleSuggestionDetails",
|
|
"when": "editorTextFocus && suggestWidgetVisible"
|
|
},
|
|
{ // Accept next word.
|
|
"key": "shift+alt+f",
|
|
"command": "editor.action.inlineSuggest.acceptNextWord"
|
|
},
|
|
{ // Accept next word.
|
|
//
|
|
// This is a workaround for alt+f not working globally to move to next word
|
|
// in all input fields. This relies on Karabiner-Elements to remap alt+f to
|
|
// alt+right arrow.
|
|
"key": "shift+alt+right",
|
|
"command": "editor.action.inlineSuggest.acceptNextWord"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Text navigation
|
|
// ===========================================================================
|
|
//
|
|
{ // Forward paragraph.
|
|
"key": "alt+e",
|
|
"command": "emacs-mcx.forwardParagraph",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Forward paragraph.
|
|
//
|
|
// This is a workaround for alt+e not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+e to cmd+alt+right.
|
|
"key": "cmd+alt+right",
|
|
"command": "emacs-mcx.forwardParagraph",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Backward paragraph.
|
|
"key": "alt+a",
|
|
"command": "emacs-mcx.backwardParagraph",
|
|
"when": "editorTextFocus && !suggestWidgetVisible"
|
|
},
|
|
{ // Go to symbol definition.
|
|
"key": "ctrl+t",
|
|
"command": "workbench.action.gotoSymbol",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Jump to definition.
|
|
"key": "ctrl+c ctrl+j",
|
|
"command": "editor.action.revealDefinition"
|
|
},
|
|
{ // Navigate back.
|
|
"key": "alt+g b",
|
|
"command": "workbench.action.navigateBack"
|
|
},
|
|
{ // Navigate back.
|
|
"key": "alt+g alt+b",
|
|
"command": "workbench.action.navigateBack"
|
|
},
|
|
{ // Peek symbol references.
|
|
"key": "alt+shift+/",
|
|
"command": "editor.action.referenceSearch.trigger",
|
|
"when": "editorHasReferenceProvider && editorTextFocus && !inReferenceSearchEditor && !isInEmbeddedEditor"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Text manipulation
|
|
// ===========================================================================
|
|
//
|
|
{ // Set indentation to correct level.
|
|
//
|
|
// This was borrowed from the awesome-emacs-keymap extension and modifed to
|
|
// add the `!cpp.shouldAcceptTab` condition for the sake of Cursor.
|
|
//
|
|
// Extension: https://marketplace.visualstudio.com/items?itemName=tuttieee.emacs-mcx
|
|
"key": "tab",
|
|
"command": "emacs-mcx.tabToTabStop",
|
|
"when": "editorTextFocus && !editorReadonly && !inlineSuggestionVisible && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible && !inSnippetMode && !editorTabCompletion && !editorParameterHintsVisible && !cursorAtInlineEdit && !cpp.shouldAcceptTab"
|
|
},
|
|
{ // Cycle spacing.
|
|
//
|
|
// This is a basic emulation Emacs' built-in cycle-spacing command. It
|
|
// doesn't actually cycle spacing, but it performs the first step which is
|
|
// to replace all spacing surrounding the cursor with a single space.
|
|
"key": "alt+space",
|
|
"command": "macros.cycleSpacing",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Toggle quotes.
|
|
//
|
|
// Extension: https://marketplace.visualstudio.com/items?itemName=BriteSnow.vscode-toggle-quotes
|
|
"key": "ctrl+'",
|
|
"command": "editor.togglequotes",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Comment line.
|
|
"key": "ctrl+c /",
|
|
"command": "editor.action.commentLine",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Comment line.
|
|
"key": "ctrl+c ctrl+/",
|
|
"command": "editor.action.commentLine",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Format document.
|
|
"key": "ctrl+c ctrl+f",
|
|
"command": "editor.action.formatDocument",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Format document.
|
|
//
|
|
// This is a workaround for ctrl+f not working globally as right arrow in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+f to
|
|
// right arrow.
|
|
"key": "ctrl+c right",
|
|
"command": "editor.action.formatDocument",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Duplicate selection.
|
|
"key": "ctrl+x ctrl+d",
|
|
"command": "editor.action.duplicateSelection"
|
|
},
|
|
{ // Duplicate selection.
|
|
//
|
|
// This is a workaround for ctrl+d not working globally as forward delete in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+d to
|
|
// forward delete.
|
|
"key": "ctrl+x delete",
|
|
"command": "editor.action.duplicateSelection"
|
|
},
|
|
{ // Rename thing at point.
|
|
"key": "ctrl+c ctrl+.",
|
|
"command": "editor.action.rename",
|
|
"when": "editorHasRenameProvider && editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Indent line
|
|
"key": "ctrl+c ]",
|
|
"command": "editor.action.indentLines",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Indent line
|
|
"key": "alt+]",
|
|
"command": "editor.action.indentLines",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Outdent line
|
|
"key": "ctrl+c [",
|
|
"command": "editor.action.outdentLines",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Outdent line
|
|
"key": "alt+[",
|
|
"command": "editor.action.outdentLines",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move lines up in editor.
|
|
"key": "alt+p",
|
|
"command": "editor.action.moveLinesUpAction",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move lines down in editor.
|
|
"key": "alt+n",
|
|
"command": "editor.action.moveLinesDownAction",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move lines down in editor.
|
|
//
|
|
// This is a workaround for alt+n not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+n to cmd+alt+down.
|
|
"key": "cmd+alt+down",
|
|
"command": "editor.action.moveLinesDownAction",
|
|
"when": "editorTextFocus && !editorReadonly"
|
|
},
|
|
{ // Move cell up in notebook editor.
|
|
"key": "alt+p",
|
|
"command": "notebook.cell.moveUp",
|
|
"when": "notebookEditorFocused && !inputFocus"
|
|
},
|
|
{ // Move cell down in notebook editor.
|
|
"key": "alt+n",
|
|
"command": "notebook.cell.moveDown",
|
|
"when": "notebookEditorFocused && !inputFocus"
|
|
},
|
|
{ // Move cell down in notebook editor.
|
|
//
|
|
// This is a workaround for alt+n not working in VSCode. Relies on
|
|
// Karabiner-Elements to remap alt+n to cmd+alt+down.
|
|
"key": "cmd+alt+down",
|
|
"command": "notebook.cell.moveDown",
|
|
"when": "notebookEditorFocused && !inputFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Expand region
|
|
// ===========================================================================
|
|
// Extension:
|
|
// - https://marketplace.visualstudio.com/items?itemName=letrieu.expand-region
|
|
//
|
|
{ // Expand selection.
|
|
"key": "alt+.",
|
|
"command": "expand_region",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Shrink/contract selection.
|
|
"key": "alt+,",
|
|
"command": "undo_expand_region",
|
|
"when": "editorHasSelection && editorTextFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Multi-cursor
|
|
// ===========================================================================
|
|
//
|
|
{ // Select all highlights.
|
|
"key": "shift+cmd+a",
|
|
"command": "editor.action.selectHighlights",
|
|
"when": "editorFocus"
|
|
},
|
|
{ // Disable default insert cursor above keybinding.
|
|
"key": "alt+cmd+up",
|
|
"command": "-editor.action.insertCursorAbove",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Insert cursor above.
|
|
"key": "alt+m",
|
|
"command": "editor.action.insertCursorAbove",
|
|
"when": "editorTextFocus && !editorHasSelection"
|
|
},
|
|
{ // Add selection to previous find match when editor has selection.
|
|
"key": "alt+m",
|
|
"command": "emacs-mcx.addSelectionToPreviousFindMatch",
|
|
"when": "editorTextFocus && editorHasSelection"
|
|
},
|
|
{ // Disable default insert cursor below keybinding.
|
|
"key": "alt+cmd+down",
|
|
"command": "-editor.action.insertCursorBelow",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Insert cursor below when editor has no selection.
|
|
"key": "alt+/",
|
|
"command": "editor.action.insertCursorBelow",
|
|
"when": "editorTextFocus && !editorHasSelection"
|
|
},
|
|
{ // Add selection to next find match when editor has selection.
|
|
"key": "alt+/",
|
|
"command": "emacs-mcx.addSelectionToNextFindMatch",
|
|
"when": "editorTextFocus && editorHasSelection"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Completion
|
|
// ===========================================================================
|
|
//
|
|
{
|
|
"key": "alt+shift+f",
|
|
"command": "editor.action.inlineSuggest.acceptNextWord"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Testing
|
|
// ===========================================================================
|
|
//
|
|
{ // Run current file.
|
|
"key": "ctrl+c , v",
|
|
"command": "macros.runTestCurrentFile",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run with coverage for current file.
|
|
"key": "ctrl+c , ctrl+v",
|
|
"command": "macros.runTestCoverageCurrentFile",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run at cursor.
|
|
"key": "ctrl+c , s",
|
|
"command": "macros.runTestAtCursor",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run with coverage at cursor.
|
|
"key": "ctrl+c , ctrl+s",
|
|
"command": "macros.runTestCoverageAtCursor",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run all tests.
|
|
"key": "ctrl+c , a",
|
|
"command": "macros.runTestAll",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Run with coverage for all tests.
|
|
"key": "ctrl+c , ctrl+a",
|
|
"command": "macros.runTestCoverageAll",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Re-run last run.
|
|
"key": "ctrl+c , l",
|
|
"command": "macros.runTestReRunLastRun",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Re-run with coverage for last run.
|
|
"key": "ctrl+c , ctrl+l",
|
|
"command": "macros.runTestCoverageLastRun",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Re-run failed tests.
|
|
"key": "ctrl+c , f",
|
|
"command": "macros.runTestReRunFailTests",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Debug failed tests.
|
|
"key": "ctrl+c , ctrl+f",
|
|
"command": "macros.runTestDebugFailTests",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Debug failed tests.
|
|
//
|
|
// This is a workaround for ctrl+f not working globally as right arrow in
|
|
// all input fields. This relies on Karabiner-Elements to remap ctrl+f to
|
|
// right arrow.
|
|
"key": "ctrl+c , right",
|
|
"command": "macros.runTestDebugFailTests",
|
|
"when": "editorTextFocus"
|
|
},
|
|
{ // Debug last run.
|
|
"key": "ctrl+c , d",
|
|
"command": "macros.runTestDebugLastRun",
|
|
"when": "editorTextFocus"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Documentation
|
|
// ===========================================================================
|
|
//
|
|
{ // Show documentation for symbol at cursor.
|
|
"key": "ctrl+c d",
|
|
"command": "editor.action.showHover"
|
|
},
|
|
{ // Show documentation for symbol at cursor.
|
|
"key": "ctrl+c ctrl+d",
|
|
"command": "editor.action.triggerParameterHints"
|
|
},
|
|
{ // Show documentation for symbol at cursor.
|
|
//
|
|
// This is a workaround for ctrl+d not working globally as forward delete in
|
|
// all input fields. Hence we rebind ctrl+d to forward delete, meaning any
|
|
// keybindings that use ctrl+d need to be updated to use delete aswell.
|
|
"key": "ctrl+c delete",
|
|
"command": "editor.action.triggerParameterHints"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: edamagit
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=kahole.magit
|
|
//
|
|
{ // Open magit status.
|
|
"key": "ctrl+x g",
|
|
"command": "magit.status"
|
|
},
|
|
{ // Disable default open magit status keybinding.
|
|
"key": "alt+x g",
|
|
"command": "-magit.status"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: GitHub
|
|
// ===========================================================================
|
|
// Extensions:
|
|
// - https://marketplace.visualstudio.com/items?itemName=GitHub.remotehub
|
|
// - https://marketplace.visualstudio.com/items?itemName=github.vscode-github-actions
|
|
// - https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github
|
|
// - https://marketplace.visualstudio.com/items?itemName=ziyasal.vscode-open-in-github
|
|
//
|
|
{
|
|
"key": "ctrl+c g",
|
|
"command": "extension.openInGitHub"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Project Manager
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=alefragnani.project-manager
|
|
//
|
|
{ // List projects.
|
|
"key": "ctrl+z ctrl+s",
|
|
"command": "projectManager.listProjects"
|
|
},
|
|
{ // Disable default list projects keybinding.
|
|
"key": "alt+cmd+p",
|
|
"command": "-projectManager.listProjects"
|
|
},
|
|
{
|
|
"key": "ctrl+z ctrl+;",
|
|
"command": "projectManager.listProjectsNewWindow"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: dired
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=rrudi.vscode-dired
|
|
//
|
|
{ // Open dired.
|
|
"key": "ctrl+x ctrl+j",
|
|
"command": "extension.dired.open",
|
|
"when": "editorTextFocus && !inDebugRepl"
|
|
},
|
|
{ // Disable default open dired keybinding.
|
|
"key": "ctrl+x f",
|
|
"command": "-extension.dired.open",
|
|
"when": "editorTextFocus && !inDebugRepl"
|
|
},
|
|
{ // Create directory.
|
|
"key": "c",
|
|
"command": "extension.dired.createDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
{ // Disable default create directory keybinding.
|
|
"key": "shift+=",
|
|
"command": "-extension.dired.createDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
{ // Go up directory.
|
|
"key": "ctrl+l",
|
|
"command": "extension.dired.goUpDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
{ // Disable default go up directory keybinding.
|
|
"key": "shift+b",
|
|
"command": "-extension.dired.goUpDir",
|
|
"when": "dired.open && !findWidgetVisible && !inQuickOpen"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: swiper
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=wenhoujx.swiper
|
|
//
|
|
{ // Swiper word at cursor.
|
|
"key": "alt+r",
|
|
"command": "swiper.swiper-word-at-cursor"
|
|
},
|
|
//
|
|
// ===========================================================================
|
|
// MARK: Makefile task runner
|
|
// ===========================================================================
|
|
// Extension URL:
|
|
// - https://marketplace.visualstudio.com/items?itemName=carlos-algms.make-task-provider
|
|
//
|
|
{ // Run target.
|
|
"key": "ctrl+c enter",
|
|
"command": "make-task-provider.runTarget"
|
|
}
|
|
]
|