diff options
| author | user <user@clank> | 2026-09-10 16:32:10 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-09-10 16:32:10 +0200 |
| commit | a2d08f4876226446c0052f033e8afea2f2ffbbf1 (patch) | |
| tree | ac77189b9c928939202adca4a43298730bccd8d2 /tests/test_dump_config.py | |
| parent | sidebar: the new-tab button says what it is, given a row to say it on (diff) | |
| download | slosh-a2d08f4876226446c0052f033e8afea2f2ffbbf1.tar.gz slosh-a2d08f4876226446c0052f033e8afea2f2ffbbf1.tar.xz slosh-a2d08f4876226446c0052f033e8afea2f2ffbbf1.zip | |
sidebar: statuses wear italic instead of an indent, and can wear colour
Three columns of indent is a fifth of a sixteen-column sidebar, spent
saying 'this belongs to the row above'. The slant says it in none: a
status now starts in the same column its tab's name starts in, and is
set in italic. That also survives the monochrome themes in contrib,
where a colour-only distinction would have had nothing to spend.
tab_status_fg / tab_status_bg are there for themes that do have colour
to spend. The fg follows tab_count when a theme does not name it -- the
same declared/derived split apply_scrolled makes -- so the six themes
in contrib get coherent status rows without a line added to any of
them. The bg is unset by default, because a band is opt-in and 'none'
is what a translucent terminal wants; the row is padded so a band that
*is* set covers the row rather than the words on it.
Two things fell out. The padding loop existed three times and is now
pad_cells. And cb_color wrote #000000 for an unset colour, so
quietly pinned attach_bg -- 'gray
ink on the terminal's own background', says its comment -- to a black
band. Unset colours are now written commented out, the same trick the
states block uses for what it wants re-derived rather than pinned.
Diffstat (limited to 'tests/test_dump_config.py')
| -rw-r--r-- | tests/test_dump_config.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/test_dump_config.py b/tests/test_dump_config.py index d6b3fd4..67679a1 100644 --- a/tests/test_dump_config.py +++ b/tests/test_dump_config.py @@ -106,7 +106,16 @@ def test_every_theme_colour_is_in_it(): src = open(SRC).read() colours = set(re.findall(r'\{"([a-z_]+)", offsetof\(config_t', src)) text = dump() - missing = sorted(c for c in colours if f" {c} " not in text) + # A colour that is *unset* is the terminal's own, and a theme block has no + # spelling for that -- parse_color takes #rrggbb and nothing else. Those + # are written commented out, so the dump still names the key while loading + # it back does not pin "none" to black. Same tolerance the settings check + # above already has. + missing = sorted( + c + for c in colours + if not re.search(r"^\s*(// )?%s[ \"]" % re.escape(c), text, re.M) + ) check( f"all {len(colours)} colours are rendered", not missing, |
