annotate src/testdir/test_scroll_opt.vim @ 31954:d8fdafc4b390 v9.0.1309

patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set Commit: https://github.com/vim/vim/commit/1d6539cf36a7b6d1afe76fb6316fe662f543bf60 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 14 17:41:20 2023 +0000 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 https://github.com/vim/vim/issues/10545)
author Bram Moolenaar <Bram@vim.org>
date Tue, 14 Feb 2023 18:45:05 +0100
parents dbec60b8c253
children 8323e235ff44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30610
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
1 " Test for reset 'scroll' and 'smoothscroll'
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
2
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
3 source check.vim
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
4 source screendump.vim
31154
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
5 source mouse.vim
12718
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func Test_reset_scroll()
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 let scr = &l:scroll
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 setlocal scroll=1
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 setlocal scroll&
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 call assert_equal(scr, &l:scroll)
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 setlocal scroll=1
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 setlocal scroll=0
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 call assert_equal(scr, &l:scroll)
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 try
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 execute 'setlocal scroll=' . (winheight(0) + 1)
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 " not reached
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21 call assert_false(1)
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 catch
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 call assert_exception('E49:')
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 endtry
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 split
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 let scr = &l:scroll
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
30 setlocal scroll=1
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31 setlocal scroll&
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
32 call assert_equal(scr, &l:scroll)
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 setlocal scroll=1
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 setlocal scroll=0
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
36 call assert_equal(scr, &l:scroll)
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
38 quit!
f8f505ffc0a6 patch 8.0.1237: ":set scroll&" often gives an error
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 endfunc
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 12718
diff changeset
40
31954
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
41 func Test_scolloff_even_line_count()
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
42 new
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
43 resize 6
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
44 setlocal scrolloff=3
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
45 call setline(1, range(20))
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
46 normal 2j
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
47 call assert_equal(1, getwininfo(win_getid())[0].topline)
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
48 normal j
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
49 call assert_equal(1, getwininfo(win_getid())[0].topline)
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
50 normal j
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
51 call assert_equal(2, getwininfo(win_getid())[0].topline)
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
52 normal j
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
53 call assert_equal(3, getwininfo(win_getid())[0].topline)
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
54
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
55 bwipe!
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
56 endfunc
d8fdafc4b390 patch 9.0.1309: scrolling two lines with even line count and 'scrolloff' set
Bram Moolenaar <Bram@vim.org>
parents: 31849
diff changeset
57
30620
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
58 func Test_CtrlE_CtrlY_stop_at_end()
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
59 enew
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
60 call setline(1, ['one', 'two'])
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
61 set number
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
62 exe "normal \<C-Y>"
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
63 call assert_equal([" 1 one "], ScreenLines(1, 10))
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
64 exe "normal \<C-E>\<C-E>\<C-E>"
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
65 call assert_equal([" 2 two "], ScreenLines(1, 10))
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
66
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
67 bwipe!
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
68 set nonumber
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
69 endfunc
70d6345a2976 patch 9.0.0645: CTRL-Y does not stop at line 1
Bram Moolenaar <Bram@vim.org>
parents: 30610
diff changeset
70
30610
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
71 func Test_smoothscroll_CtrlE_CtrlY()
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
72 CheckScreendump
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
73
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
74 let lines =<< trim END
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
75 vim9script
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
76 setline(1, [
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
77 'line one',
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
78 'word '->repeat(20),
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
79 'line three',
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
80 'long word '->repeat(7),
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
81 'line',
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
82 'line',
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
83 'line',
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
84 ])
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
85 set smoothscroll
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
86 :5
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
87 END
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
88 call writefile(lines, 'XSmoothScroll', 'D')
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
89 let buf = RunVimInTerminal('-S XSmoothScroll', #{rows: 12, cols: 40})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
90
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
91 call term_sendkeys(buf, "\<C-E>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
92 call VerifyScreenDump(buf, 'Test_smoothscroll_1', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
93 call term_sendkeys(buf, "\<C-E>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
94 call VerifyScreenDump(buf, 'Test_smoothscroll_2', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
95 call term_sendkeys(buf, "\<C-E>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
96 call VerifyScreenDump(buf, 'Test_smoothscroll_3', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
97 call term_sendkeys(buf, "\<C-E>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
98 call VerifyScreenDump(buf, 'Test_smoothscroll_4', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
99
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
100 call term_sendkeys(buf, "\<C-Y>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
101 call VerifyScreenDump(buf, 'Test_smoothscroll_5', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
102 call term_sendkeys(buf, "\<C-Y>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
103 call VerifyScreenDump(buf, 'Test_smoothscroll_6', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
104 call term_sendkeys(buf, "\<C-Y>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
105 call VerifyScreenDump(buf, 'Test_smoothscroll_7', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
106 call term_sendkeys(buf, "\<C-Y>")
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
107 call VerifyScreenDump(buf, 'Test_smoothscroll_8', {})
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
108
30622
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
109 if has('folding')
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
110 call term_sendkeys(buf, ":set foldmethod=indent\<CR>")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
111 " move the cursor so we can reuse the same dumps
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
112 call term_sendkeys(buf, "5G")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
113 call term_sendkeys(buf, "\<C-E>")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
114 call VerifyScreenDump(buf, 'Test_smoothscroll_1', {})
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
115 call term_sendkeys(buf, "\<C-E>")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
116 call VerifyScreenDump(buf, 'Test_smoothscroll_2', {})
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
117 call term_sendkeys(buf, "7G")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
118 call term_sendkeys(buf, "\<C-Y>")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
119 call VerifyScreenDump(buf, 'Test_smoothscroll_7', {})
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
120 call term_sendkeys(buf, "\<C-Y>")
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
121 call VerifyScreenDump(buf, 'Test_smoothscroll_8', {})
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
122 endif
ffd6e3bd65b8 patch 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
Bram Moolenaar <Bram@vim.org>
parents: 30620
diff changeset
123
30610
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
124 call StopVimInTerminal(buf)
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
125 endfunc
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
126
30635
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
127 func Test_smoothscroll_number()
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
128 CheckScreendump
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
129
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
130 let lines =<< trim END
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
131 vim9script
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
132 setline(1, [
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
133 'one ' .. 'word '->repeat(20),
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
134 'two ' .. 'long word '->repeat(7),
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
135 'line',
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
136 'line',
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
137 'line',
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
138 ])
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
139 set smoothscroll
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
140 set number cpo+=n
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
141 :3
30845
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
142
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
143 def g:DoRel()
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
144 set number relativenumber scrolloff=0
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
145 :%del
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
146 setline(1, [
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
147 'one',
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
148 'very long text '->repeat(12),
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
149 'three',
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
150 ])
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
151 exe "normal 2Gzt\<C-E>"
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
152 enddef
30635
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
153 END
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
154 call writefile(lines, 'XSmoothNumber', 'D')
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
155 let buf = RunVimInTerminal('-S XSmoothNumber', #{rows: 12, cols: 40})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
156
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
157 call VerifyScreenDump(buf, 'Test_smooth_number_1', {})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
158 call term_sendkeys(buf, "\<C-E>")
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
159 call VerifyScreenDump(buf, 'Test_smooth_number_2', {})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
160 call term_sendkeys(buf, "\<C-E>")
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
161 call VerifyScreenDump(buf, 'Test_smooth_number_3', {})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
162
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
163 call term_sendkeys(buf, ":set cpo-=n\<CR>")
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
164 call VerifyScreenDump(buf, 'Test_smooth_number_4', {})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
165 call term_sendkeys(buf, "\<C-Y>")
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
166 call VerifyScreenDump(buf, 'Test_smooth_number_5', {})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
167 call term_sendkeys(buf, "\<C-Y>")
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
168 call VerifyScreenDump(buf, 'Test_smooth_number_6', {})
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
169
30845
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
170 call term_sendkeys(buf, ":call DoRel()\<CR>")
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
171 call VerifyScreenDump(buf, 'Test_smooth_number_7', {})
fa3aba805a34 patch 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
Bram Moolenaar <Bram@vim.org>
parents: 30799
diff changeset
172
30635
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
173 call StopVimInTerminal(buf)
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
174 endfunc
604d7d7aa043 patch 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
Bram Moolenaar <Bram@vim.org>
parents: 30622
diff changeset
175
30847
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
176 func Test_smoothscroll_list()
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
177 CheckScreendump
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
178
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
179 let lines =<< trim END
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
180 vim9script
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
181 set smoothscroll scrolloff=0
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
182 set list
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
183 setline(1, [
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
184 'one',
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
185 'very long text '->repeat(12),
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
186 'three',
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
187 ])
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
188 exe "normal 2Gzt\<C-E>"
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
189 END
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
190 call writefile(lines, 'XSmoothList', 'D')
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
191 let buf = RunVimInTerminal('-S XSmoothList', #{rows: 8, cols: 40})
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
192
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
193 call VerifyScreenDump(buf, 'Test_smooth_list_1', {})
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
194
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
195 call term_sendkeys(buf, ":set listchars+=precedes:#\<CR>")
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
196 call VerifyScreenDump(buf, 'Test_smooth_list_2', {})
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
197
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
198 call StopVimInTerminal(buf)
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
199 endfunc
2c03ff81cbcb patch 9.0.0758: "precedes" from 'listchars' overwritten by <<<
Bram Moolenaar <Bram@vim.org>
parents: 30845
diff changeset
200
30673
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
201 func Test_smoothscroll_diff_mode()
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
202 CheckScreendump
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
203
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
204 let lines =<< trim END
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
205 vim9script
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
206 var text = 'just some text here'
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
207 setline(1, text)
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
208 set smoothscroll
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
209 diffthis
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
210 new
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
211 setline(1, text)
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
212 set smoothscroll
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
213 diffthis
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
214 END
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
215 call writefile(lines, 'XSmoothDiff', 'D')
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
216 let buf = RunVimInTerminal('-S XSmoothDiff', #{rows: 8})
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
217
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
218 call VerifyScreenDump(buf, 'Test_smooth_diff_1', {})
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
219 call term_sendkeys(buf, "\<C-Y>")
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
220 call VerifyScreenDump(buf, 'Test_smooth_diff_1', {})
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
221 call term_sendkeys(buf, "\<C-E>")
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
222 call VerifyScreenDump(buf, 'Test_smooth_diff_1', {})
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
223
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
224 call StopVimInTerminal(buf)
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
225 endfunc
53b826c4649f patch 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
Bram Moolenaar <Bram@vim.org>
parents: 30635
diff changeset
226
30675
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
227 func Test_smoothscroll_wrap_scrolloff_zero()
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
228 CheckScreendump
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
229
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
230 let lines =<< trim END
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
231 vim9script
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
232 setline(1, ['Line' .. (' with some text'->repeat(7))]->repeat(7))
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
233 set smoothscroll scrolloff=0
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
234 :3
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
235 END
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
236 call writefile(lines, 'XSmoothWrap', 'D')
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
237 let buf = RunVimInTerminal('-S XSmoothWrap', #{rows: 8, cols: 40})
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
238
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
239 call VerifyScreenDump(buf, 'Test_smooth_wrap_1', {})
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
240
30677
a345ad853b08 patch 9.0.0673: first line wong with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30675
diff changeset
241 " moving cursor down - whole bottom line shows
30675
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
242 call term_sendkeys(buf, "j")
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
243 call VerifyScreenDump(buf, 'Test_smooth_wrap_2', {})
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
244
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
245 call term_sendkeys(buf, "\<C-E>j")
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
246 call VerifyScreenDump(buf, 'Test_smooth_wrap_3', {})
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
247
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
248 call term_sendkeys(buf, "G")
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
249 call VerifyScreenDump(buf, 'Test_smooth_wrap_4', {})
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
250
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
251 " moving cursor up right after the >>> marker - no need to show whole line
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
252 call term_sendkeys(buf, "2gj3l2k")
30677
a345ad853b08 patch 9.0.0673: first line wong with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30675
diff changeset
253 call VerifyScreenDump(buf, 'Test_smooth_wrap_5', {})
a345ad853b08 patch 9.0.0673: first line wong with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30675
diff changeset
254
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
255 " moving cursor up where the >>> marker is - whole top line shows
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
256 call term_sendkeys(buf, "2j02k")
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
257 call VerifyScreenDump(buf, 'Test_smooth_wrap_6', {})
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
258
30675
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
259 call StopVimInTerminal(buf)
bc48f3752d8d patch 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
Bram Moolenaar <Bram@vim.org>
parents: 30673
diff changeset
260 endfunc
30610
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
261
30733
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
262 func Test_smoothscroll_wrap_long_line()
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
263 CheckScreendump
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
264
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
265 let lines =<< trim END
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
266 vim9script
31148
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
267 setline(1, ['one', 'two', 'Line' .. (' with lots of text'->repeat(30)) .. ' end', 'four'])
30733
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
268 set smoothscroll scrolloff=0
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
269 normal 3G10|zt
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
270 END
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
271 call writefile(lines, 'XSmoothWrap', 'D')
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
272 let buf = RunVimInTerminal('-S XSmoothWrap', #{rows: 6, cols: 40})
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
273 call VerifyScreenDump(buf, 'Test_smooth_long_1', {})
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
274
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
275 " scrolling up, cursor moves screen line down
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
276 call term_sendkeys(buf, "\<C-E>")
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
277 call VerifyScreenDump(buf, 'Test_smooth_long_2', {})
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
278 call term_sendkeys(buf, "5\<C-E>")
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
279 call VerifyScreenDump(buf, 'Test_smooth_long_3', {})
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
280
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
281 " scrolling down, cursor moves screen line up
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
282 call term_sendkeys(buf, "5\<C-Y>")
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
283 call VerifyScreenDump(buf, 'Test_smooth_long_4', {})
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
284 call term_sendkeys(buf, "\<C-Y>")
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
285 call VerifyScreenDump(buf, 'Test_smooth_long_5', {})
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
286
30745
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
287 " 'scrolloff' set to 1, scrolling up, cursor moves screen line down
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
288 call term_sendkeys(buf, ":set scrolloff=1\<CR>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
289 call term_sendkeys(buf, "10|\<C-E>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
290 call VerifyScreenDump(buf, 'Test_smooth_long_6', {})
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
291
30745
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
292 " 'scrolloff' set to 1, scrolling down, cursor moves screen line up
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
293 call term_sendkeys(buf, "\<C-E>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
294 call term_sendkeys(buf, "gjgj")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
295 call term_sendkeys(buf, "\<C-Y>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
296 call VerifyScreenDump(buf, 'Test_smooth_long_7', {})
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
297
30745
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
298 " 'scrolloff' set to 2, scrolling up, cursor moves screen line down
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
299 call term_sendkeys(buf, ":set scrolloff=2\<CR>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
300 call term_sendkeys(buf, "10|\<C-E>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
301 call VerifyScreenDump(buf, 'Test_smooth_long_8', {})
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
302
30745
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
303 " 'scrolloff' set to 2, scrolling down, cursor moves screen line up
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
304 call term_sendkeys(buf, "\<C-E>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
305 call term_sendkeys(buf, "gj")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
306 call term_sendkeys(buf, "\<C-Y>")
fdc44acc3250 patch 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30733
diff changeset
307 call VerifyScreenDump(buf, 'Test_smooth_long_9', {})
31148
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
308
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
309 " 'scrolloff' set to 0, move cursor down one line.
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
310 " Cursor should move properly, and since this is a really long line, it will
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
311 " be put on top of the screen.
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
312 call term_sendkeys(buf, ":set scrolloff=0\<CR>")
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
313 call term_sendkeys(buf, "0j")
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
314 call VerifyScreenDump(buf, 'Test_smooth_long_10', {})
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
315
31577
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
316 " Test zt/zz/zb that they work properly when a long line is above it
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
317 call term_sendkeys(buf, "zb")
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
318 call VerifyScreenDump(buf, 'Test_smooth_long_11', {})
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
319 call term_sendkeys(buf, "zz")
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
320 call VerifyScreenDump(buf, 'Test_smooth_long_12', {})
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
321 call term_sendkeys(buf, "zt")
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
322 call VerifyScreenDump(buf, 'Test_smooth_long_13', {})
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
323
31148
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
324 " Repeat the step and move the cursor down again.
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
325 " This time, use a shorter long line that is barely long enough to span more
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
326 " than one window. Note that the cursor is at the bottom this time because
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
327 " Vim prefers to do so if we are scrolling a few lines only.
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
328 call term_sendkeys(buf, ":call setline(1, ['one', 'two', 'Line' .. (' with lots of text'->repeat(10)) .. ' end', 'four'])\<CR>")
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
329 call term_sendkeys(buf, "3Gzt")
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
330 call term_sendkeys(buf, "j")
31577
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
331 call VerifyScreenDump(buf, 'Test_smooth_long_14', {})
31148
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
332
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
333 " Repeat the step but this time start it when the line is smooth-scrolled by
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
334 " one line. This tests that the offset calculation is still correct and
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
335 " still end up scrolling down to the next line with cursor at bottom of
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
336 " screen.
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
337 call term_sendkeys(buf, "3Gzt")
69cea3380d9a patch 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
Bram Moolenaar <Bram@vim.org>
parents: 31131
diff changeset
338 call term_sendkeys(buf, "\<C-E>j")
31577
3c21865e8068 patch 9.0.1121: cursor positioning and display problems with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31333
diff changeset
339 call VerifyScreenDump(buf, 'Test_smooth_long_15', {})
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
340
30733
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
341 call StopVimInTerminal(buf)
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
342 endfunc
5bea8e583d28 patch 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
Bram Moolenaar <Bram@vim.org>
parents: 30677
diff changeset
343
30799
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
344 func Test_smoothscroll_one_long_line()
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
345 CheckScreendump
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
346
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
347 let lines =<< trim END
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
348 vim9script
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
349 setline(1, 'with lots of text '->repeat(7))
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
350 set smoothscroll scrolloff=0
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
351 END
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
352 call writefile(lines, 'XSmoothOneLong', 'D')
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
353 let buf = RunVimInTerminal('-S XSmoothOneLong', #{rows: 6, cols: 40})
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
354 call VerifyScreenDump(buf, 'Test_smooth_one_long_1', {})
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
355
30799
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
356 call term_sendkeys(buf, "\<C-E>")
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
357 call VerifyScreenDump(buf, 'Test_smooth_one_long_2', {})
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
358
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
359 call term_sendkeys(buf, "0")
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
360 call VerifyScreenDump(buf, 'Test_smooth_one_long_1', {})
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
361
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
362 call StopVimInTerminal(buf)
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
363 endfunc
ffa5492137c3 patch 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 30745
diff changeset
364
31127
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
365 func Test_smoothscroll_long_line_showbreak()
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
366 CheckScreendump
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
367
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
368 let lines =<< trim END
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
369 vim9script
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
370 # a line that spans four screen lines
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
371 setline(1, 'with lots of text in one line '->repeat(6))
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
372 set smoothscroll scrolloff=0 showbreak=+++\
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
373 END
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
374 call writefile(lines, 'XSmoothLongShowbreak', 'D')
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
375 let buf = RunVimInTerminal('-S XSmoothLongShowbreak', #{rows: 6, cols: 40})
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
376 call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_1', {})
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
377
31127
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
378 call term_sendkeys(buf, "\<C-E>")
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
379 call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_2', {})
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
380
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
381 call term_sendkeys(buf, "0")
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
382 call VerifyScreenDump(buf, 'Test_smooth_long_showbreak_1', {})
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
383
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
384 call StopVimInTerminal(buf)
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
385 endfunc
92b929203a4f patch 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
Bram Moolenaar <Bram@vim.org>
parents: 31117
diff changeset
386
31329
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
387 func s:check_col_calc(win_col, win_line, buf_col)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
388 call assert_equal(a:win_col, wincol())
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
389 call assert_equal(a:win_line, winline())
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
390 call assert_equal(a:buf_col, col('.'))
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
391 endfunc
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
392
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
393 " Test that if the current cursor is on a smooth scrolled line, we correctly
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
394 " reposition it. Also check that we don't miscalculate the values by checking
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
395 " the consistency between wincol() and col('.') as they are calculated
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
396 " separately in code.
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
397 func Test_smoothscroll_cursor_position()
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
398 call NewWindow(10, 20)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
399 setl smoothscroll wrap
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
400 call setline(1, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
401
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
402 call s:check_col_calc(1, 1, 1)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
403 exe "normal \<C-E>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
404
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
405 " Move down another line to avoid blocking the <<< display
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
406 call s:check_col_calc(1, 2, 41)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
407 exe "normal \<C-Y>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
408 call s:check_col_calc(1, 3, 41)
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
409
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
410 normal gg3l
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
411 exe "normal \<C-E>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
412
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
413 " Move down only 1 line when we are out of the range of the <<< display
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
414 call s:check_col_calc(4, 1, 24)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
415 exe "normal \<C-Y>"
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
416 call s:check_col_calc(4, 2, 24)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
417 normal ggg$
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
418 exe "normal \<C-E>"
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
419 call s:check_col_calc(20, 1, 40)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
420 exe "normal \<C-Y>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
421 call s:check_col_calc(20, 2, 40)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
422 normal gg
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
423
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
424 " Test number, where we have indented lines
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
425 setl number
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
426 call s:check_col_calc(5, 1, 1)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
427 exe "normal \<C-E>"
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
428
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
429 " Move down only 1 line when the <<< display is on the number column
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
430 call s:check_col_calc(5, 1, 17)
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
431 exe "normal \<C-Y>"
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
432 call s:check_col_calc(5, 2, 17)
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
433 normal ggg$
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
434 exe "normal \<C-E>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
435 call s:check_col_calc(20, 1, 32)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
436 exe "normal \<C-Y>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
437 call s:check_col_calc(20, 2, 32)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
438 normal gg
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
439
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
440 setl numberwidth=1
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
441
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
442 " Move down another line when numberwidth is too short to cover the whole
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
443 " <<< display
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
444 call s:check_col_calc(3, 1, 1)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
445 exe "normal \<C-E>"
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
446 call s:check_col_calc(3, 2, 37)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
447 exe "normal \<C-Y>"
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
448 call s:check_col_calc(3, 3, 37)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
449 normal ggl
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
450
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
451 " Only move 1 line down when we are just past the <<< display
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
452 call s:check_col_calc(4, 1, 2)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
453 exe "normal \<C-E>"
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
454 call s:check_col_calc(4, 1, 20)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
455 exe "normal \<C-Y>"
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
456 call s:check_col_calc(4, 2, 20)
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
457 normal gg
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
458 setl numberwidth&
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
459
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
460 " Test number + showbreak, so test that the additional indentation works
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
461 setl number showbreak=+++
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
462 call s:check_col_calc(5, 1, 1)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
463 exe "normal \<C-E>"
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
464 call s:check_col_calc(8, 1, 17)
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
465 exe "normal \<C-Y>"
31131
8de082110e2d patch 9.0.0900: cursor moves too far with 'smoothscroll'
Bram Moolenaar <Bram@vim.org>
parents: 31127
diff changeset
466 call s:check_col_calc(8, 2, 17)
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
467 normal gg
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
468
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
469 " Test number + cpo+=n mode, where wrapped lines aren't indented
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
470 setl number cpo+=n showbreak=
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
471 call s:check_col_calc(5, 1, 1)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
472 exe "normal \<C-E>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
473 call s:check_col_calc(1, 2, 37)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
474 exe "normal \<C-Y>"
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
475 call s:check_col_calc(1, 3, 37)
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
476 normal gg
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
477
31329
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
478 bwipe!
31117
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
479 endfunc
a5bf86083558 patch 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
Bram Moolenaar <Bram@vim.org>
parents: 30847
diff changeset
480
31329
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
481 func Test_smoothscroll_cursor_scrolloff()
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
482 call NewWindow(10, 20)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
483 setl smoothscroll wrap
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
484 setl scrolloff=3
31849
dbec60b8c253 patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents: 31829
diff changeset
485
31329
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
486 " 120 chars are 6 screen lines
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
487 call setline(1, "abcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRSTabcdefghijklmnopqrstABCDEFGHIJKLMNOPQRST")
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
488 call setline(2, "below")
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
489
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
490 call s:check_col_calc(1, 1, 1)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
491
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
492 " CTRL-E shows "<<<DEFG...", cursor move four lines down
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
493 exe "normal \<C-E>"
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
494 call s:check_col_calc(1, 4, 81)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
495
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
496 " cursor on start of second line, "gk" moves into first line, skipcol doesn't
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
497 " change
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
498 exe "normal G0gk"
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
499 call s:check_col_calc(1, 5, 101)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
500
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
501 " move cursor left one window width worth, scrolls one screen line
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
502 exe "normal 20h"
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
503 call s:check_col_calc(1, 5, 81)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
504
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
505 " move cursor left one window width worth, scrolls one screen line
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
506 exe "normal 20h"
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
507 call s:check_col_calc(1, 4, 61)
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
508
31333
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
509 " cursor on last line, "gk" should not cause a scroll
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
510 set scrolloff=0
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
511 normal G0
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
512 call s:check_col_calc(1, 7, 1)
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
513 normal gk
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
514 call s:check_col_calc(1, 6, 101)
bfbcc148da58 patch 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
Bram Moolenaar <Bram@vim.org>
parents: 31329
diff changeset
515
31329
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
516 bwipe!
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
517 endfunc
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
518
5c83140aafc9 patch 9.0.0998: "gk" may reset skipcol when not needed
Bram Moolenaar <Bram@vim.org>
parents: 31154
diff changeset
519
31154
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
520 " Test that mouse picking is still accurate when we have smooth scrolled lines
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
521 func Test_smoothscroll_mouse_pos()
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
522 CheckNotGui
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
523 CheckUnix
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
524
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
525 let save_mouse = &mouse
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
526 let save_term = &term
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
527 let save_ttymouse = &ttymouse
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
528 set mouse=a term=xterm ttymouse=xterm2
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
529
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
530 call NewWindow(10, 20)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
531 setl smoothscroll wrap
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
532 " First line will wrap to 3 physical lines. 2nd/3rd lines are short lines.
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
533 call setline(1, ["abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", "line 2", "line 3"])
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
534
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
535 func s:check_mouse_click(row, col, buf_row, buf_col)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
536 call MouseLeftClick(a:row, a:col)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
537
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
538 call assert_equal(a:col, wincol())
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
539 call assert_equal(a:row, winline())
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
540 call assert_equal(a:buf_row, line('.'))
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
541 call assert_equal(a:buf_col, col('.'))
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
542 endfunc
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
543
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
544 " Check that clicking without scroll works first.
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
545 call s:check_mouse_click(3, 5, 1, 45)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
546 call s:check_mouse_click(4, 1, 2, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
547 call s:check_mouse_click(4, 6, 2, 6)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
548 call s:check_mouse_click(5, 1, 3, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
549 call s:check_mouse_click(5, 6, 3, 6)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
550
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
551 " Smooth scroll, and checks that this didn't mess up mouse clicking
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
552 exe "normal \<C-E>"
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
553 call s:check_mouse_click(2, 5, 1, 45)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
554 call s:check_mouse_click(3, 1, 2, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
555 call s:check_mouse_click(3, 6, 2, 6)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
556 call s:check_mouse_click(4, 1, 3, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
557 call s:check_mouse_click(4, 6, 3, 6)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
558
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
559 exe "normal \<C-E>"
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
560 call s:check_mouse_click(1, 5, 1, 45)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
561 call s:check_mouse_click(2, 1, 2, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
562 call s:check_mouse_click(2, 6, 2, 6)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
563 call s:check_mouse_click(3, 1, 3, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
564 call s:check_mouse_click(3, 6, 3, 6)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
565
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
566 " Make a new first line 11 physical lines tall so it's taller than window
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
567 " height, to test overflow calculations with really long lines wrapping.
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
568 normal gg
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
569 call setline(1, "12345678901234567890"->repeat(11))
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
570 exe "normal 6\<C-E>"
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
571 call s:check_mouse_click(5, 1, 1, 201)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
572 call s:check_mouse_click(6, 1, 2, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
573 call s:check_mouse_click(7, 1, 3, 1)
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
574
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
575 let &mouse = save_mouse
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
576 let &term = save_term
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
577 let &ttymouse = save_ttymouse
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
578 endfunc
7e48ddb8b079 patch 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
Bram Moolenaar <Bram@vim.org>
parents: 31148
diff changeset
579
31829
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
580 " this was dividing by zero
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
581 func Test_smoothscrol_zero_width()
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
582 CheckScreendump
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
583
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
584 let lines =<< trim END
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
585 winsize 0 0
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
586 vsplit
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
587 vsplit
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
588 vsplit
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
589 vsplit
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
590 vsplit
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
591 sil norm H
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
592 set wrap
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
593 set smoothscroll
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
594 set number
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
595 END
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
596 call writefile(lines, 'XSmoothScrollZero', 'D')
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
597 let buf = RunVimInTerminal('-u NONE -i NONE -n -m -X -Z -e -s -S XSmoothScrollZero', #{rows: 6, cols: 60, wait_for_ruler: 0})
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
598 call TermWait(buf, 3000)
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
599 call VerifyScreenDump(buf, 'Test_smoothscroll_zero_1', {})
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
600
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
601 call term_sendkeys(buf, ":sil norm \<C-V>\<C-W>\<C-V>\<C-N>\<CR>")
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
602 call VerifyScreenDump(buf, 'Test_smoothscroll_zero_2', {})
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
603
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
604 call StopVimInTerminal(buf)
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
605 endfunc
2a590b4a3fba patch 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
Bram Moolenaar <Bram@vim.org>
parents: 31577
diff changeset
606
30610
6c6ac189a05f patch 9.0.0640: cannot scroll by screen line if a line wraps
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
607
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 12718
diff changeset
608 " vim: shiftwidth=2 sts=2 expandtab