diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-08-21 08:58:18 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-21 08:58:18 +0800 |
commit | a2a226170d178086592967f23c39112811178f0c (patch) | |
tree | 4f6e662c7968a674192ef1b60ac7d42099239040 /test/functional/legacy/window_cmd_spec.lua | |
parent | 694814cdd54ac245d1f4d2c28dce7e9132fcb616 (diff) | |
download | rneovim-a2a226170d178086592967f23c39112811178f0c.tar.gz rneovim-a2a226170d178086592967f23c39112811178f0c.tar.bz2 rneovim-a2a226170d178086592967f23c39112811178f0c.zip |
vim-patch:9.0.1772: Cursor may be adjusted in 'splitkeep'ed windows (#24811)
Problem: Cursor is adjusted in window that did not change in size by
'splitkeep'.
Solution: Only check that cursor position is valid in a window that
has changed in size.
closes: vim/vim#12509
https://github.com/vim/vim/commit/16af913eeefb288ce968fb87e09a597413861900
Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
Diffstat (limited to 'test/functional/legacy/window_cmd_spec.lua')
-rw-r--r-- | test/functional/legacy/window_cmd_spec.lua | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/functional/legacy/window_cmd_spec.lua b/test/functional/legacy/window_cmd_spec.lua index 373a9c7163..979b46ae47 100644 --- a/test/functional/legacy/window_cmd_spec.lua +++ b/test/functional/legacy/window_cmd_spec.lua @@ -43,6 +43,61 @@ describe('splitkeep', function() screen:attach() end) + -- oldtest: Test_splitkeep_cursor() + it('does not adjust cursor in window that did not change size', function() + screen:try_resize(75, 8) + -- FIXME: bottom window is different without the "vsplit | close" + exec([[ + vsplit | close + set scrolloff=5 + set splitkeep=screen + autocmd CursorMoved * wincmd p | wincmd p + call setline(1, range(1, 200)) + func CursorEqualize() + call cursor(100, 1) + wincmd = + endfunc + wincmd s + call CursorEqualize() + ]]) + + screen:expect([[ + 99 | + ^100 | + 101 | + [No Name] [+] | + 5 | + 6 | + [No Name] [+] | + | + ]]) + + feed('j') + screen:expect([[ + 100 | + ^101 | + 102 | + [No Name] [+] | + 5 | + 6 | + [No Name] [+] | + | + ]]) + + command('set scrolloff=0') + feed('G') + screen:expect([[ + 198 | + 199 | + ^200 | + [No Name] [+] | + 5 | + 6 | + [No Name] [+] | + | + ]]) + end) + -- oldtest: Test_splitkeep_callback() it('does not scroll when split in callback', function() exec([[ |