From 18ec811074acd8f4d8e648be0706c2e40be0b628 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Thu, 16 Dec 2021 17:25:35 +0100 Subject: [PATCH] Added strict here selection type (#114) * Added strict here selection type * Support raw selections * Run black Co-authored-by: Pokey Rule --- src/actions/call.py | 4 ++-- src/actions/move_bring.py | 4 ++-- src/modifiers/identity.py | 14 -------------- src/modifiers/modifiers.py | 4 ++-- src/modifiers/to_raw_selection.py | 14 ++++++++++++++ src/primitive_target.py | 11 ++--------- 6 files changed, 22 insertions(+), 29 deletions(-) delete mode 100644 src/modifiers/identity.py create mode 100644 src/modifiers/to_raw_selection.py diff --git a/src/actions/call.py b/src/actions/call.py index 54197fdd..659a7093 100644 --- a/src/actions/call.py +++ b/src/actions/call.py @@ -1,9 +1,9 @@ -from ..primitive_target import STRICT_HERE +from ..primitive_target import IMPLICIT_TARGET from talon import Module, actions mod = Module() def run_call_action(target: dict): - targets = [target, STRICT_HERE] + targets = [target, IMPLICIT_TARGET] actions.user.cursorless_multiple_target_command("callAsFunction", targets) diff --git a/src/actions/move_bring.py b/src/actions/move_bring.py index 89196338..4e20958b 100644 --- a/src/actions/move_bring.py +++ b/src/actions/move_bring.py @@ -1,5 +1,5 @@ from talon import Module -from ..primitive_target import STRICT_HERE +from ..primitive_target import IMPLICIT_TARGET mod = Module() mod.list( @@ -20,6 +20,6 @@ def cursorless_move_bring_targets(m) -> list[dict]: target_list = m.cursorless_target_list if len(target_list) == 1: - target_list = target_list + [STRICT_HERE] + target_list = target_list + [IMPLICIT_TARGET] return target_list diff --git a/src/modifiers/identity.py b/src/modifiers/identity.py deleted file mode 100644 index 44d2fcaa..00000000 --- a/src/modifiers/identity.py +++ /dev/null @@ -1,14 +0,0 @@ -from talon import Module - -mod = Module() - - -mod.list( - "cursorless_identity", - desc="Cursorless modifier for identity. Use to break inference chain.", -) - - -@mod.capture(rule="{user.cursorless_identity}") -def cursorless_identity(m) -> dict: - return {"modifier": {"type": "identity"}} diff --git a/src/modifiers/modifiers.py b/src/modifiers/modifiers.py index da5639fd..f644bb70 100644 --- a/src/modifiers/modifiers.py +++ b/src/modifiers/modifiers.py @@ -10,7 +10,7 @@ "inside": "interiorOnly", "bound": "excludeInterior", } -identity = {"just": "identity"} +to_raw_selection = {"just": "toRawSelection"} def on_ready(): @@ -20,7 +20,7 @@ def on_ready(): "delimiter_inclusion": delimiter_inclusions, "range_type": range_types, "head_tail": head_tail, - "identity": identity, + "to_raw_selection": to_raw_selection, }, ) diff --git a/src/modifiers/to_raw_selection.py b/src/modifiers/to_raw_selection.py new file mode 100644 index 00000000..791f7757 --- /dev/null +++ b/src/modifiers/to_raw_selection.py @@ -0,0 +1,14 @@ +from talon import Module + +mod = Module() + + +mod.list( + "cursorless_to_raw_selection", + desc="Cursorless modifier that converts its input to a raw selection.", +) + + +@mod.capture(rule="{user.cursorless_to_raw_selection}") +def cursorless_to_raw_selection(m) -> dict: + return {"modifier": {"type": "toRawSelection"}} diff --git a/src/primitive_target.py b/src/primitive_target.py index 8cd4007e..d173905d 100644 --- a/src/primitive_target.py +++ b/src/primitive_target.py @@ -4,14 +4,7 @@ mod = Module() BASE_TARGET = {"type": "primitive"} -STRICT_HERE = { - "type": "primitive", - "mark": {"type": "cursor"}, - "selectionType": "token", - "position": "contents", - "modifier": {"type": "identity"}, - "insideOutsideType": "inside", -} +IMPLICIT_TARGET = {"type": "primitive", "isImplicit": True} modifiers = [ @@ -21,7 +14,7 @@ "", # funk, state, class "", # first past second word "", # matching/pair [curly, round] - "", # just + "", # just # "", # matching ]