class NavigationNon(MappingRule): mapping = { "<direction> <time_in_seconds>": AsynchronousAction( [L(S(["cancel"], Key("%(direction)s"), consume=False))], repetitions=1000, blocking=False), "erase multi clipboard": R(Function(navigation.erase_multi_clipboard, nexus=_NEXUS), rdescript="Erase Multi Clipboard"), "find": R(Key("c-f"), rdescript="Find"), "find next [<n>]": R(Key("f3"), rdescript="Find Next") * Repeat(extra="n"), "find prior [<n>]": R(Key("s-f3"), rdescript="Find Prior") * Repeat(extra="n"), "find everywhere": R(Key("cs-f"), rdescript="Find Everywhere"), "replace": R(Key("c-h"), rdescript="Replace"), "(F to | F2)": R(Key("f2"), rdescript="Key: F2"), "(F six | F6)": R(Key("f6"), rdescript="Key: F6"), "(F nine | F9)": R(Key("f9"), rdescript="Key: F9"), "[show] context menu": R(Key("s-f10"), rdescript="Context Menu"), 'kick': R(Function(navigation.kick, nexus=_NEXUS), rdescript="Mouse: Left Click"), 'kick mid': R(Function(navigation.kick_middle, nexus=_NEXUS), rdescript="Mouse: Middle Click"), 'psychic': R(Function(navigation.kick_right, nexus=_NEXUS), rdescript="Mouse: Right Click"), '(kick double|double kick)': R(Function(navigation.kick, nexus=_NEXUS) * Repeat(2), rdescript="Mouse: Double Click"), "shift right click": R(Key("shift:down") + Mouse("right") + Key("shift:up"), rdescript="Mouse: Shift + Right Click"), "curse <direction> [<direction2>] [<nnavi500>] [<dokick>]": R(Function(navigation.curse), rdescript="Curse"), "scree <direction> [<nnavi500>]": R(Function(navigation.wheel_scroll), rdescript="Wheel Scroll"), "colic": R(Key("control:down") + Mouse("left") + Key("control:up"), rdescript="Mouse: Ctrl + Left Click"), "garb [<nnavi500>]": R(Mouse("left") + Mouse("left") + Key("c-c") + Function(navigation.clipboard_to_file, nexus=_NEXUS), rdescript="Highlight @ Mouse + Copy"), "drop [<nnavi500>]": R(Mouse("left") + Mouse("left") + Function(navigation.drop, nexus=_NEXUS), rdescript="Highlight @ Mouse + Paste"), "sure stoosh": R(Key("c-c"), rdescript="Simple Copy"), "sure cut": R(Key("c-x"), rdescript="Simple Cut"), "sure spark": R(Key("c-v"), rdescript="Simple Paste"), "undo [<n>]": R(Key("c-z"), rdescript="Undo") * Repeat(extra="n"), "redo [<n>]": R(Key("c-y"), rdescript="Redo") * Repeat(extra="n"), "refresh": R(Key("c-r"), rdescript="Refresh"), "maxiwin": R(Key("w-up"), rdescript="Maximize Window"), "move window": R(Key("a-space, r, a-space, m"), rdescript="Move Window"), "window (left | lease) [<n>]": R(Key("w-left"), rdescript="Window Left") * Repeat(extra="n"), "window (right | ross) [<n>]": R(Key("w-right"), rdescript="Window Right") * Repeat(extra="n"), "monitor (left | lease) [<n>]": R(Key("sw-left"), rdescript="Monitor Left") * Repeat(extra="n"), "monitor (right | ross) [<n>]": R(Key("sw-right"), rdescript="Monitor Right") * Repeat(extra="n"), "(next | prior) window": R(Key("ca-tab, enter"), rdescript="Next Window"), "switch (window | windows)": R(Key("ca-tab"), rdescript="Switch Window") * Repeat(extra="n"), "next tab [<n>]": R(Key("c-pgdown"), rdescript="Next Tab") * Repeat(extra="n"), "prior tab [<n>]": R(Key("c-pgup"), rdescript="Previous Tab") * Repeat(extra="n"), "close tab [<n>]": R(Key("c-w/20"), rdescript="Close Tab") * Repeat(extra="n"), "elite translation <text>": R(Function(alphanumeric.elite_text), rdescript="1337 Text"), } extras = [ Dictation("text"), Dictation("mim"), IntegerRefST("n", 1, 50), IntegerRefST("nnavi500", 1, 500), Choice( "time_in_seconds", { "super slow": 5, "slow": 2, "normal": 0.6, "fast": 0.1, "superfast": 0.05 }), navigation.get_direction_choice("direction"), navigation.get_direction_choice("direction2"), navigation.TARGET_CHOICE, Choice("dokick", { "kick": 1, "psychic": 2 }), Choice("wm", { "ex": 1, "tie": 2 }), ] defaults = { "n": 1, "mim": "", "nnavi500": 1, "direction2": "", "dokick": 0, "text": "", "wm": 2 }
class Navigation(MergeRule): non = NavigationNon pronunciation = CCRMerger.CORE[1] mapping = { # "periodic" repeats whatever comes next at 1-second intervals until "cancel" is spoken or 100 tries occur "periodic": ContextSeeker(forward=[L(S(["cancel"], lambda: None), \ S(["*"], \ lambda fnparams: UntilCancelled(Mimic(*filter(lambda s: s != "periodic", fnparams)), 1).execute(), \ use_spoken=True))]), # VoiceCoder-inspired -- these should be done at the IDE level "fill <target>": R(Key("escape, escape, end"), show=False) + AsynchronousAction([L(S(["cancel"], Function(context.fill_within_line, nexus=_NEXUS))) ], time_in_seconds=0.2, repetitions=50, rdescript="Fill" ), "jump in": AsynchronousAction([L(S(["cancel"], context.nav, ["right", "(~[~{~<"])) ], time_in_seconds=0.1, repetitions=50, rdescript="Jump: In" ), "jump out": AsynchronousAction([L(S(["cancel"], context.nav, ["right", ")~]~}~>"])) ], time_in_seconds=0.1, repetitions=50, rdescript="Jump: Out" ), "jump back": AsynchronousAction([L(S(["cancel"], context.nav, ["left", "(~[~{~<"])) ], time_in_seconds=0.1, repetitions=50, rdescript="Jump: Back" ), "jump back in": AsynchronousAction([L(S(["cancel"], context.nav, ["left", "(~[~{~<"])) ], finisher=Key("right"), time_in_seconds=0.1, repetitions=50, rdescript="Jump: Back In" ), # keyboard shortcuts 'save': R(Key("c-s"), rspec="save", rdescript="Save"), 'shock [<nnavi50>]': R(Key("enter"), rspec="shock", rdescript="Enter")* Repeat(extra="nnavi50"), "(<mtn_dir> | <mtn_mode> [<mtn_dir>]) [(<nnavi500> | <extreme>)]": R(Function(textformat.master_text_nav), rdescript="Keyboard Text Navigation"), "stoosh [<nnavi500>]": R(Key("c-c")+Function(navigation.clipboard_to_file, nexus=_NEXUS), rspec="stoosh", rdescript="Copy"), "cut [<nnavi500>]": R(Key("c-x")+Function(navigation.clipboard_to_file, nexus=_NEXUS), rspec="cut", rdescript="Cut"), "spark [<nnavi500>]": R(Function(navigation.drop, nexus=_NEXUS), rspec="spark", rdescript="Paste"), "deli [<nnavi50>]": R(Key("del/5"), rspec="deli", rdescript="Delete") * Repeat(extra="nnavi50"), "clear [<nnavi50>]": R(Key("backspace/5:%(nnavi50)d"), rspec="clear", rdescript="Backspace"), SymbolSpecs.CANCEL: R(Key("escape"), rspec="cancel", rdescript="Cancel Action"), "shackle": R(Key("home/5, s-end"), rspec="shackle", rdescript="Select Line"), "(tell | tau) <semi>": R(Function(navigation.next_line), rspec="tell dock", rdescript="Complete Line"), "duple [<nnavi50>]": R(Key("escape, home, s-end, c-c, end, enter, c-v"), rspec="duple", rdescript="Duplicate Line") * Repeat(extra="nnavi50"), "Kraken": R(Key("c-space"), rspec="Kraken", rdescript="Control Space"), # text formatting "set format (<capitalization> <spacing> | <capitalization> | <spacing>) (bow|bowel)": R(Function(textformat.set_text_format), rdescript="Set Text Format"), "clear caster formatting": R(Function(textformat.clear_text_format), rdescript="Clear Caster Formatting"), "peek format": R(Function(textformat.peek_text_format), rdescript="Peek Format"), "(<capitalization> <spacing> | <capitalization> | <spacing>) (bow|bowel) <textnv> [brunt]": R(Function(textformat.master_format_text), rdescript="Text Format"), "format <textnv>": R(Function(textformat.prior_text_format), rdescript="Last Text Format"), "<word_limit> format <textnv>": R(Function(textformat.partial_format_text), rdescript="Partial Text Format"), "dredge": R(Key("a-tab"), rdescript="Alt-Tab"), } extras = [ IntegerRefST("nnavi50", 1, 50), IntegerRefST("nnavi500", 1, 500), Dictation("textnv"), Choice("capitalization", { "yell": 1, "tie": 2, "Gerrish": 3, "sing": 4, "laws": 5 }), Choice("spacing", { "gum": 1, "gun": 1, "spine": 2, "snake": 3 }), Choice("semi", { "dock": ";", "doc": ";", "sink": "" }), Choice("word_limit", { "single": 1, "double": 2, "triple": 3, "Quadra": 4 }), navigation.TARGET_CHOICE, navigation.get_direction_choice("mtn_dir"), Choice("mtn_mode", { "shin": "s", "queue": "cs", "fly": "c", }), Choice("extreme", { "Wally": "way", }), ] defaults = { "nnavi500": 1, "nnavi50": 1, "textnv": "", "capitalization": 0, "spacing": 0, "mtn_mode": None, "mtn_dir": "right", "extreme": None }
class NavigationNon(MappingRule): mapping = { # "<direction> <time_in_seconds>": # AsynchronousAction( # [L(S(["cancel"], Key("%(direction)s"), consume=False))], # repetitions=1000, # blocking=False), "erase multi clipboard": R(Function(navigation.erase_multi_clipboard, nexus=_NEXUS), rdescript="Erase Multi Clipboard"), "find": R(Key("c-f"), rdescript="Find"), "find next [<n>]": R(Key("f3"), rdescript="Find Next") * Repeat(extra="n"), "find prior [<n>]": R(Key("s-f3"), rdescript="Find Prior") * Repeat(extra="n"), "find everywhere": R(Key("cs-f"), rdescript="Find Everywhere"), "replace": R(Key("c-h"), rdescript="Replace"), "(F to | F2)": R(Key("f2"), rdescript="Key: F2"), "(F six | F6)": R(Key("f6"), rdescript="Key: F6"), "(F nine | F9)": R(Key("f9"), rdescript="Key: F9"), "[show] context menu": R(Key("s-f10"), rdescript="Context Menu"), "squat": R(Mouse("left:down"), rdescript="Mouse: Left Down"), "bench": R(Mouse("left:up"), rdescript="Mouse: Left Down"), "kick": R(Playback([(["mouse", "click"], 0.0)])), "kick mid": R(Function(navigation.middle_click, nexus=_NEXUS), rdescript="Mouse: Middle Click"), "psychic": R(Function(navigation.right_click, nexus=_NEXUS), rdescript="Mouse: Right Click"), "(kick double|double kick)": R(Function(navigation.left_click, nexus=_NEXUS) * Repeat(2), rdescript="Mouse: Double Click"), "shift right click": R(Key("shift:down") + Mouse("right") + Key("shift:up"), rdescript="Mouse: Shift + Right Click"), "curse <direction> [<direction2>] [<nnavi500>] [<dokick>]": R(Function(navigation.curse), rdescript="Curse"), "scree <direction> [<nnavi500>]": R(Function(navigation.wheel_scroll), rdescript="Wheel Scroll"), "colic": R(Key("control:down") + Mouse("left") + Key("control:up"), rdescript="Mouse: Ctrl + Left Click"), # "garb [<nnavi500>]": # R(Mouse("left") + Mouse("left") + Function( # navigation.stoosh_keep_clipboard, nexus=_NEXUS), # rdescript="Highlight @ Mouse + Copy"), # "drop [<nnavi500>]": # R(Mouse("left") + Mouse("left") + Function( # navigation.drop_keep_clipboard, nexus=_NEXUS, capitalization=0, spacing=0), # rdescript="Highlight @ Mouse + Paste"), "sure stoosh": R(Key("c-c"), rdescript="Simple Copy"), "sure cut": R(Key("c-x"), rdescript="Simple Cut"), "sure spark": R(Key("c-v"), rdescript="Simple Paste"), "undo [<n>]": R(Key("c-z"), rdescript="Undo") * Repeat(extra="n"), "redo [<n>]": R(Key("c-y"), rdescript="Redo") * Repeat(extra="n"), "refresh": R(Key("c-r"), rdescript="Refresh"), # "maxiwin": # R(Key("w-up"), rdescript="Maximize Window"), "move window": R(Key("a-space, r, a-space, m"), rdescript="Move Window"), "window <direction> [<direction2>]": R(Key("win:down, %(direction)s/15, %(direction2)s, win:up"), rdescript="Window adjustment"), # Window Management 'minimize': Playback([(["minimize", "window"], 0.0)]), 'maximize': Playback([(["maximize", "window"], 0.0)]), "remax": R(Key("a-space/10,r/10,a-space/10,x"), rdescript="Force Maximize"), "monitor (left | lease) [<n>]": R(Key("sw-left"), rdescript="Monitor Left") * Repeat(extra="n"), "monitor (right | ross) [<n>]": R(Key("sw-right"), rdescript="Monitor Right") * Repeat(extra="n"), "(next | prior) window": R(Key("ca-tab, enter"), rdescript="Next Window"), "switch (window | windows)": R(Key("ca-tab"), rdescript="Switch Window") * Repeat(extra="n"), "next tab [<n>]": R(Key("c-pgdown"), rdescript="Next Tab") * Repeat(extra="n"), "prior tab [<n>]": R(Key("c-pgup"), rdescript="Previous Tab") * Repeat(extra="n"), "close tab [<n>]": R(Key("c-w/20"), rdescript="Close Tab") * Repeat(extra="n"), } extras = [ Dictation("text"), Dictation("mim"), IntegerRefST("n", 1, 50), IntegerRefST("nnavi500", 1, 500), Choice( "time_in_seconds", { "super slow": 5, "slow": 2, "normal": 0.6, "fast": 0.1, "superfast": 0.05 }), navigation.get_direction_choice("direction"), navigation.get_direction_choice("direction2"), navigation.TARGET_CHOICE, Choice("dokick", { "kick": 1, "psychic": 2 }), Choice("wm", { "ex": 1, "tie": 2 }), ] defaults = { "n": 1, "mim": "", "nnavi500": 1, "direction2": "", "dokick": 0, "text": "", "wm": 2 }
class Navigation(MergeRule): non = NavigationNon pronunciation = CCRMerger.CORE[1] mapping = { # "periodic" repeats whatever comes next at 1-second intervals until "cancel" is spoken or 100 tries occur "periodic": ContextSeeker(forward=[L(S(["cancel"], lambda: None), \ S(["*"], \ lambda fnparams: UntilCancelled(Mimic(*filter(lambda s: s != "periodic", fnparams)), 1).execute(), \ use_spoken=True))]), # VoiceCoder-inspired -- these should be done at the IDE level "fill <target>": R(Key("escape, escape, end"), show=False) + AsynchronousAction([L(S(["cancel"], Function(context.fill_within_line, nexus=_NEXUS))) ], time_in_seconds=0.2, repetitions=50, rdescript="Fill" ), "jump in": AsynchronousAction([L(S(["cancel"], context.nav, ["right", "(~[~{~<"])) ], time_in_seconds=0.1, repetitions=50, rdescript="Jump: In" ), "jump out": AsynchronousAction([L(S(["cancel"], context.nav, ["right", ")~]~}~>"])) ], time_in_seconds=0.1, repetitions=50, rdescript="Jump: Out" ), "jump back": AsynchronousAction([L(S(["cancel"], context.nav, ["left", "(~[~{~<"])) ], time_in_seconds=0.1, repetitions=50, rdescript="Jump: Back" ), "jump back in": AsynchronousAction([L(S(["cancel"], context.nav, ["left", "(~[~{~<"])) ], finisher=Key("right"), time_in_seconds=0.1, repetitions=50, rdescript="Jump: Back In" ), # keyboard shortcuts 'salve': R(Key("c-s"), rspec="save", rdescript="Save"), 'slap [<nnavi50>]': R(Key("enter"), rspec="slap", rdescript="Enter")* Repeat(extra="nnavi50"), 'slap up': R(Key("escape, up, end, enter"), rspec="slap up", rdescript="Line Above"), 'slap down': R(Key("escape, end, enter"), rspec="slap down", rdescript="Line Below"), 'curslap': R(Key("escape, lbrace, rbrace, left, enter"), rspec="curslap", rdescript="Curly New Line"), 'north': R(Key("c-home"), rspec="north", rdescript="Ctrl Home"), 'south': R(Key("c-end"), rspec="south", rdescript="Ctrl End"), 'east': R(Key("end"), rspec="east", rdescript="End"), 'west': R(Key("home"), rspec="west", rdescript="Home"), 'page up': R(Key("pgup"), rspec="page up", rdescript="Page Up"), 'page down': R(Key("pgdown"), rspec="page down", rdescript="Page Down"), "(<mtn_dir> | <mtn_mode> [<mtn_dir>]) [(<nnavi500> | <extreme>)]": R(Function(textformat.master_text_nav), rdescript="Keyboard Text Navigation"), "<short_mode> <key> [<nnavi500>]": R(Function(textformat.master_short), rdescript="Keyboard Shortcut"), "<short_mode> <mouse_action>": R(Function(textformat.master_short_mouse), rdescript="Mouse Shortcut"), "hold <short_mode>": R(Function(textformat.hold_modifier), rdescript="Hold Modifier"), "alt": R(Key("alt"), rdescript="Alt"), "wind": R(Key("win"), rdescript="Win"), "null": R(Key("n, u, l, l"), rdescript="Null"), "stoosh [<nnavi500>]": R(Key("c-c")+Function(navigation.clipboard_to_file, nexus=_NEXUS), rspec="stoosh", rdescript="Copy"), "cut [<nnavi500>]": R(Key("c-x")+Function(navigation.clipboard_to_file, nexus=_NEXUS), rspec="cut", rdescript="Cut"), "spark [<nnavi500>]": R(Function(navigation.drop, nexus=_NEXUS), rspec="spark", rdescript="Paste"), "deli [<nnavi50>]": R(Key("del/5"), rspec="deli", rdescript="Delete") * Repeat(extra="nnavi50"), "clear [<nnavi50>]": R(Key("backspace/5:%(nnavi50)d"), rspec="clear", rdescript="Backspace"), SymbolSpecs.CANCEL: R(Key("escape"), rspec="cancel", rdescript="Cancel Action"), "shackle": R(Key("home/5, s-end"), rspec="shackle", rdescript="Select Line"), "(tell | tau) <semi>": R(Function(navigation.next_line), rspec="tell dock", rdescript="Complete Line"), "duple [<nnavi50>]": R(Key("escape, home, s-end, c-c, end, enter, c-v"), rspec="duple", rdescript="Duplicate Line") * Repeat(extra="nnavi50"), "Kraken": R(Key("c-space"), rspec="Kraken", rdescript="Control Space"), # text formatting "set format (<spacing> <capitalization> | <capitalization> | <spacing>)": R(Function(textformat.set_text_format), rdescript="Set Text Format"), "clear caster formatting": R(Function(textformat.clear_text_format), rdescript="Clear Caster Formatting"), "peek format": R(Function(textformat.peek_text_format), rdescript="Peek Format"), "camel <textnv>": R(Function(textformat.master_format_text_camel), rdescript="Camel Case"), "pascal <textnv>": R(Function(textformat.master_format_text_pascal), rdescript="Pascal Case"), "dock mel <textnv>": R(Key("dot")+Function(textformat.master_format_text_camel), rdescript="Dot Camel Case"), "(dop|dot) scal <textnv>": R(Key("dot")+Function(textformat.master_format_text_pascal), rdescript="Dot Pascal Case"), "(<spacing> <capitalization> | <capitalization> | <spacing>) <textnv>": R(Function(textformat.master_format_text), rdescript="Text Format"), "format <textnv>": R(Function(textformat.prior_text_format), rdescript="Last Text Format"), "dredge": R(Key("a-tab"), rdescript="Alt-Tab"), } extras = [ alphanumeric.get_key_choice("key"), Choice( "short_mode", { "shift": "s", "troll": "c", "alt": "a", "wind": "w", "trot": "ca", "shoal": "cs", "tron": "wc", "shalt": "sa", "walt": "wa", "shin": "ws", "trash": "cas" }), Choice( "mouse_action", { "kick": "left", "kick mid": "middle", "psychic": "right", "dub kick": "left:2" }), IntegerRefST("nnavi50", 1, 50), IntegerRefST("nnavi500", 1, 500), Dictation("textnv"), Choice("capitalization", { "scream": 1, "scal": 2, "mel": 3, "tense": 4, "laws": 5 }), Choice("spacing", { "smash": 1, "spine": 2, "snake": 3 }), Choice("semi", { "dock": ";", "doc": ";", "sink": "" }), navigation.TARGET_CHOICE, navigation.get_direction_choice("mtn_dir"), Choice("mtn_mode", { "shin": "s", "queue": "cs", "fly": "c", }), Choice("extreme", { "Wally": "way", }), ] defaults = { "nnavi500": 1, "nnavi50": 1, "textnv": "", "capitalization": 0, "spacing": 0, "mtn_mode": None, "mtn_dir": "right", "extreme": None }
class Navigation(MergeRule): non = NavigationNon pronunciation = "navigation" mapping = { # "periodic" repeats whatever comes next at 1-second intervals until "cancel" is spoken or 100 tries occur # "periodic": # ContextSeeker(forward=[L(S(["cancel"], lambda: None), # S(["*"], lambda fnparams: UntilCancelled(Mimic(*filter(lambda s: s != "periodic", fnparams)), 1).execute(), # use_spoken=True))]), # VoiceCoder-inspired -- these should be done at the IDE level # "fill <target>": # R(Key("escape, escape, end"), show=False) + # AsynchronousAction([L(S(["cancel"], Function(context.fill_within_line, nexus=_NEXUS)))], # time_in_seconds=0.2, repetitions=50, rdescript="Fill" ), # "jump in": # AsynchronousAction([L(S(["cancel"], context.nav, ["right", "(~[~{~<"]))], # time_in_seconds=0.1, repetitions=50, rdescript="Jump: In"), # "jump out": # AsynchronousAction([L(S(["cancel"], context.nav, ["right", ")~]~}~>"]))], # time_in_seconds=0.1, repetitions=50, rdescript="Jump: Out"), # "jump back": # AsynchronousAction([L(S(["cancel"], context.nav, ["left", "(~[~{~<"]))], # time_in_seconds=0.1, repetitions=50, rdescript="Jump: Back"), # "jump back in": # AsynchronousAction([L(S(["cancel"], context.nav, ["left", "(~[~{~<"]))], # finisher=Key("right"), time_in_seconds=0.1, repetitions=50, rdescript="Jump: Back In" ), # keyboard shortcuts 'save [file]': R(Key("c-s"), rspec="save", rdescript="Save"), 'shock [<nnavi50>]': R(Key("enter"), rspec="shock", rdescript="Enter") * Repeat(extra="nnavi50"), "(<mtn_dir> | <mtn_mode> [<mtn_dir>]) [(<nnavi50> | <extreme>)]": R(Function(text_utils.master_text_nav), rdescript="Keyboard Text Navigation"), "stoosh [<nnavi500>]": R(Function(navigation.stoosh_keep_clipboard, nexus=_NEXUS), rspec="stoosh", rdescript="Copy"), "cutter [<nnavi500>]": R(Function(navigation.stoosh_keep_clipboard, nexus=_NEXUS, key="x"), rspec="cut", rdescript="Cut"), "spark [<nnavi500>] [(<capitalization> <spacing> | <capitalization> | <spacing>) (bow|bowel)]": R(Function(navigation.drop_keep_clipboard, nexus=_NEXUS), rspec="spark", rdescript="Paste"), "deli [<nnavi50>]": R(Key("del"), rspec="deli", rdescript="Delete") * Repeat(extra="nnavi50"), "clear [<nnavi50>]": R(Key("backspace:%(nnavi50)d"), rspec="clear", rdescript="Backspace"), # SymbolSpecs.CANCEL: # R(Key("escape"), rspec="cancel", rdescript="Cancel Action"), "shackle": R(Key("home, s-end"), rspec="shackle", rdescript="Select Line"), "(tell | tau) <semi>": R(Key("end, %(semi)s enter"), rspec="tell dock", rdescript="Complete Line"), "duple [<nnavi50>]": R(Function(navigation.duple_keep_clipboard), rspec="duple", rdescript="Duplicate Line"), "Kraken": R(Key("c-space"), rspec="Kraken", rdescript="Control Space"), # text formatting "set [<big>] format (<capitalization> <spacing> | <capitalization> | <spacing>) (bow|bowel)": R(Function(textformat.set_text_format), rdescript="Set Text Format"), "clear caster formatting": R(Function(textformat.clear_text_format), rdescript="Clear Caster Formatting"), # "peek format": # R(Function(textformat.peek_text_format), rdescript="Peek Format"), "(<capitalization> <spacing> | <capitalization> | <spacing>) (bow|bowel) <textnv> [brunt]": R(Function(textformat.master_format_text), rdescript="Text Format"), "[<big>] (format | say) <textnv>": R(Function(textformat.prior_text_format), rdescript="Last Text Format"), "<word_limit> format <textnv>": R(Function(textformat.partial_format_text), rdescript="Partial Text Format"), "hug <enclosure>": R(Function(text_utils.enclose_selected), rdescript="Enclose text "), # "dredge": # R(Key("a-tab"), rdescript="Alt-Tab"), #Mine "splat [<splatdir>] [<nnavi10>]": R(Key("c-%(splatdir)s"), rspec="splat", rdescript="Splat") * Repeat(extra="nnavi10"), } extras = [ IntegerRefST("nnavi10", 1, 11), IntegerRefST("nnavi50", 1, 20), IntegerRefST("nnavi500", 1, 500), Dictation("textnv"), Choice( "enclosure", { "prekris": "(~)", "angle": "<~>", "curly": "{~}", "brax": "[~]", "thin quotes": "'~'", 'quotes': '"~"', }), Choice( "capitalization", { "yell": 1, "tie": 2, "(Gerrish | camel)": 3, "sing": 4, "laws": 5, "password": 6, }), Choice( "spacing", { "gum": 1, "gun": 1, "spine": 2, "snake": 3, "pebble": 4, "incline": 5, "dissent": 6, "descent": 6, "list": 7, "dictionary": 8, }), Choice( "semi", { "dock": "semicolon, ", "doc": "semicolon, ", "collie": "colon, ", "sink": "" }), Choice("word_limit", { "single": 1, "double": 2, "triple": 3, "Quadra": 4 }), navigation.TARGET_CHOICE, navigation.get_direction_choice("mtn_dir"), Choice("mtn_mode", { "shin": "s", "queue": "cs", "fly": "c", }), Choice("extreme", { "Wally": "way", }), Choice("splatdir", { "lease": "backspace", "ross": "delete", }), Choice("big", { "big": True, }), ] defaults = { "nnavi500": 1, "nnavi50": 1, "nnavi10": 1, "textnv": "", "capitalization": 0, "spacing": 0, "mtn_mode": None, "mtn_dir": "left", "extreme": None, "splatdir": "backspace", "big": False, }