The renderer (shared by both engines) is now lossless: synthesized glue carries the original text it replaced (ekp-glue), soft line breaks carry the whitespace swallowed around the break (ekp-soft-break), break hyphens are marked (ekp-soft-hyphen), and paragraph-edge whitespace survives as zero-display ekp-hidden text. Orphaned ekp--combine-glues-and-boxes / ekp--interleave removed. New ekp-region.el: - ekp-justify-region / ekp-unjustify-region: in-place justification with exact structural restore (character- and property-exact), robust to edits made while justified - ekp-auto-justify-mode: keeps the buffer justified at the window width; debounced re-flow on window resize, incremental per-paragraph re-justification after edits (served by the paragraph cache) - fix found in live GUI testing: buffer-local members of window-size-change-functions receive the WINDOW as argument and may run with an unrelated buffer current; the handler now resolves window and buffer explicitly (regression test included) Tests: 47 ERT (36 core + 11 region) passing; 300-case fuzz 0 failures (C/elisp parity unchanged); byte-compile clean with error-on-warn. Verified interactively in GUI Emacs: justified at 1403px maximized, auto-reflowed to 614px on frame resize. docs: interactive-use section in readme.md / readme_zh.md ci: byte-compile list includes ekp-region.el Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
12 lines
323 B
Bash
Executable File
12 lines
323 B
Bash
Executable File
#!/bin/sh
|
|
# Run the EKP test suite in batch mode.
|
|
# Usage: tests/run-tests.sh [path-to-emacs]
|
|
|
|
EMACS="${1:-${EMACS:-emacs}}"
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
exec "$EMACS" -Q --batch -L "$ROOT" \
|
|
-l "$ROOT/tests/ekp-tests.el" \
|
|
-l "$ROOT/tests/ekp-region-tests.el" \
|
|
-f ert-run-tests-batch-and-exit
|