mirror of
https://github.com/neovim/neovim.git
synced 2026-07-20 16:11:58 +00:00
vim-patch:9.1.0211: page-wise scrolling does not support smooth-scrolling
Problem: Page-wise scrolling with Ctrl-F/Ctrl-B implements
it's own logic to change the topline and cursor.
In doing so, skipcol is not handled properly for
'smoothscroll', and virtual lines.
Solution: Re-use the logic from Ctrl-E/Ctrl-Y while staying
backward compatible as much as possible.
b9f5b95b7b
This commit is contained in:
@@ -1312,15 +1312,15 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call feedkeys("i\<PageDown>\<esc>", 'tnix')
|
||||
call assert_equal([0, 30, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 29, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 30, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 21, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 23, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 15, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
" <S-Up> is the same as <PageUp>
|
||||
" <S-Down> is the same as <PageDown>
|
||||
call cursor(1, 1)
|
||||
@@ -1335,28 +1335,28 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call feedkeys("i\<S-Down>\<esc>", 'tnix')
|
||||
call assert_equal([0, 30, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 29, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 30, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 21, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 23, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 15, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 1, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 1, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
set nostartofline
|
||||
call cursor(30, 11)
|
||||
norm! zt
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 29, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 30, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 21, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 23, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 15, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<PageUp>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
call cursor(1, 1)
|
||||
call feedkeys("A\<PageDown>\<esc>", 'tnix')
|
||||
call assert_equal([0, 9, 11, 0], getpos('.'))
|
||||
@@ -1373,15 +1373,15 @@ func Test_edit_PAGEUP_PAGEDOWN()
|
||||
call cursor(30, 11)
|
||||
norm! zt
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 29, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 30, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 21, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 23, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 13, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 15, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
call feedkeys("A\<S-Up>\<esc>", 'tnix')
|
||||
call assert_equal([0, 5, 11, 0], getpos('.'))
|
||||
call assert_equal([0, 10, 11, 0], getpos('.'))
|
||||
call cursor(1, 1)
|
||||
call feedkeys("A\<S-Down>\<esc>", 'tnix')
|
||||
call assert_equal([0, 9, 11, 0], getpos('.'))
|
||||
|
||||
Reference in New Issue
Block a user