aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-08 02:56:39 -0500
committerCraig Jennings <c@cjennings.net>2026-06-08 02:56:39 -0500
commitd344a95e9d9b4613615910a102435c04821964ae (patch)
treee818ba7c023a604898693c84118193bf70867046 /docs
parent637fb70919c01684226cefb6b59036ed999e8504 (diff)
downloaddotemacs-d344a95e9d9b4613615910a102435c04821964ae.tar.gz
dotemacs-d344a95e9d9b4613615910a102435c04821964ae.zip
feat(theme-selector): convert theme.json into a loadable deftheme
build-theme.el is the last link in the theme-selector pipeline: a theme.json export becomes a single self-contained themes/<name>-theme.el. All four tiers convert: default from assignments.bg/.p, the syntax categories to their font-lock/tree-sitter faces with the bold/italic sets applied, UI passthrough, and package faces with :inherit/:height/weight/slant. The output is a flat generated deftheme, not the palette/faces/theme trio the hand-authored dupre ships. A theme.json carries resolved per-face hex, not dupre's semantic-mapping layer, so a flat deftheme is the faithful output and never clobbers the curated dupre files. I omitted the dec (decorator) key: Emacs has no dedicated decorator face and renders decorators with font-lock-type-face, which the type key already owns, so coloring dec independently would clobber types. Decorators follow the type color, as they do in stock Emacs. 20 ERT tests cover the attribute builder, each tier, the dec omission, and an end-to-end convert-and-load with a WCAG-AA assertion on the round-tripped default.
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions