annotate src/testdir/test_listlbr_utf8.vim @ 32981:2415680a2554 v9.0.1783

commit b557f4898208105b674df605403cac1b1292707b Author: zeertzjq <zeertzjq@outlook.com> Date: Tue Aug 22 22:07:34 2023 +0200 patch 9.0.1783: Display issues with virt text smoothscroll and showbreak Problem: Wrong display with wrapping virtual text or unprintable chars, 'showbreak' and 'smoothscroll'. Solution: Don't skip cells taken by 'showbreak' in screen lines before "w_skipcol". Combined "n_skip" and "skip_cells". closes: #12597 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author Christian Brabandt <cb@256bit.org>
date Thu, 24 Aug 2023 07:47:10 +0200
parents a59a8ce13129
children 5525b635ed4a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Test for linebreak and list option in utf-8 mode
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 set encoding=utf-8
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 scriptencoding utf-8
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5
17089
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
6 source check.vim
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
7 CheckOption linebreak
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
8 CheckFeature conceal
8e9e9124c7a2 patch 8.1.1544: some balloon tests don't run when they can
Bram Moolenaar <Bram@vim.org>
parents: 17049
diff changeset
9 CheckFeature signs
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 source view_util.vim
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
13 func s:screen_lines(lnum, width) abort
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 return ScreenLines(a:lnum, a:width)
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
15 endfunc
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
17 func s:compare_lines(expect, actual)
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 call assert_equal(a:expect, a:actual)
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
19 endfunc
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
21 func s:screen_attr(lnum, chars, ...) abort
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
22 let line = getline(a:lnum)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
23 let attr = []
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
24 let prefix = get(a:000, 0, 0)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
25 for i in range(a:chars[0], a:chars[1])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
26 let scol = strdisplaywidth(strcharpart(line, 0, i-1)) + 1
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
27 let attr += [screenattr(a:lnum, scol + prefix)]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
28 endfor
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
29 return attr
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
30 endfunc
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
31
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
32 func s:test_windows(...)
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
33 call NewWindow(10, 20)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
34 setl ts=4 sw=4 sts=4 linebreak sbr=+ wrap
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
35 exe get(a:000, 0, '')
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
36 endfunc
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
37
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
38 func s:close_windows(...)
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
39 call CloseWindow()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
40 exe get(a:000, 0, '')
15406
63b02fcf1361 patch 8.1.0711: test files still use function!
Bram Moolenaar <Bram@vim.org>
parents: 11585
diff changeset
41 endfunc
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
42
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
43 func Test_linebreak_with_fancy_listchars()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
44 call s:test_windows("setl list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
45 call setline(1, "\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP ")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
46 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
47 let lines = s:screen_lines([1, 4], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
48 let expect = [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
49 \ "▕———abcdef ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
50 \ "+hijklmn▕——— ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
51 \ "+pqrstuvwxyz␣1060ABC",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
52 \ "+DEFGHIJKLMNOPˑ¶ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
53 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
54 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
55 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
56 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
57
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
58 func Test_nolinebreak_with_list()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
59 call s:test_windows("setl nolinebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
60 call setline(1, "\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP ")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
61 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
62 let lines = s:screen_lines([1, 4], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
63 let expect = [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
64 \ "▕———abcdef hijklmn▕—",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
65 \ "+pqrstuvwxyz␣1060ABC",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
66 \ "+DEFGHIJKLMNOPˑ¶ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
67 \ "~ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
68 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
69 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
70 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
71 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72
25749
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
73 " this was causing a crash
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
74 func Test_linebreak_with_list_and_tabs()
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
75 set linebreak list listchars=tab:⇤\ ⇥ tabstop=100
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
76 new
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
77 call setline(1, "\t\t\ttext")
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
78 redraw
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
79 bwipe!
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
80 set nolinebreak nolist listchars&vim tabstop=8
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
81 endfunc
24b80aa4dd2e patch 8.2.3410: crash with linebreak, listchars and large tabstop
Bram Moolenaar <Bram@vim.org>
parents: 21765
diff changeset
82
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83 func Test_linebreak_with_nolist()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84 call s:test_windows('setl nolist')
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85 call setline(1, "\t*mask = nil;")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
87 let lines = s:screen_lines([1, 4], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 let expect = [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
89 \ " *mask = nil; ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90 \ "~ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
91 \ "~ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
92 \ "~ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
94 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
95 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
96 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
97
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
98 func Test_list_and_concealing1()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
99 call s:test_windows('setl list listchars=tab:>- cole=1')
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
100 call setline(1, [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
101 \ "#define ABCDE\t\t1",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
102 \ "#define ABCDEF\t\t1",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
103 \ "#define ABCDEFG\t\t1",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
104 \ "#define ABCDEFGH\t1",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
105 \ "#define MSG_MODE_FILE\t\t\t1",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
106 \ "#define MSG_MODE_CONSOLE\t\t2",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
107 \ "#define MSG_MODE_FILE_AND_CONSOLE\t3",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
108 \ "#define MSG_MODE_FILE_THEN_CONSOLE\t4",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
109 \ ])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
110 vert resize 40
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
111 syn match Conceal conceal cchar=>'AB\|MSG_MODE'
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
112 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
113 let lines = s:screen_lines([1, 7], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
114 let expect = [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
115 \ "#define ABCDE>-->---1 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
116 \ "#define >CDEF>-->---1 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
117 \ "#define >CDEFG>->---1 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
118 \ "#define >CDEFGH>----1 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
119 \ "#define >_FILE>--------->--->---1 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
120 \ "#define >_CONSOLE>---------->---2 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
121 \ "#define >_FILE_AND_CONSOLE>---------3 ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
122 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
123 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
124 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
125 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
126
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
127 func Test_list_and_concealing2()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
128 call s:test_windows('setl nowrap ts=2 list listchars=tab:>- cole=2 concealcursor=n')
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
129 call setline(1, "bbeeeeee\t\t;\tsome text")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
130 vert resize 40
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
131 syn clear
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
132 syn match meaning /;\s*\zs.*/
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
133 syn match hasword /^\x\{8}/ contains=word
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
134 syn match word /\<\x\{8}\>/ contains=beginword,endword contained
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
135 syn match beginword /\<\x\x/ contained conceal
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
136 syn match endword /\x\{6}\>/ contained
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
137 hi meaning guibg=blue
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
138 hi beginword guibg=green
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
139 hi endword guibg=red
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
140 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
141 let lines = s:screen_lines([1, 1], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
142 let expect = [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
143 \ "eeeeee>--->-;>some text ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
146 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
147 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
148
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
149 func Test_screenattr_for_comment()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
150 call s:test_windows("setl ft=c ts=7 list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
151 call setline(1, " /*\t\t and some more */")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
152 norm! gg0
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
153 syntax on
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
154 hi SpecialKey term=underline ctermfg=red guifg=red
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
155 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
156 let line = getline(1)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
157 let attr = s:screen_attr(1, [1, 6])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
158 call assert_notequal(attr[0], attr[1])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
159 call assert_notequal(attr[1], attr[3])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
160 call assert_notequal(attr[3], attr[5])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
161 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
162 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
163
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
164 func Test_visual_block_and_selection_exclusive()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
165 call s:test_windows('setl selection=exclusive')
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
166 call setline(1, "long line: " . repeat("foobar ", 40) . "TARGETÃ' at end")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
167 exe "norm! $3B\<C-v>eAx\<Esc>"
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168 let lines = s:screen_lines([1, 10], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
169 let expect = [
30693
a59a8ce13129 patch 9.0.0681: "<<<" shows for 'smoothscroll' even when 'showbreak is set
Bram Moolenaar <Bram@vim.org>
parents: 30630
diff changeset
170 \ "+foobar foobar ",
10843
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 \ "+foobar foobar ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 \ "+foobar TARGETÃx' ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
181 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 endfunc
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 func Test_multibyte_sign_and_colorcolumn()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 call s:test_windows("setl nolinebreak cc=3 list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
187 call setline(1, ["", "a b c", "a b c"])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188 exe "sign define foo text=\uff0b"
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
189 exe "sign place 1 name=foo line=2 buffer=" . bufnr('%')
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
190 redraw!
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
191 norm! ggj0
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
192 let signwidth = strdisplaywidth("\uff0b")
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
193 let attr1 = s:screen_attr(2, [1, 3], signwidth)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
194 let attr2 = s:screen_attr(3, [1, 3], signwidth)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
195 call assert_equal(attr1[0], attr2[0])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
196 call assert_equal(attr1[1], attr2[1])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
197 call assert_equal(attr1[2], attr2[2])
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 let lines = s:screen_lines([1, 3], winwidth(0))
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
199 let expect = [
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
200 \ " ¶ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
201 \ "+a b c¶ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
202 \ " a b c¶ ",
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
203 \ ]
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
204 call s:compare_lines(expect, lines)
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
205 call s:close_windows()
678edb254216 patch 8.0.0311: linebreak tests are old style
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
206 endfunc
10982
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
207
11585
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
208 func Test_colorcolumn_priority()
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
209 call s:test_windows('setl cc=4 cuc hls')
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
210 call setline(1, ["xxyy", ""])
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
211 norm! gg
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
212 exe "normal! /xxyy\<CR>"
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
213 norm! G
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
214 redraw!
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
215 let line_attr = s:screen_attr(1, [1, &cc])
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
216 " Search wins over CursorColumn
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
217 call assert_equal(line_attr[1], line_attr[0])
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
218 " Search wins over Colorcolumn
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
219 call assert_equal(line_attr[2], line_attr[3])
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
220 call s:close_windows('setl hls&vim')
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
221 endfunc
18373179040e patch 8.0.0675: 'colorcolumn' has a higher priority than 'hlsearch'
Christian Brabandt <cb@256bit.org>
parents: 11010
diff changeset
222
10982
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
223 func Test_illegal_byte_and_breakat()
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
224 call s:test_windows("setl sbr= brk+=<")
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
225 vert resize 18
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
226 call setline(1, repeat("\x80", 6))
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
227 redraw!
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
228 let lines = s:screen_lines([1, 2], winwidth(0))
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
229 let expect = [
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
230 \ "<80><80><80><80><8",
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
231 \ "0><80> ",
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
232 \ ]
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
233 call s:compare_lines(expect, lines)
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
234 call s:close_windows('setl brk&vim')
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
235 endfunc
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
236
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
237 func Test_multibyte_wrap_and_breakat()
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
238 call s:test_windows("setl sbr= brk+=>")
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
239 call setline(1, repeat('a', 17) . repeat('あ', 2))
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
240 redraw!
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
241 let lines = s:screen_lines([1, 2], winwidth(0))
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
242 let expect = [
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
243 \ "aaaaaaaaaaaaaaaaaあ>",
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
244 \ "あ ",
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
245 \ ]
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
246 call s:compare_lines(expect, lines)
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
247 call s:close_windows('setl brk&vim')
5e20c9f96cd5 patch 8.0.0380: with 'linebreak' double wide char wraps badly
Christian Brabandt <cb@256bit.org>
parents: 10843
diff changeset
248 endfunc
11010
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
249
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
250 func Test_chinese_char_on_wrap_column()
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
251 call s:test_windows("setl nolbr wrap sbr=")
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
252 call setline(1, [
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
253 \ 'aaaaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
254 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
255 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
256 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
257 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
258 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
259 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
260 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
261 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
262 \ 'aaaaaaaaaaaaaaaaa中'.
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
263 \ 'hello'])
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
264 call cursor(1,1)
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
265 norm! $
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
266 redraw!
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
267 let expect=[
30630
218363931f5d patch 9.0.0650: some tests are failing
Bram Moolenaar <Bram@vim.org>
parents: 25749
diff changeset
268 \ '<<<aaaaaaaaaaaaaaaa>',
11010
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
269 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
270 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
271 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
272 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
273 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
274 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
275 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
276 \ '中aaaaaaaaaaaaaaaaa>',
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
277 \ '中hello ']
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
278 let lines = s:screen_lines([1, 10], winwidth(0))
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
279 call s:compare_lines(expect, lines)
32981
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
280 call assert_equal(len(expect), winline())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
281 call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
282 call s:close_windows()
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
283 endfunc
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
284
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
285 func Test_chinese_char_on_wrap_column_sbr()
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
286 call s:test_windows("setl nolbr wrap sbr=!!!")
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
287 call setline(1, [
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
288 \ 'aaaaaaaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
289 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
290 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
291 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
292 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
293 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
294 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
295 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
296 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
297 \ 'aaaaaaaaaaaaaa中'.
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
298 \ 'hello'])
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
299 call cursor(1,1)
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
300 norm! $
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
301 redraw!
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
302 let expect=[
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
303 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
304 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
305 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
306 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
307 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
308 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
309 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
310 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
311 \ '!!!中aaaaaaaaaaaaaa>',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
312 \ '!!!中hello ']
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
313 let lines = s:screen_lines([1, 10], winwidth(0))
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
314 call s:compare_lines(expect, lines)
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
315 call assert_equal(len(expect), winline())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
316 call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
317 call s:close_windows()
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
318 endfunc
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
319
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
320 func Test_unprintable_char_on_wrap_column()
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
321 call s:test_windows("setl nolbr wrap sbr=")
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
322 call setline(1, 'aaa' .. repeat("\uFEFF", 50) .. 'bbb')
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
323 call cursor(1,1)
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
324 norm! $
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
325 redraw!
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
326 let expect=[
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
327 \ '<<<<feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
328 \ '><feff><feff><feff><',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
329 \ 'feff><feff><feff><fe',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
330 \ 'ff><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
331 \ '><feff><feff><feff><',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
332 \ 'feff><feff><feff><fe',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
333 \ 'ff><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
334 \ '><feff><feff><feff><',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
335 \ 'feff><feff><feff><fe',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
336 \ 'ff>bbb ']
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
337 let lines = s:screen_lines([1, 10], winwidth(0))
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
338 call s:compare_lines(expect, lines)
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
339 call assert_equal(len(expect), winline())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
340 call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
341 setl sbr=!!
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
342 redraw!
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
343 let expect=[
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
344 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
345 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
346 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
347 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
348 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
349 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
350 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
351 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
352 \ '!!><feff><feff><feff',
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
353 \ '!!><feff><feff>bbb ']
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
354 let lines = s:screen_lines([1, 10], winwidth(0))
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
355 call s:compare_lines(expect, lines)
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
356 call assert_equal(len(expect), winline())
2415680a2554 commit b557f4898208105b674df605403cac1b1292707b
Christian Brabandt <cb@256bit.org>
parents: 30693
diff changeset
357 call assert_equal(strwidth(trim(expect[-1], ' ', 2)), wincol())
11010
c004e17fa36b patch 8.0.0394: tabs are not aligned when scrolling horizontally
Christian Brabandt <cb@256bit.org>
parents: 10982
diff changeset
358 call s:close_windows()
21765
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
359 endfunc
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
360
08940efa6b4e patch 8.2.1432: various inconsistencies in test files
Bram Moolenaar <Bram@vim.org>
parents: 17089
diff changeset
361 " vim: shiftwidth=2 sts=2 expandtab