Start work on parsing mouse mappings
This commit is contained in:
parent
053c2ed2b9
commit
2973f33959
@ -430,6 +430,10 @@ def parse_key(val: str, key_definitions: List[KeyDefinition]) -> None:
|
|||||||
key_definitions.append(KeyDefinition(False, paction, mods, is_native, key))
|
key_definitions.append(KeyDefinition(False, paction, mods, is_native, key))
|
||||||
|
|
||||||
|
|
||||||
|
def parse_mouse_action(val: str, mouse_mappings: List['MouseMapping']) -> None:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def parse_symbol_map(val: str) -> Dict[Tuple[int, int], str]:
|
def parse_symbol_map(val: str) -> Dict[Tuple[int, int], str]:
|
||||||
parts = val.split()
|
parts = val.split()
|
||||||
symbol_map: Dict[Tuple[int, int], str] = {}
|
symbol_map: Dict[Tuple[int, int], str] = {}
|
||||||
@ -502,6 +506,11 @@ def handle_map(key: str, val: str, ans: Dict[str, Any]) -> None:
|
|||||||
parse_key(val, ans['key_definitions'])
|
parse_key(val, ans['key_definitions'])
|
||||||
|
|
||||||
|
|
||||||
|
@special_handler
|
||||||
|
def handle_mouse_map(key: str, val: str, ans: Dict[str, Any]) -> None:
|
||||||
|
parse_mouse_action(val, ans['mouse_mappings'])
|
||||||
|
|
||||||
|
|
||||||
@special_handler
|
@special_handler
|
||||||
def handle_symbol_map(key: str, val: str, ans: Dict[str, Any]) -> None:
|
def handle_symbol_map(key: str, val: str, ans: Dict[str, Any]) -> None:
|
||||||
ans['symbol_map'].update(parse_symbol_map(val))
|
ans['symbol_map'].update(parse_symbol_map(val))
|
||||||
@ -596,7 +605,7 @@ def option_names_for_completion() -> Generator[str, None, None]:
|
|||||||
def parse_config(lines: Iterable[str], check_keys: bool = True, accumulate_bad_lines: Optional[List[BadLine]] = None) -> Dict[str, Any]:
|
def parse_config(lines: Iterable[str], check_keys: bool = True, accumulate_bad_lines: Optional[List[BadLine]] = None) -> Dict[str, Any]:
|
||||||
ans: Dict[str, Any] = {
|
ans: Dict[str, Any] = {
|
||||||
'symbol_map': {}, 'keymap': {}, 'sequence_map': {}, 'key_definitions': [],
|
'symbol_map': {}, 'keymap': {}, 'sequence_map': {}, 'key_definitions': [],
|
||||||
'env': {}, 'kitten_aliases': {}, 'font_features': {}
|
'env': {}, 'kitten_aliases': {}, 'font_features': {}, 'mouse_mappings': [],
|
||||||
}
|
}
|
||||||
defs: Optional[OptionsStub] = None
|
defs: Optional[OptionsStub] = None
|
||||||
if check_keys:
|
if check_keys:
|
||||||
@ -635,8 +644,8 @@ def merge_configs(defaults: Dict, vals: Dict) -> Dict:
|
|||||||
if isinstance(v, dict):
|
if isinstance(v, dict):
|
||||||
newvals = vals.get(k, {})
|
newvals = vals.get(k, {})
|
||||||
ans[k] = merge_dicts(v, newvals)
|
ans[k] = merge_dicts(v, newvals)
|
||||||
elif k == 'key_definitions':
|
elif k in ('key_definitions', 'mouse_mappings'):
|
||||||
ans['key_definitions'] = v + vals.get('key_definitions', [])
|
ans[k] = v + vals.get(k, [])
|
||||||
else:
|
else:
|
||||||
ans[k] = vals.get(k, v)
|
ans[k] = vals.get(k, v)
|
||||||
return ans
|
return ans
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user