Auto generate the list of all color config keys
This commit is contained in:
parent
34d87b7a72
commit
39dcfb4e5d
@ -4,26 +4,38 @@
|
|||||||
|
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
from typing import List
|
||||||
|
|
||||||
from kitty.conf.generate import write_output
|
from kitty.conf.generate import write_output
|
||||||
|
|
||||||
|
|
||||||
|
def patch_color_list(path: str, colors: List[str], name: str, spc: str = ' ') -> None:
|
||||||
|
with open(path, 'r+') as f:
|
||||||
|
raw = f.read()
|
||||||
|
nraw = re.sub(
|
||||||
|
fr'(# {name}_COLORS_START).+?(\s+# {name}_COLORS_END)',
|
||||||
|
r'\1' + f'\n{spc}' + f'\n{spc}'.join(map(lambda x: f'{x!r},', sorted(colors))) + r'\2',
|
||||||
|
raw, flags=re.DOTALL | re.MULTILINE)
|
||||||
|
if nraw != raw:
|
||||||
|
f.seek(0)
|
||||||
|
f.truncate()
|
||||||
|
f.write(nraw)
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
from kitty.options.definition import definition
|
from kitty.options.definition import definition
|
||||||
write_output('kitty', definition)
|
write_output('kitty', definition)
|
||||||
nullable_colors = []
|
nullable_colors = []
|
||||||
|
all_colors = []
|
||||||
for opt in definition.iter_all_options():
|
for opt in definition.iter_all_options():
|
||||||
if callable(opt.parser_func) and opt.parser_func.__name__ in ('to_color_or_none', 'cursor_text_color'):
|
if callable(opt.parser_func):
|
||||||
nullable_colors.append(opt.name)
|
if opt.parser_func.__name__ in ('to_color_or_none', 'cursor_text_color'):
|
||||||
with open('kitty/rc/set_colors.py', 'r+') as f:
|
nullable_colors.append(opt.name)
|
||||||
raw = f.read()
|
all_colors.append(opt.name)
|
||||||
nraw = re.sub(
|
elif opt.parser_func.__name__ in ('to_color', 'macos_titlebar_color'):
|
||||||
r'(# NULLABLE_COLORS_START).+?(\s+# NULLABLE_COLORS_END)',
|
all_colors.append(opt.name)
|
||||||
r'\1' + '\n ' + '\n '.join(map(lambda x: f'{x!r},', sorted(nullable_colors))) + r'\2',
|
patch_color_list('kitty/rc/set_colors.py', nullable_colors, 'NULLABLE')
|
||||||
raw, flags=re.DOTALL | re.MULTILINE)
|
patch_color_list('kittens/themes/collection.py', all_colors, 'ALL', ' ' * 8)
|
||||||
if nraw != raw:
|
|
||||||
f.seek(0)
|
|
||||||
f.truncate()
|
|
||||||
f.write(nraw)
|
|
||||||
|
|
||||||
from kittens.diff.options.definition import definition as kd
|
from kittens.diff.options.definition import definition as kd
|
||||||
write_output('kittens.diff', kd)
|
write_output('kittens.diff', kd)
|
||||||
|
|||||||
@ -35,37 +35,291 @@ def patch_conf(raw: str, theme_name: str) -> str:
|
|||||||
raw += '\n\n'
|
raw += '\n\n'
|
||||||
nraw = raw + addition
|
nraw = raw + addition
|
||||||
# comment out all existing color definitions
|
# comment out all existing color definitions
|
||||||
color_conf_items = [f'color{i}' for i in range(256)] + list(filter(None, '''
|
color_conf_items = ( # {{{
|
||||||
foreground
|
# generated by gen_config.py do not EDIT
|
||||||
background
|
# ALL_COLORS_START
|
||||||
selection_foreground
|
'active_border_color',
|
||||||
selection_background
|
'active_tab_background',
|
||||||
|
'active_tab_foreground',
|
||||||
cursor
|
'background',
|
||||||
cursor_text_color
|
'bell_border_color',
|
||||||
|
'color0',
|
||||||
url_color
|
'color1',
|
||||||
|
'color10',
|
||||||
active_border_color
|
'color100',
|
||||||
inactive_border_color
|
'color101',
|
||||||
bell_border_color
|
'color102',
|
||||||
|
'color103',
|
||||||
wayland_titlebar_color
|
'color104',
|
||||||
macos_titlebar_color
|
'color105',
|
||||||
|
'color106',
|
||||||
active_tab_foreground
|
'color107',
|
||||||
active_tab_background
|
'color108',
|
||||||
inactive_tab_foreground
|
'color109',
|
||||||
inactive_tab_background
|
'color11',
|
||||||
tab_bar_background
|
'color110',
|
||||||
|
'color111',
|
||||||
mark1_foreground
|
'color112',
|
||||||
mark1_background
|
'color113',
|
||||||
mark2_foreground
|
'color114',
|
||||||
mark2_background
|
'color115',
|
||||||
mark3_foreground
|
'color116',
|
||||||
mark3_background
|
'color117',
|
||||||
'''.splitlines()))
|
'color118',
|
||||||
|
'color119',
|
||||||
|
'color12',
|
||||||
|
'color120',
|
||||||
|
'color121',
|
||||||
|
'color122',
|
||||||
|
'color123',
|
||||||
|
'color124',
|
||||||
|
'color125',
|
||||||
|
'color126',
|
||||||
|
'color127',
|
||||||
|
'color128',
|
||||||
|
'color129',
|
||||||
|
'color13',
|
||||||
|
'color130',
|
||||||
|
'color131',
|
||||||
|
'color132',
|
||||||
|
'color133',
|
||||||
|
'color134',
|
||||||
|
'color135',
|
||||||
|
'color136',
|
||||||
|
'color137',
|
||||||
|
'color138',
|
||||||
|
'color139',
|
||||||
|
'color14',
|
||||||
|
'color140',
|
||||||
|
'color141',
|
||||||
|
'color142',
|
||||||
|
'color143',
|
||||||
|
'color144',
|
||||||
|
'color145',
|
||||||
|
'color146',
|
||||||
|
'color147',
|
||||||
|
'color148',
|
||||||
|
'color149',
|
||||||
|
'color15',
|
||||||
|
'color150',
|
||||||
|
'color151',
|
||||||
|
'color152',
|
||||||
|
'color153',
|
||||||
|
'color154',
|
||||||
|
'color155',
|
||||||
|
'color156',
|
||||||
|
'color157',
|
||||||
|
'color158',
|
||||||
|
'color159',
|
||||||
|
'color16',
|
||||||
|
'color160',
|
||||||
|
'color161',
|
||||||
|
'color162',
|
||||||
|
'color163',
|
||||||
|
'color164',
|
||||||
|
'color165',
|
||||||
|
'color166',
|
||||||
|
'color167',
|
||||||
|
'color168',
|
||||||
|
'color169',
|
||||||
|
'color17',
|
||||||
|
'color170',
|
||||||
|
'color171',
|
||||||
|
'color172',
|
||||||
|
'color173',
|
||||||
|
'color174',
|
||||||
|
'color175',
|
||||||
|
'color176',
|
||||||
|
'color177',
|
||||||
|
'color178',
|
||||||
|
'color179',
|
||||||
|
'color18',
|
||||||
|
'color180',
|
||||||
|
'color181',
|
||||||
|
'color182',
|
||||||
|
'color183',
|
||||||
|
'color184',
|
||||||
|
'color185',
|
||||||
|
'color186',
|
||||||
|
'color187',
|
||||||
|
'color188',
|
||||||
|
'color189',
|
||||||
|
'color19',
|
||||||
|
'color190',
|
||||||
|
'color191',
|
||||||
|
'color192',
|
||||||
|
'color193',
|
||||||
|
'color194',
|
||||||
|
'color195',
|
||||||
|
'color196',
|
||||||
|
'color197',
|
||||||
|
'color198',
|
||||||
|
'color199',
|
||||||
|
'color2',
|
||||||
|
'color20',
|
||||||
|
'color200',
|
||||||
|
'color201',
|
||||||
|
'color202',
|
||||||
|
'color203',
|
||||||
|
'color204',
|
||||||
|
'color205',
|
||||||
|
'color206',
|
||||||
|
'color207',
|
||||||
|
'color208',
|
||||||
|
'color209',
|
||||||
|
'color21',
|
||||||
|
'color210',
|
||||||
|
'color211',
|
||||||
|
'color212',
|
||||||
|
'color213',
|
||||||
|
'color214',
|
||||||
|
'color215',
|
||||||
|
'color216',
|
||||||
|
'color217',
|
||||||
|
'color218',
|
||||||
|
'color219',
|
||||||
|
'color22',
|
||||||
|
'color220',
|
||||||
|
'color221',
|
||||||
|
'color222',
|
||||||
|
'color223',
|
||||||
|
'color224',
|
||||||
|
'color225',
|
||||||
|
'color226',
|
||||||
|
'color227',
|
||||||
|
'color228',
|
||||||
|
'color229',
|
||||||
|
'color23',
|
||||||
|
'color230',
|
||||||
|
'color231',
|
||||||
|
'color232',
|
||||||
|
'color233',
|
||||||
|
'color234',
|
||||||
|
'color235',
|
||||||
|
'color236',
|
||||||
|
'color237',
|
||||||
|
'color238',
|
||||||
|
'color239',
|
||||||
|
'color24',
|
||||||
|
'color240',
|
||||||
|
'color241',
|
||||||
|
'color242',
|
||||||
|
'color243',
|
||||||
|
'color244',
|
||||||
|
'color245',
|
||||||
|
'color246',
|
||||||
|
'color247',
|
||||||
|
'color248',
|
||||||
|
'color249',
|
||||||
|
'color25',
|
||||||
|
'color250',
|
||||||
|
'color251',
|
||||||
|
'color252',
|
||||||
|
'color253',
|
||||||
|
'color254',
|
||||||
|
'color255',
|
||||||
|
'color26',
|
||||||
|
'color27',
|
||||||
|
'color28',
|
||||||
|
'color29',
|
||||||
|
'color3',
|
||||||
|
'color30',
|
||||||
|
'color31',
|
||||||
|
'color32',
|
||||||
|
'color33',
|
||||||
|
'color34',
|
||||||
|
'color35',
|
||||||
|
'color36',
|
||||||
|
'color37',
|
||||||
|
'color38',
|
||||||
|
'color39',
|
||||||
|
'color4',
|
||||||
|
'color40',
|
||||||
|
'color41',
|
||||||
|
'color42',
|
||||||
|
'color43',
|
||||||
|
'color44',
|
||||||
|
'color45',
|
||||||
|
'color46',
|
||||||
|
'color47',
|
||||||
|
'color48',
|
||||||
|
'color49',
|
||||||
|
'color5',
|
||||||
|
'color50',
|
||||||
|
'color51',
|
||||||
|
'color52',
|
||||||
|
'color53',
|
||||||
|
'color54',
|
||||||
|
'color55',
|
||||||
|
'color56',
|
||||||
|
'color57',
|
||||||
|
'color58',
|
||||||
|
'color59',
|
||||||
|
'color6',
|
||||||
|
'color60',
|
||||||
|
'color61',
|
||||||
|
'color62',
|
||||||
|
'color63',
|
||||||
|
'color64',
|
||||||
|
'color65',
|
||||||
|
'color66',
|
||||||
|
'color67',
|
||||||
|
'color68',
|
||||||
|
'color69',
|
||||||
|
'color7',
|
||||||
|
'color70',
|
||||||
|
'color71',
|
||||||
|
'color72',
|
||||||
|
'color73',
|
||||||
|
'color74',
|
||||||
|
'color75',
|
||||||
|
'color76',
|
||||||
|
'color77',
|
||||||
|
'color78',
|
||||||
|
'color79',
|
||||||
|
'color8',
|
||||||
|
'color80',
|
||||||
|
'color81',
|
||||||
|
'color82',
|
||||||
|
'color83',
|
||||||
|
'color84',
|
||||||
|
'color85',
|
||||||
|
'color86',
|
||||||
|
'color87',
|
||||||
|
'color88',
|
||||||
|
'color89',
|
||||||
|
'color9',
|
||||||
|
'color90',
|
||||||
|
'color91',
|
||||||
|
'color92',
|
||||||
|
'color93',
|
||||||
|
'color94',
|
||||||
|
'color95',
|
||||||
|
'color96',
|
||||||
|
'color97',
|
||||||
|
'color98',
|
||||||
|
'color99',
|
||||||
|
'cursor',
|
||||||
|
'cursor_text_color',
|
||||||
|
'foreground',
|
||||||
|
'inactive_border_color',
|
||||||
|
'inactive_tab_background',
|
||||||
|
'inactive_tab_foreground',
|
||||||
|
'macos_titlebar_color',
|
||||||
|
'mark1_background',
|
||||||
|
'mark1_foreground',
|
||||||
|
'mark2_background',
|
||||||
|
'mark2_foreground',
|
||||||
|
'mark3_background',
|
||||||
|
'mark3_foreground',
|
||||||
|
'selection_background',
|
||||||
|
'selection_foreground',
|
||||||
|
'tab_bar_background',
|
||||||
|
'tab_bar_margin_color',
|
||||||
|
'url_color',
|
||||||
|
'wayland_titlebar_color',
|
||||||
|
# ALL_COLORS_END
|
||||||
|
) # }}}
|
||||||
pat = fr'^\s*({"|".join(color_conf_items)})\b'
|
pat = fr'^\s*({"|".join(color_conf_items)})\b'
|
||||||
return re.sub(pat, r'# \1', nraw, flags=re.MULTILINE)
|
return re.sub(pat, r'# \1', nraw, flags=re.MULTILINE)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user