fix(config-settings,docs): address final whole-branch review findings
Bundled fix wave for six findings from the sub-category-granularity whole-branch review: - config-settings: reset in_subcat on Tab/Shift-Tab so up/down keep routing to cur_row instead of freezing on the Sponge/Paths pages after a drill-down - verify-manual: _parsed_components() now delegates to generate_component_registry.collect_components() instead of a lossy dict.update() merge, closing a taxonomy-check blind spot on identity collisions - verify-manual: add test_committed_registry_matches_headers to catch the committed registry drifting from current # COMPONENT headers - build-docs workflow: trigger on conf.d/** and config.fish edits, not just functions/** - __config_settings_draw_subcat: show (Universal)/(Session) in the drill-down title so the persistence scope is visible before toggling - __config_settings_draw / config-settings: mention the Enter sub-category drill-down in the on-screen hint and --help text - generate_component_registry: send the "wrote ..." progress line to stderr so it no longer corrupts --concat's stdout output
This commit is contained in:
@@ -105,7 +105,7 @@ def main() -> int:
|
||||
for w in warnings:
|
||||
print(f" WARN {w}", file=sys.stderr)
|
||||
OUTPUT.write_text(render(registry))
|
||||
print(f"wrote {OUTPUT} ({len(registry)} entries)")
|
||||
print(f"wrote {OUTPUT} ({len(registry)} entries)", file=sys.stderr)
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
+16
-5
@@ -131,11 +131,9 @@ def _parsed_functions() -> dict[str, dict[str, list[str]]]:
|
||||
|
||||
|
||||
def _parsed_components() -> dict[str, list[str]]:
|
||||
repo = Path(__file__).parent.parent
|
||||
out = mt.parse_components(repo / "functions")
|
||||
out.update(mt.parse_components(repo / "conf.d"))
|
||||
out.update(mt.parse_component_file(repo / "config.fish"))
|
||||
return out
|
||||
import generate_component_registry as gcr
|
||||
|
||||
return gcr.collect_components()
|
||||
|
||||
|
||||
_C0_TAGS = {"always/on", "always/off"}
|
||||
@@ -1123,6 +1121,19 @@ def test_build_manual_regenerates_registry_before_building():
|
||||
)
|
||||
|
||||
|
||||
def test_committed_registry_matches_headers():
|
||||
"""The committed conf.d/__fish_config_op_registry.fish must match what
|
||||
generate_component_registry.py would produce right now from the current
|
||||
`# COMPONENT` headers -- otherwise CI has nothing catching drift."""
|
||||
import generate_component_registry as gcr
|
||||
|
||||
registry, _ = gcr.build_registry(gcr.collect_components())
|
||||
assert gcr.render(registry) == gcr.OUTPUT.read_text(), (
|
||||
"conf.d/__fish_config_op_registry.fish is stale — run "
|
||||
"__fish_config_op_registry_rebuild"
|
||||
)
|
||||
|
||||
|
||||
TESTS = [v for k, v in sorted(globals().items()) if k.startswith("test_")]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user