diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-08-10 04:21:31 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-10 04:21:31 -0400 |
| commit | 2546741d1b36feb7a2e438428992ff26089da184 (patch) | |
| tree | 292e4ac90846edbb484a7fe526f748ae1c06c755 /runtime/plugin/python_setup.vim | |
| parent | 8d406ed2acac032d2d7ff560ec26c07d5e284c27 (diff) | |
| download | rneovim-2546741d1b36feb7a2e438428992ff26089da184.tar.gz rneovim-2546741d1b36feb7a2e438428992ff26089da184.tar.bz2 rneovim-2546741d1b36feb7a2e438428992ff26089da184.zip | |
fix(extmarks): undo-redo of a mark explicitly moved during an edit #41252
Problem:
A mark moved by nvim_buf_set_extmark() during an edit is misplaced by
undo and redo. Only splices ("edits") are recorded, and replaying them
reproduces the shifts they caused, never the explicit set: the mark ends
up wherever the text pushed it.
Solution:
When an open undo block moves an existing mark, record both positions.
Undo restores the pre-set position, redo re-applies the set.
Partially reverts 18334a4a0cd9 ; ExtmarkSavePos.row/col were unused
because nothing recorded an explicit move, but now `extmark_set()` does.
Diffstat (limited to 'runtime/plugin/python_setup.vim')
0 files changed, 0 insertions, 0 deletions