aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2024-01-27 13:04:58 +0100
committerLuuk van Baal <luukvbaal@gmail.com>2024-01-27 13:07:11 +0100
commitb50fdcba4a1dadda5db7cfb527471b9956768ac2 (patch)
tree2f83ece969585d14979a8bfc9d06507d031aefc6 /test/functional/ui
parente35ae6fbc2ef47a7be1a787031072ba911f7e918 (diff)
downloadrneovim-b50fdcba4a1dadda5db7cfb527471b9956768ac2.tar.gz
rneovim-b50fdcba4a1dadda5db7cfb527471b9956768ac2.tar.bz2
rneovim-b50fdcba4a1dadda5db7cfb527471b9956768ac2.zip
fix(column): clear "b_signcols" before moving saved marks
Problem: Marks moved by undo may be lost to "b_signcols.count". Solution: Count signs for each undo object separately instead of once for the entire undo.
Diffstat (limited to 'test/functional/ui')
-rw-r--r--test/functional/ui/decorations_spec.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/functional/ui/decorations_spec.lua b/test/functional/ui/decorations_spec.lua
index 7b3533454c..524a1351f3 100644
--- a/test/functional/ui/decorations_spec.lua
+++ b/test/functional/ui/decorations_spec.lua
@@ -5058,6 +5058,33 @@ l5
]]}
end)
+ it('correct width with moved marks before undo savepos', function()
+ screen:try_resize(20, 4)
+ insert(example_test3)
+ feed('gg')
+ exec_lua([[
+ local ns = vim.api.nvim_create_namespace('')
+ vim.api.nvim_buf_set_extmark(0, ns, 0, 0, { sign_text = 'S1' })
+ vim.api.nvim_buf_set_extmark(0, ns, 1, 0, { sign_text = 'S2' })
+ local s3 = vim.api.nvim_buf_set_extmark(0, ns, 2, 0, { sign_text = 'S3' })
+ local s4 = vim.api.nvim_buf_set_extmark(0, ns, 2, 0, { sign_text = 'S4' })
+ vim.schedule(function()
+ vim.cmd('silent d3')
+ vim.api.nvim_buf_set_extmark(0, ns, 2, 0, { id = s3, sign_text = 'S3' })
+ vim.api.nvim_buf_set_extmark(0, ns, 2, 0, { id = s4, sign_text = 'S4' })
+ vim.cmd('silent undo')
+ vim.api.nvim_buf_del_extmark(0, ns, s3)
+ end)
+ ]])
+
+ screen:expect{grid=[[
+ S1^l1 |
+ S2l2 |
+ S4l3 |
+ |
+ ]]}
+ end)
+
it('no crash with sign after many marks #27137', function()
screen:try_resize(20, 4)
insert('a')