From e587dd0d2d8a86a35487d828ba4ad5c7abc9742d Mon Sep 17 00:00:00 2001 From: Jacques Favreau Date: Mon, 20 Nov 2017 16:02:20 -0800 Subject: [PATCH 1/2] Add vscode fixup for vscode --- caster/apps/vscode.py | 97 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 caster/apps/vscode.py diff --git a/caster/apps/vscode.py b/caster/apps/vscode.py new file mode 100644 index 000000000..35157b858 --- /dev/null +++ b/caster/apps/vscode.py @@ -0,0 +1,97 @@ +from dragonfly import (Grammar, AppContext, Dictation, Key, Text, Repeat, Function) + +from caster.lib import control +from caster.lib import settings +from caster.lib.dfplus.additions import IntegerRefST +from caster.lib.dfplus.merge import gfilter +from caster.lib.dfplus.merge.mergerule import MergeRule +from caster.lib.dfplus.state.short import R + +def findNthToken(text, n, direction): + Key("c-f").execute() + Text("%(text)s").execute({"text": text}) + if direction == "reverse": + print("yeah? %(n)d") + Key("s-enter:%(n)d").execute() + else: + Key("enter:%(n)d").execute() + print("no? %(n)d") + Key('escape').execute() + +class VisualStudioCodeRule(MergeRule): + pronunciation = "visual studio code" + + mapping = { + ### ported from my dragonfly scripts + # File management + "[open] command palette": R(Key("cs-p"), rdescript="Visual Studio Code: Command Palette"), + "(Open [file] | Go to [tab]) []": R(Key("c-p") + Text("%(text)s"), rdescript="Visual Studio Code: Go To File"), + "Close tab": R(Key("c-w"), rdescript="Visual Studio Code: Close Tab"), + "Save file": R(Key("c-s"), rdescript="Visual Studio Code: Save File"), + "Save and close": R(Key("c-s/10, c-w"), rdescript="Visual Studio Code: Save And Close File"), + + # Search + "(search | find in) [all] (files | codebase)": R(Key("cs-f"), rdescript="Visual Studio Code: Find in Codebase"), + "(search | find) [file]": R(Key("c-f"), rdescript="Visual Studio Code: Find in File"), + "(Find | Jump [to]) next ": R(Function(findNthToken, n=1, direction="forward"), rdescript="Visual Studio Code: Find Next"), + "(Find | Jump [to]) previous ": R(Function(findNthToken, n=1, direction="reverse"), rdescript="Visual Studio Code: Find Previous"), + + # Tab management + "nexta []": R(Key("c-pgdown"), rdescript="Visual Studio Code: Next Tab") * Repeat(extra="n"), # These would be next and previous tab but i have a conflict with chrome + "prexta []": R(Key("c-pgup"), rdescript="Visual Studio Code: Previous Tab") * Repeat(extra="n"), + "Close tab": R(Key("c-f4"), rdescript="Visual Studio Code: Close Tab"), + "Exit preview": R(Key("space, c-z"), rdescript="Visual Studio Code: Exit Preview"), + + # moving around a file + "(go to | jump | jump to) line ": R(Key("c-g") + Text("%(n)d") + Key("enter"), rdescript="Visual Studio Code: Go to Line"), + "Go to definition": R(Key("f12"), rdescript="Visual Studio Code: Go to Definition"), + "Go to required definition": R(Key("c-f12:2, c-right:5, left/50, f12"), rdescript="Visual Studio Code: Go to Required Definition"), + "Go to (top | first line)": R(Key("c-home"), rdescript="Visual Studio Code: Go to Top"), + "Go to ( bottom | last line)": R(Key("c-end"), rdescript="Visual Studio Code: Go to Bottom"), + "ee-ol": R(Key("end"), rdescript="Visual Studio Code: End Of Line"), + "beol": R(Key("home"), rdescript="Visual Studio Code: Beginning of Line"), + "Go back []": R(Key("a-left"), rdescript="Visual Studio Code: Go Back") * Repeat(extra="n"), + "Go forward []": R(Key("a-right"), rdescript="Visual Studio Code: Go Forward") * Repeat(extra="n"), + + # Formatting + "indent []": R(Key("tab"), rdescript="Visual Studio Code: Indent") * Repeat(extra="n"), + "Unindent []": R(Key("s-tab"), rdescript="Visual Studio Code: Unindent") * Repeat(extra="n"), + "Comment": R(Key("c-slash"), rdescript="Visual Studio Code: Line Comment"), + "Block comment": R(Key("sa-a"), rdescript="Visual Studio Code: Block Comment"), + + # Window Management + "[toggle] full screen": R(Key("f11"), rdescript="Visual Studio Code:Fullscreen"), + "[toggle] Zen mode": R(Key("c-k/3, z")), + + + # Debugging + "[toggle] breakpoint": R(Key("f9"), rdescript="Visual Studio Code:Breakpoint"), + "step over []": R(Key("f10/50") * Repeat(extra="n"), rdescript="Visual Studio Code:Step Over"), + "step into": R(Key("f11"), rdescript="Visual Studio Code:Step Into"), + "step out [of]": R(Key("s-f11"), rdescript="Visual Studio Code:Step Out"), + "resume": R(Key("f5"), rdescript="Visual Studio Code:Resume"), + } + extras = [ + Dictation("text"), + Dictation("mim"), + IntegerRefST("n", 1, 1000), + + ] + defaults = { + "n": 1, + "mim":"", + "text": "" + } + +#--------------------------------------------------------------------------- + +context = AppContext(executable="code") +grammar = Grammar("Visual Studio Code", context=context) +if settings.SETTINGS["apps"]["visualstudiocode"]: + if settings.SETTINGS["miscellaneous"]["rdp_mode"]: + control.nexus().merger.add_global_rule(VisualStudioCodeRule()) + else: + rule = VisualStudioCodeRule(name="visualstudiocode") + gfilter.run_on(rule) + grammar.add_rule(rule) + grammar.load() \ No newline at end of file From c6ad78390804efbfcedff0b93a93036de029138d Mon Sep 17 00:00:00 2001 From: Jacques Favreau Date: Mon, 20 Nov 2017 16:02:46 -0800 Subject: [PATCH 2/2] modify javascript rules --- caster/lib/ccr/javascript/javascript.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/caster/lib/ccr/javascript/javascript.py b/caster/lib/ccr/javascript/javascript.py index 80e8a2d4b..6492c26be 100644 --- a/caster/lib/ccr/javascript/javascript.py +++ b/caster/lib/ccr/javascript/javascript.py @@ -60,12 +60,9 @@ class Javascript(MergeRule): # JavaScript specific - "anon funk": R(Text("function () {}") + Key("left:1, enter") - + SelectiveAction(Key("enter, up"), ["AptanaStudio3.exe"]), - rdescript="Javascript: Anonymous Function"), + "anon funk": R(Text("() => {}") + Key("left:1, enter"), rdescript="Javascript: Anonymous Function"), "timer": R(Text("setInterval()") + Key("left"), rdescript="Javascript: Timer"), "timeout": R(Text("setTimeout()") + Key("left"), rdescript="Javascript: Timeout"), - "sue iffae": R(Text("if()") + Key("left"), rdescript="Javascript: Short If"), "document": R(Text("document"), rdescript="Javascript: Document"), "index of": R(Text("indexOf()") + Key("left"), rdescript="Javascript: Index Of"), "has own property": R(Text("hasOwnProperty()") + Key("left"), rdescript="Javascript: Has Own Property"), @@ -83,10 +80,10 @@ class Javascript(MergeRule): "throw": R(Text("throw "), rdescript="Javascript: Throw"), "instance of": R(Text("instanceof "), rdescript="Javascript: Instance Of"), - "(far | variable)": R(Text("var "), rdescript="Javascript: Variable"), - "sue iffae": R(Text("if ()") + Key("left"), rdescript="Javascript: Short If"), - "sue shells": R(Text("else") + Key("enter"), rdescript="Javascript: Short Else"), - + "var": R(Text("var "), rdescript="Javascript: Var"), + "const": R(Text("const"), rdescript=" JavaScript: Const"), + "Let": R(Text("let"), rdescript=" JavaScript: Let"), + "shell iffae": R(Text("else if ()") + Key("left"), rdescript="Javascript: Else If"), }