TextUI 0.3.0
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-widgetslibrary with text-onlytextui-button,textui-checkbox, andtextui-fieldcontrols. - 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