diff --git a/apps/arc/arc.py b/apps/arc/arc.py index c6327554dd..c89731eb1f 100644 --- a/apps/arc/arc.py +++ b/apps/arc/arc.py @@ -20,6 +20,12 @@ def tab_close_wrapper(): actions.sleep("180ms") actions.app.tab_close() + def command_search(command: str = ""): + actions.key("cmd-l") + if command != "": + actions.sleep("200ms") + actions.insert(command) + @ctx.action_class("browser") class BrowserActions: diff --git a/apps/arc/arc_mac.talon b/apps/arc/arc_mac.talon index ce881590e4..0fa8d5d12d 100644 --- a/apps/arc/arc_mac.talon +++ b/apps/arc/arc_mac.talon @@ -3,8 +3,4 @@ os: mac - tag(): browser tag(): user.tabs - -please []: - key("cmd-l") - sleep(200ms) - insert(user.text or "") +tag(): user.command_search diff --git a/apps/eclipse/eclipse.talon b/apps/eclipse/eclipse.talon index 15c06d55b8..f399510d2b 100644 --- a/apps/eclipse/eclipse.talon +++ b/apps/eclipse/eclipse.talon @@ -6,12 +6,9 @@ tag(): user.line_commands # tag(): user.multiple_cursors tag(): user.splits tag(): user.tabs +tag(): user.command_search # splits.py support end -please []: - key(ctrl-3) - insert(user.text or "") - # Sidebar bar explore: key(alt-shift-w p) # bar extensions: diff --git a/apps/eclipse/eclipse_win.py b/apps/eclipse/eclipse_win.py index cce8a0c208..3346fa0f30 100644 --- a/apps/eclipse/eclipse_win.py +++ b/apps/eclipse/eclipse_win.py @@ -110,6 +110,11 @@ def split_window_vertically(): def split_window(): actions.key("alt-ctrl-s s") + def command_search(command: str = ""): + actions.key("ctrl-3") + if command != "": + actions.insert(command) + # splits.py support end # find_and_replace.py support begin diff --git a/apps/jetbrains/jetbrains.py b/apps/jetbrains/jetbrains.py index 46574cd5c9..f59aaae8ea 100644 --- a/apps/jetbrains/jetbrains.py +++ b/apps/jetbrains/jetbrains.py @@ -298,7 +298,7 @@ def select_range(line_start: int, line_end: int): # if it's a single line, select the entire thing including the ending new-line5 if line_start == line_end: actions.user.idea(f"goto {line_start} 0") - actions.user.idea("action EditorSelectLine"), + actions.user.idea("action EditorSelectLine") else: actions.user.idea(f"range {line_start} {line_end}") @@ -314,6 +314,11 @@ def camel_left(): def camel_right(): actions.user.idea("action EditorNextWordInDifferentHumpsMode") + def command_search(command: str = ""): + actions.user.idea("action GotoAction") + if command != "": + actions.insert(command) + def line_clone(line: int): actions.user.idea(f"clone {line}") diff --git a/apps/jetbrains/jetbrains.talon b/apps/jetbrains/jetbrains.talon index ea5735dc4e..fce2bb309a 100644 --- a/apps/jetbrains/jetbrains.talon +++ b/apps/jetbrains/jetbrains.talon @@ -5,6 +5,7 @@ tag(): user.line_commands tag(): user.multiple_cursors tag(): user.splits tag(): user.tabs +tag(): user.command_search # multiple_cursors.py support end # Auto complete @@ -14,11 +15,7 @@ smart: user.idea("action SmartTypeCompletion") (done | finish): user.idea("action EditorCompleteStatement") # Copying grab : user.idea_grab(number) -# Actions -(action | please): user.idea("action GotoAction") -(action | please) : - user.idea("action GotoAction") - insert(text) +action []: user.deprecate_command("2024-09-02", "action", "please") # Refactoring refactor: user.idea("action Refactorings.QuickListPopupAction") refactor : diff --git a/apps/vivaldi/vivaldi.py b/apps/vivaldi/vivaldi.py index df95fcdf68..16cd7163c0 100644 --- a/apps/vivaldi/vivaldi.py +++ b/apps/vivaldi/vivaldi.py @@ -26,9 +26,7 @@ def vivaldi_history_panel(): def vivaldi_bookmarks_panel(): """Toggles the Vivaldi bookmarks panel""" - actions.user.vivaldi_toggle_quick_commands() - actions.sleep("180ms") - actions.insert("Bookmarks Panel") + actions.user.command_search("Bookmarks Panel") actions.key("enter") def vivaldi_downloads_panel(): @@ -39,10 +37,6 @@ def vivaldi_notes_panel(): """Toggles the Vivaldi notes panel""" actions.key("ctrl-shift-o") - def vivaldi_toggle_quick_commands(): - """Toggles the Vivaldi Quick Commands tool""" - actions.key("ctrl-e") - @ctx.action_class("user") class UserActions: @@ -53,6 +47,12 @@ def tab_close_wrapper(): def tab_jump(number: int): actions.key(f"ctrl-{number}") + def command_search(command: str = ""): + actions.key("ctrl-e") + if command != "": + actions.sleep("180ms") + actions.insert(command) + @ctx.action_class("browser") class BrowserActions: diff --git a/apps/vivaldi/vivaldi.talon b/apps/vivaldi/vivaldi.talon index 978e71e74c..aad291626e 100644 --- a/apps/vivaldi/vivaldi.talon +++ b/apps/vivaldi/vivaldi.talon @@ -2,13 +2,9 @@ app: vivaldi - tag(): browser tag(): user.tabs +tag(): user.command_search (sidebar | panel) history: user.vivaldi_history_panel() (sidebar | panel) downloads: user.vivaldi_downloads_panel() (sidebar | panel) bookmarks: user.vivaldi_bookmarks_panel() (sidebar | panel) notes: user.vivaldi_notes_panel() - -please []: - user.vivaldi_toggle_quick_commands() - sleep(180ms) - insert(user.text or "") diff --git a/apps/vscode/vscode.py b/apps/vscode/vscode.py index 929c8bd499..3d9b612051 100644 --- a/apps/vscode/vscode.py +++ b/apps/vscode/vscode.py @@ -254,6 +254,11 @@ def multi_cursor_select_more_occurrences(): def multi_cursor_skip_occurrence(): actions.user.vscode("editor.action.moveSelectionToNextFindMatch") + def command_search(command: str = ""): + actions.user.vscode("workbench.action.showCommands") + if command != "": + actions.insert(command) + def tab_jump(number: int): if number < 10: if is_mac: diff --git a/apps/vscode/vscode.talon b/apps/vscode/vscode.talon index 275398d0e4..45aabaefc4 100644 --- a/apps/vscode/vscode.talon +++ b/apps/vscode/vscode.talon @@ -6,14 +6,12 @@ tag(): user.line_commands tag(): user.multiple_cursors tag(): user.splits tag(): user.tabs +tag(): user.command_search + window reload: user.vscode("workbench.action.reloadWindow") window close: user.vscode("workbench.action.closeWindow") #multiple_cursor.py support end -please []: - user.vscode("workbench.action.showCommands") - insert(user.text or "") - go view []: user.vscode("workbench.action.openView") insert(user.text or "") diff --git a/tags/command_search/command_search.py b/tags/command_search/command_search.py new file mode 100644 index 0000000000..9d4cb88574 --- /dev/null +++ b/tags/command_search/command_search.py @@ -0,0 +1,13 @@ +from talon import Module + +mod = Module() +mod.tag( + "command_search", + desc="A command for running an arbitrary command based on a search", +) + + +@mod.action_class +class command_search_actions: + def command_search(command: str = ""): + """Searches for command based on text""" diff --git a/tags/command_search/command_search.talon b/tags/command_search/command_search.talon new file mode 100644 index 0000000000..9a51a9a841 --- /dev/null +++ b/tags/command_search/command_search.talon @@ -0,0 +1,3 @@ +tag: user.command_search +- +^please []$: user.command_search(user.text or "")