summaryrefslogtreecommitdiffstats
path: root/src/testdir
diff options
context:
space:
mode:
authorLuuk van Baal <luukvbaal@gmail.com>2024-04-08 22:27:41 +0200
committerChristian Brabandt <cb@256bit.org>2024-04-08 22:27:41 +0200
commit9148ba8a46baa3934c44164989cdcdec5d01d9e3 (patch)
tree0ee19963c68177ffbf961a0c7970b6d7d1910e7e /src/testdir
parent196b6678c5483217ea5bc7d047b02c915615dae6 (diff)
patch 9.1.0280: several issues with 'smoothscroll' supportv9.1.0280
Problem: Logic to make sure cursor is in visible part of the screen after scrolling the text with 'smoothscroll' is scattered, asymmetric and contains bugs. Solution: Adjust and create helper function for 'smoothscroll' cursor logic. (Luuk van Baal) closes: #14410 Signed-off-by: Luuk van Baal <luukvbaal@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/dumps/Test_smooth_long_6.dump2
-rw-r--r--src/testdir/dumps/Test_smooth_long_7.dump2
-rw-r--r--src/testdir/test_diffmode.vim15
-rw-r--r--src/testdir/test_scroll_opt.vim38
4 files changed, 43 insertions, 14 deletions
diff --git a/src/testdir/dumps/Test_smooth_long_6.dump b/src/testdir/dumps/Test_smooth_long_6.dump
index ba48c2825f..507aa460da 100644
--- a/src/testdir/dumps/Test_smooth_long_6.dump
+++ b/src/testdir/dumps/Test_smooth_long_6.dump
@@ -3,4 +3,4 @@
|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o
|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e
|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w
-| @21|3|,|9|0| @9|6@1|%|
+|:|s|e|t| |s|c|r|o|l@1|o| @9|3|,|9|0| @9|6@1|%|
diff --git a/src/testdir/dumps/Test_smooth_long_7.dump b/src/testdir/dumps/Test_smooth_long_7.dump
index 222e0019f5..225207ff6c 100644
--- a/src/testdir/dumps/Test_smooth_long_7.dump
+++ b/src/testdir/dumps/Test_smooth_long_7.dump
@@ -3,4 +3,4 @@
|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o
|f| |t|e|x|t| |w|i>t|h| |l|o|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e
|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w|i|t|h| |l|o|t|s| |o|f| |t|e|x|t| |w
-| @21|3|,|1|7|0| @8|6@1|%|
+|:|s|e|t| |s|c|r|o|l@1|o| @9|3|,|1|7|0| @8|6@1|%|
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index b8d0057a13..9e973de213 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -2023,4 +2023,19 @@ func Test_diff_toggle_wrap_skipcol_leftcol()
bwipe!
endfunc
+" Ctrl-D reveals filler lines below the last line in the buffer.
+func Test_diff_eob_halfpage()
+ 5new
+ call setline(1, ['']->repeat(10) + ['a'])
+ diffthis
+ 5new
+ call setline(1, ['']->repeat(3) + ['a', 'b'])
+ diffthis
+ wincmd j
+ exe "norm! G\<C-D>"
+ call assert_equal(6, line('w0'))
+
+ %bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/testdir/test_scroll_opt.vim b/src/testdir/test_scroll_opt.vim
index 294da0d877..e09c240a09 100644
--- a/src/testdir/test_scroll_opt.vim
+++ b/src/testdir/test_scroll_opt.vim
@@ -1020,30 +1020,36 @@ func Test_smoothscroll_page()
" Half-page scrolling does not go beyond end of buffer and moves the cursor.
" Even with 'nostartofline', the correct amount of lines is scrolled.
setl nostartofline
- exe "norm! 0\<C-D>"
+ exe "norm! 15|\<C-D>"
call assert_equal(200, winsaveview().skipcol)
- call assert_equal(204, col('.'))
+ call assert_equal(215, col('.'))
exe "norm! \<C-D>"
call assert_equal(400, winsaveview().skipcol)
- call assert_equal(404, col('.'))
+ call assert_equal(415, col('.'))
exe "norm! \<C-D>"
call assert_equal(520, winsaveview().skipcol)
- call assert_equal(601, col('.'))
+ call assert_equal(535, col('.'))
exe "norm! \<C-D>"
call assert_equal(520, winsaveview().skipcol)
- call assert_equal(801, col('.'))
- exe "norm! \<C-U>"
+ call assert_equal(735, col('.'))
+ exe "norm! \<C-D>"
call assert_equal(520, winsaveview().skipcol)
- call assert_equal(601, col('.'))
+ call assert_equal(895, col('.'))
exe "norm! \<C-U>"
- call assert_equal(400, winsaveview().skipcol)
- call assert_equal(404, col('.'))
+ call assert_equal(320, winsaveview().skipcol)
+ call assert_equal(695, col('.'))
exe "norm! \<C-U>"
- call assert_equal(200, winsaveview().skipcol)
- call assert_equal(204, col('.'))
+ call assert_equal(120, winsaveview().skipcol)
+ call assert_equal(495, col('.'))
+ exe "norm! \<C-U>"
+ call assert_equal(0, winsaveview().skipcol)
+ call assert_equal(375, col('.'))
exe "norm! \<C-U>"
call assert_equal(0, winsaveview().skipcol)
- call assert_equal(40, col('.'))
+ call assert_equal(175, col('.'))
+ exe "norm! \<C-U>"
+ call assert_equal(0, winsaveview().skipcol)
+ call assert_equal(15, col('.'))
bwipe!
endfunc
@@ -1071,6 +1077,14 @@ func Test_smoothscroll_next_topline()
redraw
call assert_equal(2, line('w0'))
+ " Cursor does not end up above topline, adjusting topline later.
+ setlocal nu cpo+=n
+ exe "norm! G$g013\<C-Y>"
+ redraw
+ call assert_equal(2, line('.'))
+ call assert_equal(0, winsaveview().skipcol)
+
+ set cpo-=n
bwipe!
endfunc