aboutsummaryrefslogtreecommitdiff
path: root/scripts/theme-studio/run-tests.sh
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-24 14:44:28 -0400
committerCraig Jennings <c@cjennings.net>2026-06-24 16:15:24 -0400
commitfa5b28ea69f3bff0941f8a097a9746b7a67fa900 (patch)
tree71571b286b77b9168de3308f50877ad7f6fa4854 /scripts/theme-studio/run-tests.sh
parentc11ad211f5d72b6ee2b48d80f25d16e3e85248eb (diff)
downloaddotemacs-fa5b28ea69f3bff0941f8a097a9746b7a67fa900.tar.gz
dotemacs-fa5b28ea69f3bff0941f8a097a9746b7a67fa900.zip
feat(theme-studio): nerd-icons gallery as a hue-ordered icon grid
The nerd-icons pane is now a grid: one row per color face, the rows ordered by hue so families cluster, distinct icons (deduped within a color) drawn in their color with the icon's nerd-font name beneath. A "preview:" dropdown above the grid picks the glyph size in points, with Left/Right arrows to step it. Single-pane apps show it disabled, naming the preview. This replaces the v1 legend in the pane, whose data is still captured for round-trip. build-nerd-icons-legend.el is now a library. A cj/nerd-icons-write-legend entry point requires nerd-icons only at write time, so the capture logic loads and unit-tests without it. It dedupes icons by name within a face, computes each face's native hue, and orders the groups by hue. Writing the test surfaced a latent bug: face-hsl used (cadr (assoc t spec)), which grabs the first keyword instead of the plist. It only worked because the real faces fall through to the face-foreground branch. I fixed it to a correct t-clause parse. Coverage: 7 ERT capture tests (dedupe, hue order, lightness tiebreak, name sort, skip rules), 4 Python validator edges, and browser gates for the grid and the size dropdown. Locate stays color-level: clicking a color flashes its icons, and clicking an icon flashes its color row. Icons aren't individually editable, so there's nothing per-icon to select.
Diffstat (limited to 'scripts/theme-studio/run-tests.sh')
-rwxr-xr-xscripts/theme-studio/run-tests.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/scripts/theme-studio/run-tests.sh b/scripts/theme-studio/run-tests.sh
index 6107287d7..f2daa74b5 100755
--- a/scripts/theme-studio/run-tests.sh
+++ b/scripts/theme-studio/run-tests.sh
@@ -47,10 +47,11 @@ else fail_msg "Node unit tests"; grep -E 'not ok|AssertionError|Error' /tmp/ts-n
# headless batch. Skip cleanly if no emacs is on PATH (JS/Python gates still run).
BT_TESTS="$HERE/../../tests/test-build-theme.el"
FD_TESTS="$HERE/test-face-docs-dump.el"
+NL_TESTS="$HERE/test-nerd-icons-legend-dump.el"
if command -v emacs >/dev/null 2>&1 && [ -f "$BT_TESTS" ]; then
if emacs --batch --no-site-file --no-site-lisp \
-L "$HERE/../.." -L "$HERE/../../modules" -L "$HERE/../../tests" -L "$HERE/../../themes" \
- -l "$BT_TESTS" -l "$FD_TESTS" -f ert-run-tests-batch-and-exit >/tmp/ts-bt.log 2>&1; then
+ -l "$BT_TESTS" -l "$FD_TESTS" -l "$NL_TESTS" -f ert-run-tests-batch-and-exit >/tmp/ts-bt.log 2>&1; then
pass_msg "theme-studio ERT tests ($(grep -oE 'Ran [0-9]+' /tmp/ts-bt.log | awk '{print $2}') tests)"
else fail_msg "theme-studio ERT tests"; grep -E 'FAILED|Error' /tmp/ts-bt.log | sed 's/^/ /' | head -20; fi
else