from user.pokey_talon.code.terms import SELECT, TELEPORT, DELETE, FIND from talon import Context, actions, ui, Module, app, clip mod = Module() ctx = Context() ctx.matches = r""" app: vscode """ # TODO A lot of these could be supported by supporting a proper "pop back" # Would basically use the same logic that is used for updating token ranges mod.list("simple_cursorless_action", desc="Supported actions for cursorless navigation") ctx.lists["self.simple_cursorless_action"] = { # Accepts any single extent "spring": "setSelection", SELECT: "setSelection", "pree": "setSelectionBefore", "post": "setSelectionAfter", DELETE: "delete", "clear": "clear", # "sort": "sortLines", # "join": "joinLines", # "float": "insertEmptyLineBelow", # "drop": "insertEmptyLineBelow", # Sort children?? (would need to sort only named ones to avoid commas) # Reverse children # "cut": "cut", # "copy": "copy", # FIND: "findInFile", # f"{FIND} last": "findBackwardsInFile", # f"{FIND} all": "findAll", # "fold": "fold", # "stack": "addCursorAt", # "cursor all": "addCursorToAllLines", # "remove cursor": "removeCursor", # "tab": "indent", # "retab": "dedent", # "comment": "comment", # "github open": "openInGithub", # "smear": "cloneLineDown", # # Accepts only single token # "rename": "rename", # "ref show": "showReferences", # "def show": "showDefinition", # "hover show": "showHover", # "act up": "scrollToTop", # "act eat": "scrollToMid", # "act down": "scrollToBottom", # "breakpoint": "addBreakPoint", # # Accepts position # "paste": "paste", } { # Require 2 extents of any kind, but prob best to assume second extend is # same type as first, and need to explicitly say "token" if you want to use # a token for the second one if the first is not # Note: these should actually be of the form "swap with" "swap": "swap", # Require 1 extent of any kind and 1 position, but prob best to assume # the position is same type as extent, and need to explicitly say "token" # if you want to use a token for the second one if the first is not "use": "use", # Require 1 extent of any kind, and 1 format string (eg "camel foo bar", # "phrase hello world" etc, "spell air bat cap") # Note: these should actually be of the form "replace with" # Could also except a second extent, and that would replace it with that # extent "replace with": "replaceWith", # Require 1 extent of any kind, and 1 format type (eg camel, uppercase, # phrase etc) # Note: these should actually be of the form "reformat as" "reformat as": "reformatAs", } "" "phones"