Skip to content

vim: Fix helix select next match panic when search wraps around#51642

Merged
Veykril merged 1 commit intomainfrom
veykril/push-szmtkktlupzz
Mar 16, 2026
Merged

vim: Fix helix select next match panic when search wraps around#51642
Veykril merged 1 commit intomainfrom
veykril/push-szmtkktlupzz

Conversation

@Veykril
Copy link
Copy Markdown
Member

@Veykril Veykril commented Mar 16, 2026

Fixes ZED-4YP

Sort and deduplicate anchor ranges in do_helix_select before passing them to select_anchor_ranges. When the search wraps past the end of the document back to the beginning, the new selection is at a lower offset than the accumulated prior selections, producing unsorted anchors that crash the rope cursor with 'cannot summarize backward'.

Release Notes:

  • Fixed a panic in helix mode with search selecting wrapping around the document end

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Mar 16, 2026
@zed-community-bot zed-community-bot bot added the staff Pull requests authored by a current member of Zed staff label Mar 16, 2026
@zed-codeowner-coordinator zed-codeowner-coordinator bot requested review from a team, SomeoneToIgnore and cole-miller and removed request for a team March 16, 2026 08:47
…5T3)

Sort and deduplicate anchor ranges in do_helix_select before passing
them to select_anchor_ranges. When the search wraps past the end of
the document back to the beginning, the new selection is at a lower
offset than the accumulated prior selections, producing unsorted
anchors that crash the rope cursor with 'cannot summarize backward'.
@Veykril Veykril force-pushed the veykril/push-szmtkktlupzz branch from fe3f01f to 4e14b51 Compare March 16, 2026 08:47
@Veykril Veykril changed the title vim: fix helix select next match crash when search wraps around vim: Fix helix select next match panic when search wraps around Mar 16, 2026
@Veykril
Copy link
Copy Markdown
Member Author

Veykril commented Mar 16, 2026

/cherry-pick preview

@Veykril Veykril merged commit 357ee0f into main Mar 16, 2026
30 checks passed
@Veykril Veykril deleted the veykril/push-szmtkktlupzz branch March 16, 2026 10:14
github-actions bot pushed a commit that referenced this pull request Mar 16, 2026
Fixes ZED-4YP

Sort and deduplicate anchor ranges in do_helix_select before passing
them to select_anchor_ranges. When the search wraps past the end of the
document back to the beginning, the new selection is at a lower offset
than the accumulated prior selections, producing unsorted anchors that
crash the rope cursor with 'cannot summarize backward'.


Release Notes:

- Fixed a panic in helix mode with search selecting wrapping around the
document end
zed-zippy bot added a commit that referenced this pull request Mar 16, 2026
…) (cherry-pick to preview) (#51649)

Cherry-pick of #51642 to preview

----
Fixes ZED-4YP

Sort and deduplicate anchor ranges in do_helix_select before passing
them to select_anchor_ranges. When the search wraps past the end of the
document back to the beginning, the new selection is at a lower offset
than the accumulated prior selections, producing unsorted anchors that
crash the rope cursor with 'cannot summarize backward'.


Release Notes:

- Fixed a panic in helix mode with search selecting wrapping around the
document end

Co-authored-by: Lukas Wirth <lukas@zed.dev>
Veykril pushed a commit that referenced this pull request Apr 2, 2026
Closes #51573
Closes #52852 * I believe, looking for verification of that.

A very similar issue was belived to be fixed with #51642 , however it
seems like there is still some edge cases that were causing crashes.
These issues appeared to me to be caused by the dedup method failing to
catch sub-ranges (created by entering SelectMode after the search) as
duplicates.

two new tests that isolate the case in 51573 and 52852 respectively.

fixed vid:


https://github.com/user-attachments/assets/f62d5210-6cb3-4bdf-a061-efc265eb2804



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:

- helix: Fix search selection range deduplication logic
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.

2 participants