aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/face-coverage.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-18 20:35:55 -0500
committerCraig Jennings <c@cjennings.net>2026-06-18 20:35:55 -0500
commit8f56aced97f128b6b4d4dcf19fe5c1ba43447e6b (patch)
tree8a69c253de56affa260755635d7a63ad58ecf906 /scripts/theme-studio/face-coverage.org
parente64ad7a99c7636a14a60ec6d92551ea3a98b2ec6 (diff)
downloaddotemacs-8f56aced97f128b6b4d4dcf19fe5c1ba43447e6b.tar.gz
dotemacs-8f56aced97f128b6b4d4dcf19fe5c1ba43447e6b.zip
feat(theme-studio): add reproducible face-coverage generator and diff
face-coverage.org was rebuilt by a throwaway /tmp script each time. This makes it reproducible: face-coverage-dump.el dumps every face's name, docstring, and defface file from the live daemon (plus all group docs and package summaries), and face_coverage.py turns that into the tiered worklist (emacs-core / emacs-general / per-package), classifying each face by where its defface lives. make face-coverage regenerates the file; make face-coverage-diff reports the coverage delta against the committed copy. The dump binds coding-system-for-write so writing the docstring JSON never drops into the interactive coding-system prompt. I validated the builder by regenerating and diffing against the hand-built worklist: headings identical, only the intro and one sharper description differ.
Diffstat (limited to 'scripts/theme-studio/face-coverage.org')
-rw-r--r--scripts/theme-studio/face-coverage.org5
1 files changed, 3 insertions, 2 deletions
diff --git a/scripts/theme-studio/face-coverage.org b/scripts/theme-studio/face-coverage.org
index 1fff4d346..b5f8b795b 100644
--- a/scripts/theme-studio/face-coverage.org
+++ b/scripts/theme-studio/face-coverage.org
@@ -9,7 +9,8 @@ studio already themes it; TODO = not yet. Three top-level tiers:
- emacs-general: built-in Emacs subsystems (org, gnus, erc, diff, vc, custom, ...), one child each.
- one heading per third-party package installed from elpa (magit, vertico, consult, ...).
Tier is decided by where each face's defface lives: /usr/share/emacs = built-in, elpa = package.
-The line under each face is its Emacs docstring (first line), where one exists.
+The line under each bucket is its group/package description; the line under each face is its
+Emacs docstring (first line), where one exists.
Totals: 690 / 1293 faces covered; 1129 carry a docstring. Tiers: core 1, general 75, packages 43.
Coverage tiers in the studio: syntax font-lock=23, UI tier=21, package inventory=643 (39 packages).
@@ -935,7 +936,7 @@ Mechanism to close a TODO: core/UI faces -> UI_FACES in generate.py; package + s
*** TODO message-signature-separator
Face used for displaying the signature separator.
** TODO message-header [0/7]
- Mail and news message composing.
+ Message Headers.
*** TODO message-header-cc
Face used for displaying Cc headers.
*** TODO message-header-name