Charlie Marsh
a16863f870
Keep wrapped composer whitespace with following text ( #37709 )
...
## Why
Overflowing whitespace in the TUI composer could occupy a separate blank row
instead of remaining attached to the text that follows it.
## What changed
- Add composer-specific, grapheme-safe wrapping that keeps breakable Unicode
whitespace with the following word while preserving semantic breakpoints such
as hyphens and nonbreaking spaces.
- Preserve cursor insertion rows and positions as content reflows, including
across full lines and wrapped fragments.
- Keep wrapping linear for maximum-length unbroken input.
## Testing
Add focused rendering and cursor tests for ASCII and Unicode whitespace,
hyphenated words, reflowed fragments, and maximum-length input.
GitOrigin-RevId: fb7713e33bfddf37460b6c2f6f0c9700f31d86bf
2026-08-09 15:49:17 +00:00
..
2026-08-08 21:01:19 +00:00
2026-08-04 19:18:03 +00:00
2026-08-09 15:49:17 +00:00
2026-08-07 23:43:14 +00:00
2026-07-20 14:44:25 +00:00
2026-08-01 14:33:12 +00:00
2026-08-07 00:37:50 +00:00
2026-07-11 01:15:48 +00:00
2026-08-07 00:37:50 +00:00
2026-08-01 17:43:03 +00:00
2026-08-01 17:43:03 +00:00
2026-07-29 14:01:31 +00:00
2026-08-05 18:09:26 +00:00
2026-07-29 18:40:38 +00:00
2026-07-29 13:53:15 +00:00
2026-08-07 03:54:23 +00:00
2026-08-07 03:54:23 +00:00
2026-07-30 21:49:53 +00:00
2026-08-07 00:37:50 +00:00
2026-08-04 03:49:53 +00:00
2026-07-21 19:17:18 +00:00
2026-08-04 19:12:46 +00:00
2026-07-21 14:25:18 +00:00
2026-07-15 01:07:29 +00:00
2026-08-07 02:45:35 +00:00
2026-07-22 23:45:45 +00:00
2026-06-15 19:25:54 -07:00
2026-08-07 23:43:14 +00:00
2026-08-07 02:45:35 +00:00
2026-06-17 19:52:43 +02:00
2026-07-23 23:13:59 +00:00
2026-08-04 16:53:33 +00:00
2026-08-07 02:50:32 +00:00
2026-08-04 22:23:40 +00:00
2026-08-07 00:05:41 +00:00
2026-08-01 14:33:12 +00:00
2026-08-07 23:43:14 +00:00
2026-07-29 13:53:15 +00:00
2026-08-04 16:53:33 +00:00
2026-07-29 03:50:00 +00:00
2026-06-12 17:14:27 -07:00
2026-08-07 00:37:50 +00:00
2026-08-07 00:37:50 +00:00
2026-07-29 13:53:15 +00:00
2026-08-01 17:43:03 +00:00
2026-08-01 17:43:03 +00:00
2026-08-01 17:43:03 +00:00
2026-08-05 20:44:03 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-06-24 03:10:20 +00:00
2026-08-04 22:23:40 +00:00
2026-06-26 19:27:31 +00:00
2026-06-26 19:27:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-19 16:50:54 +00:00
2026-06-08 17:02:36 -07:00
2026-07-18 18:00:51 +00:00
2026-07-12 19:18:37 +00:00
2026-08-01 14:33:12 +00:00
2026-07-17 23:07:40 +00:00
2026-08-05 20:44:03 +00:00
2026-08-05 20:44:03 +00:00
2026-07-29 13:53:15 +00:00
2026-08-04 19:12:46 +00:00
2026-07-21 19:17:18 +00:00
2026-08-07 03:54:23 +00:00
2026-07-29 13:53:15 +00:00
2026-08-03 23:05:35 +00:00
2026-08-05 20:44:03 +00:00
2026-07-21 20:13:08 +00:00
2026-07-23 19:19:35 +00:00
2026-06-18 15:06:23 -07:00
2026-07-20 15:44:37 +00:00
2026-08-07 02:45:35 +00:00
2026-06-10 11:24:29 -07:00
2026-08-08 04:57:06 +00:00
2026-08-01 17:43:03 +00:00
2026-07-29 13:53:15 +00:00
2026-07-29 14:01:31 +00:00
2026-07-27 17:59:06 +00:00
2026-06-16 09:09:24 -07:00
2026-07-29 13:53:15 +00:00
2026-06-10 17:55:49 -07:00
2026-07-29 14:01:31 +00:00
2026-08-04 19:05:45 +00:00
2026-07-28 20:12:13 +00:00
2026-08-04 19:05:45 +00:00
2026-08-07 00:05:41 +00:00
2026-07-06 16:33:13 -04:00
2026-07-08 12:17:58 -04:00
2026-08-01 14:33:12 +00:00
2026-06-12 09:26:08 -07:00
2026-06-12 09:26:08 -07:00
2026-07-28 19:58:25 +00:00
2026-07-29 14:01:31 +00:00
2026-06-11 09:23:08 -07:00
2026-06-11 18:16:39 -07:00
2026-06-22 04:25:07 -07:00
2026-06-22 04:25:07 -07:00
2026-07-29 14:01:31 +00:00