Skip to content

TextUI 0.3.0

Choose a tag to compare

@yibie yibie released this 10 Aug 09:23
· 24 commits to main since this release

TextUI 0.3.0 makes large native-widget interfaces cheaper to refresh and keeps pixel-justified text inside narrow layouts, while continuing to build on Emacs widget.el rather than replacing it.

Highlights:

  • Adds the optional textui-widgets library with text-only textui-button, textui-checkbox, and textui-field controls.
  • Reuses rendered placeholders when attaching those controls, avoiding generic widget delete-and-recreate work during full refreshes.
  • Uses real per-gap ideal, shrink, and stretch widths in the vendored Knuth–Plass implementation.
  • Removes phantom spaces at identifier break points and falls back to natural ragged-right wrapping before an emergency line can overflow.
  • Fixes editable-field and display-glyph width accounting inside bordered layouts.
  • Ships the widget performance and profiling programs under test/performance/.
  • Records the platform-native design constraints that keep TextUI an extension of Emacs instead of a second widget system.

On the release machine, a full refresh of 3,000 attached controls measured 242.79 ms versus 600.89 ms for the generic native path. These numbers describe that fixture and machine, not a cross-system guarantee.

Verification: 102 ERT tests passed; byte compilation passed with warnings treated as errors; minimum Emacs version remains 29.1.

Full changelog: v0.2.0...v0.3.0