Skip to content

Commit 78d866b

Browse files
AndreasArvidssonpokey
authored andcommitted
Added range modifiers till and tween (cursorless-dev#32)
* Added range modifiers till and tween * renamed til two until
1 parent 4373fa5 commit 78d866b

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

src/compound_targets.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,31 @@
77
@mod.capture(
88
rule=(
99
"<user.cursorless_primitive_target> | "
10-
"past <user.cursorless_primitive_target> | "
11-
"<user.cursorless_primitive_target> past <user.cursorless_primitive_target>"
10+
"(past|until|tween) <user.cursorless_primitive_target> | "
11+
"<user.cursorless_primitive_target> (past|until|tween) <user.cursorless_primitive_target>"
1212
)
1313
)
1414
def cursorless_range(m) -> str:
15-
if "past" in m:
16-
end = m[-1]
17-
if m[0] == "past":
18-
start = BASE_TARGET.copy()
19-
else:
20-
start = m.cursorless_primitive_target_list[0]
21-
return {
22-
"type": "range",
23-
"start": start,
24-
"end": end,
25-
}
15+
length = len(m)
16+
if length == 1:
17+
return m[0]
2618

27-
return m[0]
19+
if length == 2:
20+
start = BASE_TARGET.copy()
21+
else:
22+
start = m[0]
23+
modifier = m[-2]
24+
return {
25+
"type": "range",
26+
"start": start,
27+
"end": m[-1],
28+
"excludeStart": modifier == "tween",
29+
"excludeEnd": modifier in ["tween", "until"],
30+
}
2831

2932

3033
@mod.capture(rule=("<user.cursorless_range> (and <user.cursorless_range>)*"))
3134
def cursorless_target(m) -> str:
3235
if len(m.cursorless_range_list) == 1:
3336
return m.cursorless_range
34-
return {
35-
"type": "list",
36-
"elements": m.cursorless_range_list
37-
}
37+
return {"type": "list", "elements": m.cursorless_range_list}

0 commit comments

Comments
 (0)