diff options
author | Lewis Russell <lewis6991@gmail.com> | 2022-10-17 10:19:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-17 10:19:26 +0100 |
commit | 190019dd79aa66d9be9003b0249473634dd854eb (patch) | |
tree | 62deb885a7c102273a6596091c5af7b7b96afe4d /test | |
parent | 042eb74ff1ed63d79f8a642649cd6be6ec4b0eb9 (diff) | |
parent | 2921de6a964e68bb0c9591c14b8550aee2e337da (diff) | |
download | rneovim-190019dd79aa66d9be9003b0249473634dd854eb.tar.gz rneovim-190019dd79aa66d9be9003b0249473634dd854eb.tar.bz2 rneovim-190019dd79aa66d9be9003b0249473634dd854eb.zip |
Merge pull request #20665 from lewis6991/fix/decor_redraw
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/ui/decorations_spec.lua | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/functional/ui/decorations_spec.lua b/test/functional/ui/decorations_spec.lua index 9448674a41..e9072ebf98 100644 --- a/test/functional/ui/decorations_spec.lua +++ b/test/functional/ui/decorations_spec.lua @@ -564,6 +564,7 @@ describe('extmark decorations', function() [24] = {bold = true}; [25] = {background = Screen.colors.LightRed}; [26] = {background=Screen.colors.DarkGrey, foreground=Screen.colors.LightGrey}; + [27] = {background = Screen.colors.Plum1}; } ns = meths.create_namespace 'test' @@ -959,6 +960,55 @@ end]] | ]]) end) + + it('avoids redraw issue #20651', function() + exec_lua[[ + vim.cmd.normal'10oXXX' + vim.cmd.normal'gg' + local ns = vim.api.nvim_create_namespace('ns') + + local bufnr = vim.api.nvim_create_buf(false, true) + vim.api.nvim_open_win(bufnr, false, { relative = 'win', height = 1, width = 1, row = 0, col = 0 }) + + vim.api.nvim_create_autocmd('CursorMoved', { callback = function() + local row = vim.api.nvim_win_get_cursor(0)[1] - 1 + vim.api.nvim_buf_set_extmark(0, ns, row, 0, { id = 1 }) + vim.api.nvim_buf_set_lines(bufnr, 0, -1, true, {}) + vim.schedule(function() + vim.api.nvim_buf_set_extmark(0, ns, row, 0, { + id = 1, + virt_text = {{'HELLO', 'Normal'}}, + }) + end) + end + }) + ]] + + for _ = 1, 3 do + helpers.sleep(10) + feed 'j' + end + + screen:expect{grid=[[ + {27: } | + XXX | + XXX | + ^XXX HELLO | + XXX | + XXX | + XXX | + XXX | + XXX | + XXX | + XXX | + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]} + + end) + end) describe('decorations: virtual lines', function() |