Skip to content

Respect max line limit for invisible character replacements#57137

Merged
maxdeviant merged 1 commit into
mainfrom
limit-replaccement-chunks
May 20, 2026
Merged

Respect max line limit for invisible character replacements#57137
maxdeviant merged 1 commit into
mainfrom
limit-replaccement-chunks

Conversation

@osyvokon

@osyvokon osyvokon commented May 19, 2026

Copy link
Copy Markdown
Contributor

This change makes sure that LineWithInvisibles::from_chunks applies the max line length limit to invisible character replacements as it does to normal text chunks.

Without this change, pathological lines containing many invisible characters could produce unbounded number of line fragments.

Closes FR-6.

Self-Review Checklist:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content is consistent with the UI/UX checklist
  • Tests cover the new/changed behavior
  • Performance impact has been considered and is acceptable

Release Notes:

  • Fixed a rare panic that could occur when lines in the editor contained many invisible characters.

Ensure LineWithInvisibles::from_chunks applies the max line length
limit to replacement chunks as well as normal text chunks. Also account
for text already flushed into fragments when clipping text.

Without this change, pathological lines containing invisible characters
could produce unbounded number of line fragments (as was discovered
during an OOM error).
@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label May 19, 2026
@zed-community-bot zed-community-bot Bot added the staff Pull requests authored by a current member of Zed staff label May 19, 2026
@osyvokon osyvokon changed the title Make invisible character replacements resepect max line limit Respect max line limit for invisible character replacements May 19, 2026
@maxdeviant maxdeviant added this pull request to the merge queue May 20, 2026
Merged via the queue into main with commit d33a318 May 20, 2026
47 checks passed
@maxdeviant maxdeviant deleted the limit-replaccement-chunks branch May 20, 2026 12:44
TomPlanche pushed a commit to TomPlanche/zed that referenced this pull request May 20, 2026
…stries#57137)

This change makes sure that `LineWithInvisibles::from_chunks` applies
the max line length limit to invisible character replacements as it does
to normal text chunks.

Without this change, pathological lines containing many invisible
characters could produce unbounded number of line fragments.

Closes FR-6.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable


Release Notes:

- Fixed a rare panic that could occur when lines in the editor contained
many invisible characters.
TomPlanche pushed a commit to TomPlanche/zed that referenced this pull request Jun 2, 2026
…stries#57137)

This change makes sure that `LineWithInvisibles::from_chunks` applies
the max line length limit to invisible character replacements as it does
to normal text chunks.

Without this change, pathological lines containing many invisible
characters could produce unbounded number of line fragments.

Closes FR-6.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [x] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable


Release Notes:

- Fixed a rare panic that could occur when lines in the editor contained
many invisible characters.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement staff Pull requests authored by a current member of Zed staff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants