Skip to content

Commit 79bbcc6

Browse files
Copilotkovidgoyal
andauthored
refactor: derive value-taking options from spec instead of hardcoding them
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/046a1de7-ad0d-46a5-8383-c06025d1d4eb Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
1 parent a8e1e29 commit 79bbcc6

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

kitty/session.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,12 @@ def save_as_session_part2(boss: BossType, opts: SaveAsSessionOptions, path: str)
706706
boss.edit_file(path)
707707

708708

709+
def _save_as_session_value_options() -> frozenset[str]:
710+
from .simple_cli_definitions import parse_option_spec
711+
seq, _ = parse_option_spec(save_as_session_options())
712+
return frozenset(alias for item in seq if hasattr(item, 'type') and item.type not in ('bool-set', 'bool-reset') for alias in item.aliases)
713+
714+
709715
def parse_save_as_options_spec_args(args: list[str]) -> tuple[SaveAsSessionOptions, list[str]]:
710716
from kitty.cli import cached_parse_cmdline
711717
ans = SaveAsSessionOptions()
@@ -715,8 +721,7 @@ def parse_save_as_options_spec_args(args: list[str]) -> tuple[SaveAsSessionOptio
715721
# the session file path (e.g. save_as_session /path --save-only).
716722
options: list[str] = []
717723
positional: list[str] = []
718-
# Options that take a value argument (not bool-set)
719-
value_options = frozenset(('--match', '--base-dir'))
724+
value_options = _save_as_session_value_options()
720725
i = 0
721726
while i < len(args):
722727
a = args[i]

0 commit comments

Comments
 (0)