diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-18 20:35:55 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-18 20:35:55 -0500 |
| commit | 8f56aced97f128b6b4d4dcf19fe5c1ba43447e6b (patch) | |
| tree | 8a69c253de56affa260755635d7a63ad58ecf906 /scripts/theme-studio/face-coverage.org | |
| parent | e64ad7a99c7636a14a60ec6d92551ea3a98b2ec6 (diff) | |
| download | dotemacs-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.org | 5 |
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 |
