mirror of
https://github.com/neovim/neovim.git
synced 2025-09-25 20:48:32 +00:00
vim-patch:9.0.1772: Cursor may be adjusted in 'splitkeep'ed windows
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
16af913eee
Co-authored-by: Luuk van Baal <luukvbaal@gmail.com>
This commit is contained in:
@@ -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([[
|
||||
|
Reference in New Issue
Block a user