From 78d866b88b5b02d7981a0557443c6099247be4b4 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Sun, 25 Jul 2021 00:25:21 +0200 Subject: [PATCH] Added range modifiers till and tween (#32) * Added range modifiers till and tween * renamed til two until --- src/compound_targets.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/compound_targets.py b/src/compound_targets.py index 7fc27359..f6c25d4b 100644 --- a/src/compound_targets.py +++ b/src/compound_targets.py @@ -7,31 +7,31 @@ @mod.capture( rule=( " | " - "past | " - " past " + "(past|until|tween) | " + " (past|until|tween) " ) ) def cursorless_range(m) -> str: - if "past" in m: - end = m[-1] - if m[0] == "past": - start = BASE_TARGET.copy() - else: - start = m.cursorless_primitive_target_list[0] - return { - "type": "range", - "start": start, - "end": end, - } + length = len(m) + if length == 1: + return m[0] - return m[0] + if length == 2: + start = BASE_TARGET.copy() + else: + start = m[0] + modifier = m[-2] + return { + "type": "range", + "start": start, + "end": m[-1], + "excludeStart": modifier == "tween", + "excludeEnd": modifier in ["tween", "until"], + } @mod.capture(rule=(" (and )*")) def cursorless_target(m) -> str: if len(m.cursorless_range_list) == 1: return m.cursorless_range - return { - "type": "list", - "elements": m.cursorless_range_list - } + return {"type": "list", "elements": m.cursorless_range_list}