Cache parsed save as session options spec

This commit is contained in:
Kovid Goyal
2025-08-16 09:46:03 +05:30
parent ca715c4cae
commit 0fb1835af1
3 changed files with 36 additions and 17 deletions

View File

@@ -8,7 +8,7 @@ import re
import sys
from dataclasses import dataclass
from enum import Enum, auto
from typing import Any, Iterator, TypedDict
from typing import Any, Iterator, Sequence, TypedDict
try:
from kitty.constants import appname, is_macos
@@ -118,7 +118,7 @@ class OptionDict(TypedDict):
completion: CompletionSpec
OptionSpecSeq = list[str | OptionDict]
OptionSpecSeq = Sequence[str | OptionDict]
def parse_option_spec(spec: str | None = None) -> tuple[OptionSpecSeq, OptionSpecSeq]:
@@ -129,8 +129,8 @@ def parse_option_spec(spec: str | None = None) -> tuple[OptionSpecSeq, OptionSpe
lines = spec.splitlines()
prev_line = ''
prev_indent = 0
seq: OptionSpecSeq = []
disabled: OptionSpecSeq = []
seq: list[str | OptionDict] = []
disabled: list[str | OptionDict] = []
mpat = re.compile('([a-z]+)=(.+)')
current_cmd: OptionDict = {
'dest': '', 'aliases': (), 'help': '', 'choices': (),