diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-09 09:41:28 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-09 09:41:28 -0500 |
| commit | 126a4e977cbde3b4e91823cd1ea126d054a51be1 (patch) | |
| tree | 43c219adb577812e769c5d81858f43f90312883e /scripts/theme-studio/test-app-util.mjs | |
| parent | ce3f50e09518367e5d69b304e305e7fe7ed2298c (diff) | |
| download | dotemacs-126a4e977cbde3b4e91823cd1ea126d054a51be1.tar.gz dotemacs-126a4e977cbde3b4e91823cd1ea126d054a51be1.zip | |
fix(theme-studio): make the live buffer preview render UI faces the way Emacs does
The mock buffer rendered several faces wrong, verified against the running daemon and emacs -Q:
- highlight was flat monochrome text. Like region, the highlight face is background-only, so Emacs lets the syntax foreground show through (face merge: highlight over a keyword keeps the keyword color, adds the highlight background). Both now go through one overlay helper that keeps token colors and only overrides the foreground when the face sets one.
- cursor was an empty block at end-of-line. Emacs draws a box cursor on the character at point, in the frame background over the cursor color — now it sits on a real glyph.
- the overlay faces, the line-number gutter, and the paren faces ignored weight/underline/etc. They now honor bold/italic/underline/strike, matching the table preview.
- the fringe showed only its background. It now draws a continuation indicator in the fringe foreground.
- the mode line had no box. It now carries the 3D released-button box that is the Emacs default.
Defaults seeded to the theme-independent Emacs core styles (from emacs -Q): error/warning/success are bold; lazy-highlight and show-paren-match are underlined (link already was).
Added a #mocktest gate pinning these — overlay faces keep token colors, the cursor is on a glyph, styles render, the fringe indicator is present, the mode line has its box. Verified it goes red when the rendering regresses.
Diffstat (limited to 'scripts/theme-studio/test-app-util.mjs')
0 files changed, 0 insertions, 0 deletions
