From 968cd1ed933c039b8d60b0110bc6b539c71e387d Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Thu, 16 Feb 2023 07:25:16 +0800 Subject: vim-patch:9.0.1309: scrolling two lines with even line count and 'scrolloff' set Problem: Scrolling two lines with even line count and 'scrolloff' set. Solution: Adjust how the topline is computed. (closes vim/vim#10545) https://github.com/vim/vim/commit/1d6539cf36a7b6d1afe76fb6316fe662f543bf60 Cherry-pick test_scroll_opt.vim changes from patch 8.2.1432. Co-authored-by: Bram Moolenaar --- src/nvim/testdir/test_scrollbind.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/nvim/testdir/test_scrollbind.vim') diff --git a/src/nvim/testdir/test_scrollbind.vim b/src/nvim/testdir/test_scrollbind.vim index 6c5488be05..f67a559c60 100644 --- a/src/nvim/testdir/test_scrollbind.vim +++ b/src/nvim/testdir/test_scrollbind.vim @@ -217,8 +217,8 @@ end of window 2 \ '7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02', \ '56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02', \ 'UTSRQPONMLKJIHGREDCBA9876543210 02', - \ '. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11', - \ '. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11', + \ '. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10', + \ '. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10', \ ''], getline(1, '$')) enew! -- cgit From af23d173883f47fd02a9a380c719e4428370b484 Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 7 Mar 2023 04:13:04 +0100 Subject: test: move oldtests to test directory (#22536) The new oldtest directory is in test/old/testdir. The reason for this is that many tests have hardcoded the parent directory name to be 'testdir'. --- src/nvim/testdir/test_scrollbind.vim | 272 ----------------------------------- 1 file changed, 272 deletions(-) delete mode 100644 src/nvim/testdir/test_scrollbind.vim (limited to 'src/nvim/testdir/test_scrollbind.vim') diff --git a/src/nvim/testdir/test_scrollbind.vim b/src/nvim/testdir/test_scrollbind.vim deleted file mode 100644 index f67a559c60..0000000000 --- a/src/nvim/testdir/test_scrollbind.vim +++ /dev/null @@ -1,272 +0,0 @@ -" Test for 'scrollbind' causing an unexpected scroll of one of the windows. -func Test_scrollbind() - " We don't want the status line to cause problems: - set laststatus=0 - let totalLines = &lines * 20 - let middle = totalLines / 2 - new | only - for i in range(1, totalLines) - call setline(i, 'LINE ' . i) - endfor - exe string(middle) - normal zt - normal M - aboveleft vert new - for i in range(1, totalLines) - call setline(i, 'line ' . i) - endfor - exe string(middle) - normal zt - normal M - " Execute the following two commands at once to reproduce the problem. - setl scb | wincmd p - setl scb - wincmd w - let topLineLeft = line('w0') - wincmd p - let topLineRight = line('w0') - setl noscrollbind - wincmd p - setl noscrollbind - call assert_equal(0, topLineLeft - topLineRight) -endfunc - -" Test for 'scrollbind' -func Test_scrollbind_opt() - new | only - set noscrollbind - set scrollopt=ver,jump scrolloff=2 nowrap noequalalways splitbelow - - " Insert the text used for the test - append - - -start of window 1 -. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 -. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 -. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03 -. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 -. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 -. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 -. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 -. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 -. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 -. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 -. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 -. line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 -. line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 -. line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 -. line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 -end of window 1 - - -start of window 2 -. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 -. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 -. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 -. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04 -. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 -. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 -. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 -. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08 -. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 -. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 -. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 -. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 -. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 -. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 -. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 -. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 -end of window 2 - -. - - " Test using two windows open to one buffer, one extra empty window - split - new - wincmd t - resize 8 - call search('^start of window 1$') - normal zt - set scrollbind - wincmd j - resize 7 - call search('^start of window 2$') - normal zt - set scrollbind - - " -- start of tests -- - " Test scrolling down - normal L5jHyy - wincmd b | normal pr0 - wincmd t | normal Hyy - wincmd b | normal pr1 - wincmd t | normal L6jHyy - wincmd b | normal pr2 - wincmd k | normal Hyy - wincmd b | normal pr3 - - " Test scrolling up - wincmd t | normal H4k - wincmd j | normal H - wincmd t | normal Hyy - wincmd b | normal pr4 - wincmd k | normal Hyy - wincmd b | normal pr5 - wincmd k | normal 3k - wincmd t | normal H - wincmd j | normal Hyy - wincmd b | normal pr6 - wincmd t | normal Hyy - wincmd b | normal pr7 - - " Test horizontal scrolling - set scrollopt+=hor - normal gg"zyyG"zpG - wincmd t | normal 015zly$ - wincmd b | normal p"zpG - wincmd k | normal y$ - wincmd b | normal p"zpG - wincmd k | normal 10jH7zhg0y$ - wincmd b | normal p"zpG - wincmd t | normal Hg0y$ - wincmd b | normal p"zpG - set scrollopt-=hor - - wincmd b - call assert_equal([ - \ '', - \ '0 line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05', - \ '1 line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05', - \ '2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11', - \ '3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11', - \ '4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06', - \ '5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06', - \ '6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02', - \ '7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02', - \ '56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02', - \ 'UTSRQPONMLKJIHGREDCBA9876543210 02', - \ '. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11', - \ '. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11', - \ ''], getline(1, '$')) - enew! - - " ****** tests using two different buffers ***** - wincmd t | wincmd j | close - wincmd t | set noscrollbind - /start of window 2$/,/^end of window 2$/y - new - wincmd t | wincmd j | normal 4"zpGp - wincmd t - call search('^start of window 1$') - normal zt - set scrollbind - wincmd j - call search('^start of window 2$') - normal zt - set scrollbind - - " -- start of tests -- - " Test scrolling down - normal L5jHyy - wincmd b | normal pr0 - wincmd t | normal Hyy - wincmd b | normal pr1 - wincmd t | normal L6jHyy - wincmd b | normal pr2 - wincmd k | normal Hyy - wincmd b | normal pr3 - - " Test scrolling up - wincmd t | normal H4k - wincmd j | normal H - wincmd t | normal Hyy - wincmd b | normal pr4 - wincmd k | normal Hyy - wincmd b | normal pr5 - wincmd k | normal 3k - wincmd t | normal H - wincmd j | normal Hyy - wincmd b | normal pr6 - wincmd t | normal Hyy - wincmd b | normal pr7 - - " Test horizontal scrolling - set scrollopt+=hor - normal gg"zyyG"zpG - wincmd t | normal 015zly$ - wincmd b | normal p"zpG - wincmd k | normal y$ - wincmd b | normal p"zpG - wincmd k | normal 10jH7zhg0y$ - wincmd b | normal p"zpG - wincmd t | normal Hg0y$ - wincmd b | normal p"zpG - set scrollopt-=hor - - wincmd b - call assert_equal([ - \ '', - \ '0 line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05', - \ '1 line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05', - \ '2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11', - \ '3 line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11', - \ '4 line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06', - \ '5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06', - \ '6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02', - \ '7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02', - \ '56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02', - \ 'UTSRQPONMLKJIHGREDCBA9876543210 02', - \ '. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10', - \ '. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10', - \ ''], getline(1, '$')) - enew! - - " Test 'syncbind' - wincmd t | set noscrollbind | normal ggL - wincmd j | set noscrollbind | normal ggL - set scrollbind - wincmd t | set scrollbind | normal G - wincmd j | normal G - syncbind - normal Hk - wincmd t | normal H - wincmd j | normal Hyy - wincmd b | normal p - wincmd t | normal yy - wincmd b | normal p - wincmd t | set noscrollbind | normal ggL - wincmd j | set noscrollbind - normal ggL - set scrollbind - wincmd t | set scrollbind - wincmd t | normal G - wincmd j | normal G - wincmd t | syncbind | normal Hk - wincmd j | normal H - wincmd t | normal Hyy - wincmd b | normal p - wincmd t | wincmd j | normal yy - wincmd b | normal p - wincmd t | normal H3k - wincmd j | normal H - wincmd t | normal Hyy - wincmd b | normal p - wincmd t | wincmd j | normal yy - wincmd b | normal p - - wincmd b - call assert_equal([ - \ '', - \ '. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16', - \ 'start of window 2', - \ 'start of window 2', - \ '. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16', - \ '. line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15', - \ '. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12', - \ ], getline(1, '$')) - enew! - - new | only! - set scrollbind& scrollopt& scrolloff& wrap& equalalways& splitbelow& -endfunc -- cgit