Description
Summary
Each view has a jumplist which contains selections that live on a document. Since #4186, whenever a transaction (any sort of change) is applied to a document, we apply the transaction to the view as well and use it to update the jumplist selections. This keeps the selections up-to-date as a document changes and prevents panics that can happen when jumplist selections point out-of-bounds of the document (#2489).
#4186 only applies transactions to the currently focused view, though. If another view exists with jumplist entries for the same document, it is not updated by helix_view::apply_transaction
. This can cause an incorrect jumplist entries or panics when multiple splits work with the same document.
Reproduction Steps
Save a selection to the Jumplist and delete that part of the text from another split:
<C-w>v10[<space><C-s><C-w>wvggd
Then switch to the window with the jumplist entry: <C-w>w
. And then trigger the panic through either <C-o>
or any change to the document, like d
.
Helix log
No response
Platform
Linux
Terminal Emulator
Kitty 0.26.2
Helix Version
22.08.1 (fd585c1)