#custom vscode commands go here app: vscode - tag(): user.find_and_replace tag(): user.line_commands tag(): user.multiple_cursors tag(): user.snippets tag(): user.splits tag(): user.tabs # TODO remove this once implemented in cursorless cut line: key(cmd-x) action(edit.select_line): key(ctrl-e cmd-shift-left) line: user.vscode_and_wait("editor.action.deleteLines") action(user.new_line_below): user.vscode_and_wait("editor.action.insertLineAfter") action(user.new_line_above): user.vscode_and_wait("editor.action.insertLineBefore") settings(): key_wait = 1 #talon app actions action(app.tab_close): user.vscode("workbench.action.closeActiveEditor") action(app.tab_next): user.vscode("workbench.action.nextEditorInGroup") action(app.tab_previous): user.vscode("workbench.action.previousEditorInGroup") action(app.tab_reopen): user.vscode("workbench.action.reopenClosedEditor") action(app.window_close): user.vscode("workbench.action.closeWindow") action(app.window_open): user.vscode("workbench.action.newWindow") last: user.vscode("workbench.action.openPreviousRecentlyUsedEditorInGroup") next: user.vscode("workbench.action.openNextRecentlyUsedEditorInGroup") #talon code actions action(code.toggle_comment): user.vscode("editor.action.commentLine") #talon edit actions action(edit.indent_more): user.vscode("editor.action.indentLines") action(edit.indent_less): user.vscode("editor.action.outdentLines") action(edit.save_all): user.vscode("workbench.action.files.saveAll") # splits.py support begin action(user.split_clear_all): user.vscode("workbench.action.editorLayoutSingle") action(user.split_clear): user.vscode("workbench.action.joinTwoGroups") action(user.split_flip): user.vscode("workbench.action.toggleEditorGroupLayout") action(user.split_last): user.vscode("workbench.action.focusLeftGroup") action(user.split_next): user.vscode_and_wait("workbench.action.focusRightGroup") action(user.split_window_down): user.vscode("workbench.action.moveEditorToBelowGroup") action(user.split_window_horizontally): user.vscode("workbench.action.splitEditorOrthogonal") action(user.split_window_left): user.vscode("workbench.action.moveEditorToLeftGroup") action(user.split_window_right): user.vscode("workbench.action.moveEditorToRightGroup") action(user.split_window_up): user.vscode("workbench.action.moveEditorToAboveGroup") action(user.split_window_vertically): user.vscode("workbench.action.splitEditor") action(user.split_window): user.vscode("workbench.action.splitEditor") cross: # user.vscode("vscode-neovim.escape") # sleep(25ms) user.split_next() # key(a) # splits.py support end #multiple_cursor.py support begin #note: vscode has no explicit mode for multiple cursors action(user.multi_cursor_add_above): user.vscode("editor.action.insertCursorAbove") action(user.multi_cursor_add_below): user.vscode("editor.action.insertCursorBelow") action(user.multi_cursor_add_to_line_ends): user.vscode("editor.action.insertCursorAtEndOfEachLineSelected") action(user.multi_cursor_disable): key(escape) action(user.multi_cursor_enable): skip() action(user.multi_cursor_select_all_occurrences): user.vscode("editor.action.selectHighlights") action(user.multi_cursor_select_fewer_occurrences): user.vscode("cursorUndo") action(user.multi_cursor_select_more_occurrences): user.vscode("editor.action.addSelectionToNextFindMatch") #multiple_cursor.py support end please []: user.vscode("workbench.action.showCommands") insert(user.text or "") # Sidebar bar explore: user.vscode("workbench.view.explorer") bar extensions: user.vscode("workbench.view.extensions") bar outline: user.vscode("outline.focus") bar run: user.vscode("workbench.view.debug") bar source: user.vscode("workbench.view.scm") side dog: user.vscode("workbench.action.toggleSidebarVisibility") search next: user.vscode("search.action.focusNextSearchResult") search last: user.vscode("search.action.focusPreviousSearchResult") symbol hunt []: user.vscode("workbench.action.gotoSymbol") sleep(50ms) insert(text or "") symbol last: user.vscode("gotoNextPreviousMember.previousMember") symbol next: user.vscode("gotoNextPreviousMember.nextMember") # symbol: user.vscode_and_wait("semantic-movement.jumpToContainingSymbol") # funk: user.vscode_and_wait("semantic-movement.jumpToContainingFunction") # named funk: user.vscode_and_wait("semantic-movement.jumpToContainingNamedFunction") # class: user.vscode_and_wait("semantic-movement.jumpToContainingClass") # symbol: user.vscode_and_wait("semantic-movement.selectContainingSymbol") # funk: user.vscode_and_wait("semantic-movement.selectContainingFunction") # named funk: user.vscode_and_wait("semantic-movement.selectContainingNamedFunction") # class: user.vscode_and_wait("semantic-movement.selectContainingClass") # Panels panel control: user.vscode("workbench.panel.repl.view.focus") panel output: user.vscode("workbench.panel.output.focus") panel problems: user.vscode("workbench.panel.markers.view.focus") low dog: user.vscode("workbench.action.togglePanel") panel terminal: user.vscode("workbench.panel.terminal.focus") pan edit: user.vscode("workbench.action.focusActiveEditorGroup") # Settings show settings: user.vscode("workbench.action.openGlobalSettings") show shortcuts: user.vscode("workbench.action.openGlobalKeybindings") show snippets: user.vscode("workbench.action.openSnippets") # Display centered switch: user.vscode("workbench.action.toggleCenteredLayout") fullscreen switch: user.vscode("workbench.action.toggleFullScreen") theme switch: user.vscode("workbench.action.selectTheme") wrap switch: user.vscode("editor.action.toggleWordWrap") zen switch: user.vscode("workbench.action.toggleZenMode") # File Commands dock [] [{user.file_extension}]: user.vscode("workbench.action.quickOpen") sleep(50ms) insert(text or "") insert(file_extension or "") sleep(300ms) dock [] [{user.file_extension}]: user.vscode("workbench.action.quickOpen") sleep(50ms) insert(text or "") insert(file_extension or "") sleep(300ms) key(enter) file copy path: user.vscode("copyFilePath") file create sibling * [] [{user.file_extension}]: user.vscode_and_wait("explorer.newFile") sleep(500ms) user.insert_many(format_text_list or "") user.insert_formatted(user.word or "", "NOOP") insert(file_extension or "") file create: user.vscode("workbench.action.files.newUntitledFile") file rename: user.vscode("fileutils.renameFile") sleep(150ms) file move: user.vscode("fileutils.moveFile") sleep(150ms) file open folder: user.vscode("revealFileInOS") file reveal: user.vscode("workbench.files.action.showActiveFileInExplorer") save ugly: user.vscode("workbench.action.files.saveWithoutFormatting") file clone: user.vscode("fileutils.duplicateFile") sleep(150ms) action(edit.save): key(cmd-s) sleep(50ms) # Language Features suggest show: user.vscode("editor.action.triggerSuggest") hint show: user.vscode("editor.action.triggerParameterHints") def show: user.vscode("editor.action.revealDefinition") definition peek: user.vscode("editor.action.peekDefinition") definition side: user.vscode("editor.action.revealDefinitionAside") references show: user.vscode("editor.action.goToReferences") ref show: user.vscode("references-view.find") format that: user.vscode("editor.action.formatDocument") format selection: user.vscode("editor.action.formatSelection") imports fix: user.vscode("editor.action.organizeImports") problem next: user.vscode("editor.action.marker.nextInFiles") problem last: user.vscode("editor.action.marker.prevInFiles") problem fix: user.vscode("problems.action.showQuickFixes") rename that: user.vscode("editor.action.rename") refactor that: user.vscode("editor.action.refactor") whitespace trim: user.vscode("editor.action.trimTrailingWhitespace") language switch: user.vscode("workbench.action.editor.changeLanguageMode") refactor rename: user.vscode("editor.action.rename") refactor this: user.vscode("editor.action.refactor") ref next: user.vscode("references-view.tree.focus") key(down enter) ref last: user.vscode("references-view.tree.focus") key(up enter) #code navigation ( declaration | follow): user.vscode("editor.action.revealDefinition") spring back: user.vscode("workbench.action.navigateBack") spring forward: user.vscode("workbench.action.navigateForward") implementation: user.vscode("editor.action.goToImplementation") type: user.vscode("editor.action.goToTypeDefinition") usage: user.vscode("references-view.find") # Bookmarks. Requires Bookmarks plugin sesh []: user.vscode("workbench.action.openRecent") sleep(50ms) insert(text or "") sleep(250ms) sesh []: user.vscode("workbench.action.openRecent") sleep(50ms) insert(text or "") key(enter) sleep(250ms) marks: user.vscode("workbench.view.extension.bookmarks") toggle mark: user.vscode("bookmarks.toggle") next mark: user.vscode("bookmarks.jumpToNext") last mark: user.vscode("bookmarks.jumpToPrevious") # Folding fold that: user.vscode("editor.fold") unfold that: user.vscode("editor.unfold") fold those: user.vscode("editor.foldAllMarkerRegions") unfold those: user.vscode("editor.unfoldRecursively") fold all: user.vscode("editor.foldAll") unfold all: user.vscode("editor.unfoldAll") fold comments: user.vscode("editor.foldAllBlockComments") # Git / Github (not using verb-noun-adjective pattern, mirroring terminal commands.) git branch: user.vscode("git.branchFrom") git branch this: user.vscode("git.branch") git checkout []: user.vscode("git.checkout") sleep(50ms) insert(text or "") git commit []: user.vscode("git.commitStaged") sleep(100ms) user.insert_formatted(text or "", "CAPITALIZE_FIRST_WORD") git commit undo: user.vscode("git.undoCommit") git commit ammend: user.vscode("git.commitStagedAmend") git diff: user.vscode("git.openChange") git ignore: user.vscode("git.ignore") git merge: user.vscode("git.merge") git output: user.vscode("git.showOutput") git pull: user.vscode("git.pullRebase") git push: user.vscode("git.push") git push focus: user.vscode("git.pushForce") git rebase abort: user.vscode("git.rebaseAbort") git reveal: user.vscode("git.revealInExplorer") git revert: user.vscode("git.revertChange") git stash: user.vscode("git.stash") git stash pop: user.vscode("git.stashPop") git status: user.vscode("workbench.scm.focus") git stage: user.vscode("git.stage") git stage all: user.vscode("git.stageAll") git unstage: user.vscode("git.unstage") git unstage all: user.vscode("git.unstageAll") pull request: user.vscode("pr.create") change next: key(alt-f5) change last: key(shift-alt-f5) #Debugging break point: user.vscode("editor.debug.action.toggleBreakpoint") step over: user.vscode("workbench.action.debug.stepOver") debug step into: user.vscode("workbench.action.debug.stepInto") debug step out [of]: user.vscode("workbench.action.debug.stepOut") debug start: user.vscode("workbench.action.debug.start") debug pause: user.vscode("workbench.action.debug.pause") debug stopper: user.vscode("workbench.action.debug.stop") debug continue: user.vscode("workbench.action.debug.continue") debug restart: user.vscode("workbench.action.debug.restart") debug console: user.vscode("workbench.debug.action.toggleRepl") # Terminal term external: user.vscode("workbench.action.terminal.openNativeConsole") term new: user.vscode("workbench.action.terminal.new") term next: user.vscode("workbench.action.terminal.focusNext") term last:user.vscode("workbench.action.terminal.focusPrevious") term split: user.vscode("workbench.action.terminal.split") term zoom: user.vscode("workbench.action.toggleMaximizedPanel") term trash: user.vscode("workbench.action.terminal.kill") term dog: user.vscode_and_wait("workbench.action.terminal.toggleTerminal") term scroll up: user.vscode("workbench.action.terminal.scrollUp") term scroll down: user.vscode("workbench.action.terminal.scrollDown") term : user.vscode_terminal(number_small) #TODO: should this be added to linecommands? copy line down: user.vscode("editor.action.copyLinesDownAction") copy line up: user.vscode("editor.action.copyLinesUpAction") #Expand/Shrink AST Selection less: user.vscode("editor.action.smartSelect.shrink") (more|this): user.vscode("editor.action.smartSelect.expand") minimap: user.vscode("editor.action.toggleMinimap") maximize: user.vscode("workbench.action.minimizeOtherEditors") restore: user.vscode("workbench.action.evenEditorWidths") replace here: user.replace("") key(cmd-alt-l) hover show: user.vscode("editor.action.showHover") edit last: user.vscode("editsHistory.moveCursorToPreviousEdit") edit next: user.vscode("editsHistory.moveCursorToNextEdit") edit add: user.vscode("editsHistory.createEditAtCursor") edit last here: user.vscode("editsHistory.moveCursorToPreviousEditInSameFile") edit next here: user.vscode("editsHistory.moveCursorToNextEditInSameFile") join lines: user.vscode("editor.action.joinLines") commode: user.vscode("vscode-neovim.escape") sleep(25ms) insert: key(i) sleep(25ms) replace smart: key(:) sleep(50ms) key(S) key(/) swap this: user.vscode("extension.swap") full screen: user.vscode("workbench.action.toggleFullScreen") reload window: user.vscode("workbench.action.reloadWindow") close window: user.vscode("workbench.action.closeWindow") curse undo: user.vscode("cursorUndo") word: user.vscode("editor.action.addSelectionToNextFindMatch") skip word: user.vscode("editor.action.moveSelectionToNextFindMatch") Github open: user.vscode("openInGithub.openInGitHubFile") stage on: user.vscode_and_wait("git.stage") key(cmd-w) user.vscode_and_wait("workbench.scm.focus") key(down:100) sleep(100ms) key(enter) # jupyter cell next: user.vscode("jupyter.gotoNextCellInFile") cell last: user.vscode("jupyter.gotoPrevCellInFile") cell run above: user.vscode("jupyter.runallcellsabove.palette") cell run: user.vscode("jupyter.runcurrentcell") jest: key(ctrl-space) yes: sleep(100ms) key(tab) install local: user.vscode("workbench.extensions.action.installVSIX")