Auto generate the list of all color config keys
This commit is contained in:
parent
34d87b7a72
commit
39dcfb4e5d
@ -4,26 +4,38 @@
|
||||
|
||||
|
||||
import re
|
||||
from typing import List
|
||||
|
||||
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:
|
||||
from kitty.options.definition import definition
|
||||
write_output('kitty', definition)
|
||||
nullable_colors = []
|
||||
all_colors = []
|
||||
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'):
|
||||
nullable_colors.append(opt.name)
|
||||
with open('kitty/rc/set_colors.py', 'r+') as f:
|
||||
raw = f.read()
|
||||
nraw = re.sub(
|
||||
r'(# NULLABLE_COLORS_START).+?(\s+# NULLABLE_COLORS_END)',
|
||||
r'\1' + '\n ' + '\n '.join(map(lambda x: f'{x!r},', sorted(nullable_colors))) + r'\2',
|
||||
raw, flags=re.DOTALL | re.MULTILINE)
|
||||
if nraw != raw:
|
||||
f.seek(0)
|
||||
f.truncate()
|
||||
f.write(nraw)
|
||||
if callable(opt.parser_func):
|
||||
if opt.parser_func.__name__ in ('to_color_or_none', 'cursor_text_color'):
|
||||
nullable_colors.append(opt.name)
|
||||
all_colors.append(opt.name)
|
||||
elif opt.parser_func.__name__ in ('to_color', 'macos_titlebar_color'):
|
||||
all_colors.append(opt.name)
|
||||
patch_color_list('kitty/rc/set_colors.py', nullable_colors, 'NULLABLE')
|
||||
patch_color_list('kittens/themes/collection.py', all_colors, 'ALL', ' ' * 8)
|
||||
|
||||
from kittens.diff.options.definition import definition as kd
|
||||
write_output('kittens.diff', kd)
|
||||
|
||||
@ -35,37 +35,291 @@ def patch_conf(raw: str, theme_name: str) -> str:
|
||||
raw += '\n\n'
|
||||
nraw = raw + addition
|
||||
# comment out all existing color definitions
|
||||
color_conf_items = [f'color{i}' for i in range(256)] + list(filter(None, '''
|
||||
foreground
|
||||
background
|
||||
selection_foreground
|
||||
selection_background
|
||||
|
||||
cursor
|
||||
cursor_text_color
|
||||
|
||||
url_color
|
||||
|
||||
active_border_color
|
||||
inactive_border_color
|
||||
bell_border_color
|
||||
|
||||
wayland_titlebar_color
|
||||
macos_titlebar_color
|
||||
|
||||
active_tab_foreground
|
||||
active_tab_background
|
||||
inactive_tab_foreground
|
||||
inactive_tab_background
|
||||
tab_bar_background
|
||||
|
||||
mark1_foreground
|
||||
mark1_background
|
||||
mark2_foreground
|
||||
mark2_background
|
||||
mark3_foreground
|
||||
mark3_background
|
||||
'''.splitlines()))
|
||||
color_conf_items = ( # {{{
|
||||
# generated by gen_config.py do not EDIT
|
||||
# ALL_COLORS_START
|
||||
'active_border_color',
|
||||
'active_tab_background',
|
||||
'active_tab_foreground',
|
||||
'background',
|
||||
'bell_border_color',
|
||||
'color0',
|
||||
'color1',
|
||||
'color10',
|
||||
'color100',
|
||||
'color101',
|
||||
'color102',
|
||||
'color103',
|
||||
'color104',
|
||||
'color105',
|
||||
'color106',
|
||||
'color107',
|
||||
'color108',
|
||||
'color109',
|
||||
'color11',
|
||||
'color110',
|
||||
'color111',
|
||||
'color112',
|
||||
'color113',
|
||||
'color114',
|
||||
'color115',
|
||||
'color116',
|
||||
'color117',
|
||||
'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'
|
||||
return re.sub(pat, r'# \1', nraw, flags=re.MULTILINE)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user