diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-03-23 11:30:02 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-03-24 16:08:59 +0800 |
commit | 3e9b4e917d0783d0414192c3ad231cfcb813e73f (patch) | |
tree | 5e95003eea2e5076fa8db2efdcbf3970302a66bc /test/functional/ui/highlight_spec.lua | |
parent | a72f338d76c871869712518df862c85d1df25f54 (diff) | |
download | rneovim-3e9b4e917d0783d0414192c3ad231cfcb813e73f.tar.gz rneovim-3e9b4e917d0783d0414192c3ad231cfcb813e73f.tar.bz2 rneovim-3e9b4e917d0783d0414192c3ad231cfcb813e73f.zip |
vim-patch:8.2.4591: cursor line not updated when a callback moves the cursor
Problem: Cursor line not updated when a callback moves the cursor.
Solution: Check if the cursor moved. (closes vim/vim#9970)
https://github.com/vim/vim/commit/e7a74d53754765f22ef8ce71c915bb669d5f7f3f
redraw_after_callback() is N/A. Nvim handles timers on the main loop.
Diffstat (limited to 'test/functional/ui/highlight_spec.lua')
-rw-r--r-- | test/functional/ui/highlight_spec.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/test/functional/ui/highlight_spec.lua b/test/functional/ui/highlight_spec.lua index 64f0ba3419..559738ddab 100644 --- a/test/functional/ui/highlight_spec.lua +++ b/test/functional/ui/highlight_spec.lua @@ -1081,6 +1081,46 @@ describe('CursorLine and CursorLineNr highlights', function() ]]) end) + it('is updated if cursor is moved up from timer vim-patch:8.2.4591', function() + local screen = Screen.new(50, 8) + screen:set_default_attr_ids({ + [1] = {background = Screen.colors.Gray90}, -- CursorLine + [2] = {bold = true, foreground = Screen.colors.Blue1}, -- NonText + }) + screen:attach() + exec([[ + call setline(1, ['aaaaa', 'bbbbb', 'ccccc', 'ddddd']) + set cursorline + call cursor(4, 1) + + func Func(timer) + call cursor(2, 1) + endfunc + + call timer_start(300, 'Func') + ]]) + screen:expect({grid = [[ + aaaaa | + bbbbb | + ccccc | + {1:^ddddd }| + {2:~ }| + {2:~ }| + {2:~ }| + | + ]], timeout = 100}) + screen:expect({grid = [[ + aaaaa | + {1:^bbbbb }| + ccccc | + ddddd | + {2:~ }| + {2:~ }| + {2:~ }| + | + ]]}) + end) + it('with split windows in diff mode', function() local screen = Screen.new(50,12) screen:set_default_attr_ids({ |