From 2238b3a40473e8cf1e49915a24d56366b72aede5 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Fri, 19 Jun 2026 06:05:44 -0400 Subject: fix(theme-studio): two-pass default-face capture so faces aren't dropped Re-capturing the default-face snapshot regressed 43 faces to nonexistent, transient and dirvish among them. The capture loaded each package file whole with a bare `load`, and transient 0.12.0 now requires cond-let, which isn't on the batch load-path. The load failed, the error was swallowed, and every face in the file silently dropped. Any package that gains a dependency would hit the same trap. I split the capture into two passes. Pass 1 keeps the best-effort full load, the only way to register faces a package builds in a macro or loop rather than a literal defface (rainbow-delimiters depth faces, markdown headers). Pass 2 reads each file and evaluates only its defface forms, so a face whose package can't fully load in batch still registers from its self-contained declaration. Pass 2 runs last so the pristine default spec wins over anything a pass-1 load customized. The refreshed snapshot now records 137 more faces than before (magit, lsp, git, org, and company defaults the old single pass missed), plus the overline field everywhere. The only two dropped faces are gone upstream: consult-separator was removed from consult, and json-mode is no longer installed. --- scripts/theme-studio/theme-studio.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'scripts/theme-studio/theme-studio.html') diff --git a/scripts/theme-studio/theme-studio.html b/scripts/theme-studio/theme-studio.html index cdd52e171..5e8dee933 100644 --- a/scripts/theme-studio/theme-studio.html +++ b/scripts/theme-studio/theme-studio.html @@ -281,9 +281,9 @@