File tree Expand file tree Collapse file tree 4 files changed +57
-11
lines changed Expand file tree Collapse file tree 4 files changed +57
-11
lines changed Original file line number Diff line number Diff line change @@ -37,16 +37,17 @@ class CustomizableTerm:
37
37
38
38
39
39
@mod .capture (
40
- rule = "{user.cursorless_line_direction} <number_small > [{user.cursorless_range_connective} <number_small >]"
40
+ rule = "{user.cursorless_line_direction} <user.private_cursorless_number_small > [{user.cursorless_range_connective} <user.private_cursorless_number_small >]"
41
41
)
42
42
def cursorless_line_number (m ) -> dict [str , Any ]:
43
43
direction = directions_map [m .cursorless_line_direction ]
44
44
anchor = create_line_number_mark (
45
- direction .type , direction .formatter (m .number_small_list [0 ])
45
+ direction .type , direction .formatter (m .private_cursorless_number_small_list [0 ])
46
46
)
47
- if len (m .number_small_list ) > 1 :
47
+ if len (m .private_cursorless_number_small_list ) > 1 :
48
48
active = create_line_number_mark (
49
- direction .type , direction .formatter (m .number_small_list [1 ])
49
+ direction .type ,
50
+ direction .formatter (m .private_cursorless_number_small_list [1 ]),
50
51
)
51
52
include_anchor = is_anchor_included (m .cursorless_range_connective )
52
53
include_active = is_active_included (m .cursorless_range_connective )
Original file line number Diff line number Diff line change @@ -48,16 +48,18 @@ def cursorless_ordinal_range(m) -> dict[str, Any]:
48
48
49
49
50
50
@mod .capture (
51
- rule = "({user.cursorless_first_modifier} | {user.cursorless_last_modifier}) <number_small > <user.cursorless_scope_type_plural>"
51
+ rule = "({user.cursorless_first_modifier} | {user.cursorless_last_modifier}) <user.private_cursorless_number_small > <user.cursorless_scope_type_plural>"
52
52
)
53
53
def cursorless_first_last (m ) -> dict [str , Any ]:
54
54
"""First/last `n` scopes; eg "first three funks"""
55
55
if m [0 ] == "first" :
56
56
return create_ordinal_scope_modifier (
57
- m .cursorless_scope_type_plural , 0 , m .number_small
57
+ m .cursorless_scope_type_plural , 0 , m .private_cursorless_number_small
58
58
)
59
59
return create_ordinal_scope_modifier (
60
- m .cursorless_scope_type_plural , - m .number_small , m .number_small
60
+ m .cursorless_scope_type_plural ,
61
+ - m .private_cursorless_number_small ,
62
+ m .private_cursorless_number_small ,
61
63
)
62
64
63
65
Original file line number Diff line number Diff line change @@ -31,27 +31,27 @@ def cursorless_relative_scope_singular(m) -> dict[str, Any]:
31
31
32
32
33
33
@mod .capture (
34
- rule = "<user.cursorless_relative_direction> <number_small > <user.cursorless_scope_type_plural>"
34
+ rule = "<user.cursorless_relative_direction> <user.private_cursorless_number_small > <user.cursorless_scope_type_plural>"
35
35
)
36
36
def cursorless_relative_scope_plural (m ) -> dict [str , Any ]:
37
37
"""Relative previous/next plural scope. `next three funks`"""
38
38
return create_relative_scope_modifier (
39
39
m .cursorless_scope_type_plural ,
40
40
1 ,
41
- m .number_small ,
41
+ m .private_cursorless_number_small ,
42
42
m .cursorless_relative_direction ,
43
43
)
44
44
45
45
46
46
@mod .capture (
47
- rule = "<number_small > <user.cursorless_scope_type_plural> [{user.cursorless_backward_modifier}]"
47
+ rule = "<user.private_cursorless_number_small > <user.cursorless_scope_type_plural> [{user.cursorless_backward_modifier}]"
48
48
)
49
49
def cursorless_relative_scope_count (m ) -> dict [str , Any ]:
50
50
"""Relative count scope. `three funks`"""
51
51
return create_relative_scope_modifier (
52
52
m .cursorless_scope_type_plural ,
53
53
0 ,
54
- m .number_small ,
54
+ m .private_cursorless_number_small ,
55
55
getattr (m , "cursorless_backward_modifier" , "forward" ),
56
56
)
57
57
Original file line number Diff line number Diff line change
1
+ """
2
+ This file allows us to use a custom `number_small` capture. See #1021 for more
3
+ info.
4
+ """
5
+ from talon import Context , Module
6
+
7
+ mod = Module ()
8
+ mod .tag (
9
+ "cursorless_custom_number_small" ,
10
+ "This tag causes Cursorless to use the global <number_small> capture" ,
11
+ )
12
+
13
+ ctx = Context ()
14
+ ctx .matches = """
15
+ not tag: user.cursorless_custom_number_small
16
+ """
17
+
18
+
19
+ @mod .capture (rule = "<number_small>" )
20
+ def private_cursorless_number_small (m ) -> int :
21
+ return m .number_small
22
+
23
+
24
+ digit_list = "zero one two three four five six seven eight nine" .split ()
25
+ teens = "ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen" .split ()
26
+ tens = "twenty thirty forty fifty sixty seventy eighty ninety" .split ()
27
+
28
+ number_small_list = [* digit_list , * teens ]
29
+ for ten in tens :
30
+ number_small_list .append (ten )
31
+ number_small_list .extend (f"{ ten } { digit } " for digit in digit_list [1 :])
32
+ number_small_map = {n : i for i , n in enumerate (number_small_list )}
33
+
34
+ mod .list ("private_cursorless_number_small" , desc = "List of small numbers" )
35
+ ctx .lists ["self.private_cursorless_number_small" ] = number_small_map .keys ()
36
+
37
+
38
+ @ctx .capture (
39
+ "user.private_cursorless_number_small" ,
40
+ rule = "{user.private_cursorless_number_small}" ,
41
+ )
42
+ def override_private_cursorless_number_small (m ) -> int :
43
+ return number_small_map [m .private_cursorless_number_small ]
You can’t perform that action at this time.
0 commit comments