Skip to content

Add --wrap-word-lookback for word-aware line wrapping#2163

Open
igrmk wants to merge 1 commit into
dandavison:mainfrom
igrmk:wrap-word-lookback
Open

Add --wrap-word-lookback for word-aware line wrapping#2163
igrmk wants to merge 1 commit into
dandavison:mainfrom
igrmk:wrap-word-lookback

Conversation

@igrmk
Copy link
Copy Markdown

@igrmk igrmk commented May 25, 2026

Supersedes #2161 (could not be reopened due to force-push).

Opt-in setting that backs the wrap point up to N columns in search of a more natural break (whitespace if present, else the nearest non-word character) instead of slicing through the middle of a word. Defaults to 0 (disabled), so existing output is unchanged.

Before (--wrap-max-lines=3):

before

After (--wrap-max-lines=3 --wrap-word-lookback=30):

after

Introduces an opt-in setting that scans the last N columns before the
column-based wrap point and prefers a more natural break (whitespace if
present, otherwise the nearest non-word character) to avoid splitting
mid-word. Defaults to 0 (disabled), preserving the existing column-exact
wrap.

The wrap is implemented as a two-pass walk over the line: pass 1 decides
all cut points from the underlying characters alone (independent of how
the input was split into styled segments), pass 2 slices the segments at
those cuts. This makes the per-line wrap deterministic across the syntax
and diff style streams.
@igrmk igrmk force-pushed the wrap-word-lookback branch from 58e514c to 32381a8 Compare May 25, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant