dotfiles/talon/community/community-cursorless-0.4.0/apps/vscode/vscode.talon
2024-11-16 20:27:38 -07:00

387 lines
No EOL
14 KiB
Text

#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)
<user.delete> 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")
<user.teleport> last: user.vscode("workbench.action.openPreviousRecentlyUsedEditorInGroup")
<user.teleport> 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.text>]:
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.text>]:
user.vscode("workbench.action.gotoSymbol")
sleep(50ms)
insert(text or "")
symbol last: user.vscode("gotoNextPreviousMember.previousMember")
symbol next: user.vscode("gotoNextPreviousMember.nextMember")
# <user.teleport> symbol: user.vscode_and_wait("semantic-movement.jumpToContainingSymbol")
# <user.teleport> funk: user.vscode_and_wait("semantic-movement.jumpToContainingFunction")
# <user.teleport> named funk: user.vscode_and_wait("semantic-movement.jumpToContainingNamedFunction")
# <user.teleport> class: user.vscode_and_wait("semantic-movement.jumpToContainingClass")
# <user.select> symbol: user.vscode_and_wait("semantic-movement.selectContainingSymbol")
# <user.select> funk: user.vscode_and_wait("semantic-movement.selectContainingFunction")
# <user.select> named funk: user.vscode_and_wait("semantic-movement.selectContainingNamedFunction")
# <user.select> 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
<user.find> dock [<user.text>] [{user.file_extension}]:
user.vscode("workbench.action.quickOpen")
sleep(50ms)
insert(text or "")
insert(file_extension or "")
sleep(300ms)
<user.teleport> dock [<user.text>] [{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.format_text>* [<user.word>] [{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
(<user.teleport> declaration | follow):
user.vscode("editor.action.revealDefinition")
spring back:
user.vscode("workbench.action.navigateBack")
spring forward: user.vscode("workbench.action.navigateForward")
<user.teleport> implementation:
user.vscode("editor.action.goToImplementation")
<user.teleport> type:
user.vscode("editor.action.goToTypeDefinition")
<user.teleport> usage:
user.vscode("references-view.find")
# Bookmarks. Requires Bookmarks plugin
<user.find> sesh [<user.text>]:
user.vscode("workbench.action.openRecent")
sleep(50ms)
insert(text or "")
sleep(250ms)
<user.teleport> sesh [<user.text>]:
user.vscode("workbench.action.openRecent")
sleep(50ms)
insert(text or "")
key(enter)
sleep(250ms)
<user.teleport> marks: user.vscode("workbench.view.extension.bookmarks")
toggle mark: user.vscode("bookmarks.toggle")
<user.teleport> next mark: user.vscode("bookmarks.jumpToNext")
<user.teleport> 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.text>]:
user.vscode("git.checkout")
sleep(50ms)
insert(text or "")
git commit [<user.text>]:
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 <number_small>: 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
<user.select> less: user.vscode("editor.action.smartSelect.shrink")
<user.select> (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")
<user.select> 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")