11from collections .abc import Callable
22from dataclasses import dataclass
3- from typing import Any
43
54from talon import Module
65
76from ..targets .range_target import RangeConnective
7+ from .mark_types import LineNumber , LineNumberMark , LineNumberType
88
99mod = Module ()
1010
1414@dataclass
1515class CustomizableTerm :
1616 cursorlessIdentifier : str
17- type : str
18- formatter : Callable
17+ type : LineNumberType
18+ formatter : Callable [[ int ], int ]
1919
2020
2121# NOTE: Please do not change these dicts. Use the CSVs for customization.
@@ -35,15 +35,13 @@ class CustomizableTerm:
3535 "[<user.cursorless_range_connective> <user.private_cursorless_number_small>]"
3636 )
3737)
38- def cursorless_line_number (m ) -> dict [ str , Any ] :
38+ def cursorless_line_number (m ) -> LineNumber :
3939 direction = directions_map [m .cursorless_line_direction ]
40- anchor = create_line_number_mark (
41- direction .type , direction .formatter (m .private_cursorless_number_small_list [0 ])
42- )
43- if len (m .private_cursorless_number_small_list ) > 1 :
40+ numbers : list [int ] = m .private_cursorless_number_small_list
41+ anchor = create_line_number_mark (direction .type , direction .formatter (numbers [0 ]))
42+ if len (numbers ) > 1 :
4443 active = create_line_number_mark (
45- direction .type ,
46- direction .formatter (m .private_cursorless_number_small_list [1 ]),
44+ direction .type , direction .formatter (numbers [1 ])
4745 )
4846 range_connective : RangeConnective = m .cursorless_range_connective
4947 return {
@@ -56,9 +54,9 @@ def cursorless_line_number(m) -> dict[str, Any]:
5654 return anchor
5755
5856
59- def create_line_number_mark (line_number_type : str , line_number : int ) -> dict [ str , Any ] :
57+ def create_line_number_mark (type : LineNumberType , line_number : int ) -> LineNumberMark :
6058 return {
6159 "type" : "lineNumber" ,
62- "lineNumberType" : line_number_type ,
60+ "lineNumberType" : type ,
6361 "lineNumber" : line_number ,
6462 }
0 commit comments