Store the paths from which config data is read on the created options object

This commit is contained in:
Kovid Goyal
2021-06-05 12:55:00 +05:30
parent 33e63f000a
commit a1b87f445b
6 changed files with 256 additions and 123 deletions

View File

@@ -55,8 +55,11 @@ def load_config(*paths: str, overrides: Optional[Iterable[str]] = None) -> DiffO
)
return ans
opts_dict = _load_config(defaults, parse_config, merge_result_dicts, *paths, overrides=overrides)
overrides = tuple(overrides) if overrides is not None else ()
opts_dict, paths = _load_config(defaults, parse_config, merge_result_dicts, *paths, overrides=overrides)
opts = DiffOptions(opts_dict)
opts.config_paths = paths
opts.config_overrides = overrides
return opts

View File

@@ -67,6 +67,8 @@ class Options:
title_fg: Color = Color(red=0, green=0, blue=0)
map: typing.List[typing.Tuple[kitty.types.ParsedShortcut, kitty.conf.utils.KeyAction]] = []
key_definitions: KittensKeyMap = {}
config_paths: typing.Tuple[str, ...] = ()
config_overrides: typing.Tuple[str, ...] = ()
def __init__(self, options_dict: typing.Optional[typing.Dict[str, typing.Any]] = None) -> None:
if options_dict is not None:
@@ -113,29 +115,54 @@ class Options:
defaults = Options()
defaults.map = [
(ParsedShortcut(mods=0, key_name='q'), KeyAction('quit')), # quit
(ParsedShortcut(mods=0, key_name='ESCAPE'), KeyAction('quit')), # quit
(ParsedShortcut(mods=0, key_name='j'), KeyAction('scroll_by', (1,))), # scroll_down
(ParsedShortcut(mods=0, key_name='DOWN'), KeyAction('scroll_by', (1,))), # scroll_down
(ParsedShortcut(mods=0, key_name='k'), KeyAction('scroll_by', (-1,))), # scroll_up
(ParsedShortcut(mods=0, key_name='UP'), KeyAction('scroll_by', (-1,))), # scroll_up
(ParsedShortcut(mods=0, key_name='HOME'), KeyAction('scroll_to', ('start',))), # scroll_top
(ParsedShortcut(mods=0, key_name='END'), KeyAction('scroll_to', ('end',))), # scroll_bottom
(ParsedShortcut(mods=0, key_name='PAGE_DOWN'), KeyAction('scroll_to', ('next-page',))), # scroll_page_down
(ParsedShortcut(mods=0, key_name=' '), KeyAction('scroll_to', ('next-page',))), # scroll_page_down
(ParsedShortcut(mods=0, key_name='PAGE_UP'), KeyAction('scroll_to', ('prev-page',))), # scroll_page_up
(ParsedShortcut(mods=0, key_name='n'), KeyAction('scroll_to', ('next-change',))), # next_change
(ParsedShortcut(mods=0, key_name='p'), KeyAction('scroll_to', ('prev-change',))), # prev_change
(ParsedShortcut(mods=0, key_name='a'), KeyAction('change_context', ('all',))), # all_context
(ParsedShortcut(mods=0, key_name='='), KeyAction('change_context', ('default',))), # default_context
(ParsedShortcut(mods=0, key_name='+'), KeyAction('change_context', (5,))), # increase_context
(ParsedShortcut(mods=0, key_name='-'), KeyAction('change_context', (-5,))), # decrease_context
(ParsedShortcut(mods=0, key_name='/'), KeyAction('start_search', (True, False))), # search_forward
(ParsedShortcut(mods=0, key_name='?'), KeyAction('start_search', (True, True))), # search_backward
(ParsedShortcut(mods=0, key_name='.'), KeyAction('scroll_to', ('next-match',))), # next_match
(ParsedShortcut(mods=0, key_name='>'), KeyAction('scroll_to', ('next-match',))), # next_match
(ParsedShortcut(mods=0, key_name=','), KeyAction('scroll_to', ('prev-match',))), # prev_match
(ParsedShortcut(mods=0, key_name='<'), KeyAction('scroll_to', ('prev-match',))), # prev_match
(ParsedShortcut(mods=0, key_name='f'), KeyAction('start_search', (False, False))), # search_forward_simple
(ParsedShortcut(mods=0, key_name='b'), KeyAction('start_search', (False, True))), # search_backward_simple
# quit
(ParsedShortcut(mods=0, key_name='q'), KeyAction('quit')),
# quit
(ParsedShortcut(mods=0, key_name='ESCAPE'), KeyAction('quit')),
# scroll_down
(ParsedShortcut(mods=0, key_name='j'), KeyAction('scroll_by', (1,))),
# scroll_down
(ParsedShortcut(mods=0, key_name='DOWN'), KeyAction('scroll_by', (1,))),
# scroll_up
(ParsedShortcut(mods=0, key_name='k'), KeyAction('scroll_by', (-1,))),
# scroll_up
(ParsedShortcut(mods=0, key_name='UP'), KeyAction('scroll_by', (-1,))),
# scroll_top
(ParsedShortcut(mods=0, key_name='HOME'), KeyAction('scroll_to', ('start',))),
# scroll_bottom
(ParsedShortcut(mods=0, key_name='END'), KeyAction('scroll_to', ('end',))),
# scroll_page_down
(ParsedShortcut(mods=0, key_name='PAGE_DOWN'), KeyAction('scroll_to', ('next-page',))),
# scroll_page_down
(ParsedShortcut(mods=0, key_name=' '), KeyAction('scroll_to', ('next-page',))),
# scroll_page_up
(ParsedShortcut(mods=0, key_name='PAGE_UP'), KeyAction('scroll_to', ('prev-page',))),
# next_change
(ParsedShortcut(mods=0, key_name='n'), KeyAction('scroll_to', ('next-change',))),
# prev_change
(ParsedShortcut(mods=0, key_name='p'), KeyAction('scroll_to', ('prev-change',))),
# all_context
(ParsedShortcut(mods=0, key_name='a'), KeyAction('change_context', ('all',))),
# default_context
(ParsedShortcut(mods=0, key_name='='), KeyAction('change_context', ('default',))),
# increase_context
(ParsedShortcut(mods=0, key_name='+'), KeyAction('change_context', (5,))),
# decrease_context
(ParsedShortcut(mods=0, key_name='-'), KeyAction('change_context', (-5,))),
# search_forward
(ParsedShortcut(mods=0, key_name='/'), KeyAction('start_search', (True, False))),
# search_backward
(ParsedShortcut(mods=0, key_name='?'), KeyAction('start_search', (True, True))),
# next_match
(ParsedShortcut(mods=0, key_name='.'), KeyAction('scroll_to', ('next-match',))),
# next_match
(ParsedShortcut(mods=0, key_name='>'), KeyAction('scroll_to', ('next-match',))),
# prev_match
(ParsedShortcut(mods=0, key_name=','), KeyAction('scroll_to', ('prev-match',))),
# prev_match
(ParsedShortcut(mods=0, key_name='<'), KeyAction('scroll_to', ('prev-match',))),
# search_forward_simple
(ParsedShortcut(mods=0, key_name='f'), KeyAction('start_search', (False, False))),
# search_backward_simple
(ParsedShortcut(mods=0, key_name='b'), KeyAction('start_search', (False, True))),
]