Mercurial > vim
annotate src/testdir/test_statusline.vim @ 28811:bd5b6ac5998f v8.2.4929
patch 8.2.4929: off-by-one error in in statusline item
Commit: https://github.com/vim/vim/commit/57ff52677bf5ba1651281ffe40505df8feba4a36
Author: LemonBoy <thatlemon@gmail.com>
Date: Mon May 9 21:03:47 2022 +0100
patch 8.2.4929: off-by-one error in in statusline item
Problem: Off-by-one error in in statusline item.
Solution: Subtrace one less. (closes https://github.com/vim/vim/issues/10394, closes https://github.com/vim/vim/issues/5599)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 09 May 2022 22:15:03 +0200 |
parents | b4c111ea83b1 |
children | 5da38c4ffe92 |
rev | line source |
---|---|
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
1 " Test 'statusline' |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
2 " |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
3 " Not tested yet: |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
4 " %N |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
5 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
6 source view_util.vim |
18767
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18746
diff
changeset
|
7 source check.vim |
19354
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
8 source screendump.vim |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
9 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
10 func s:get_statusline() |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
11 return ScreenLines(&lines - 1, &columns)[0] |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
12 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
13 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
14 func StatuslineWithCaughtError() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 let s:func_in_statusline_called = 1 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 try |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
17 call eval('unknown expression') |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 catch |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 endtry |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 return '' |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
21 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
23 func StatuslineWithError() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 let s:func_in_statusline_called = 1 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 call eval('unknown expression') |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
26 return '' |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
27 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
29 " Function used to display syntax group. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
30 func SyntaxItem() |
16740
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
31 call assert_equal(s:expected_curbuf, g:actual_curbuf) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
32 call assert_equal(s:expected_curwin, g:actual_curwin) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
33 return synIDattr(synID(line("."), col("."),1), "name") |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
34 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
35 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
36 func Test_caught_error_in_statusline() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
37 let s:func_in_statusline_called = 0 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 set laststatus=2 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 let statusline = '%{StatuslineWithCaughtError()}' |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 let &statusline = statusline |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 redrawstatus |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 call assert_true(s:func_in_statusline_called) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 call assert_equal(statusline, &statusline) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 set statusline= |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
45 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
47 func Test_statusline_will_be_disabled_with_error() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 let s:func_in_statusline_called = 0 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 set laststatus=2 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
50 let statusline = '%{StatuslineWithError()}' |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 try |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 let &statusline = statusline |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 redrawstatus |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 catch |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 endtry |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 call assert_true(s:func_in_statusline_called) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 call assert_equal('', &statusline) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 set statusline= |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
59 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
60 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
61 func Test_statusline() |
18767
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18746
diff
changeset
|
62 CheckFeature quickfix |
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18746
diff
changeset
|
63 |
20984
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
64 " %a: Argument list ({current} of {max}) |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
65 set statusline=%a |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
66 call assert_match('^\s*$', s:get_statusline()) |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
67 arglocal a1 a2 |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
68 rewind |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
69 call assert_match('^ (1 of 2)\s*$', s:get_statusline()) |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
70 next |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
71 call assert_match('^ (2 of 2)\s*$', s:get_statusline()) |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
72 e Xstatusline |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
73 call assert_match('^ ((2) of 2)\s*$', s:get_statusline()) |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
74 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
75 only |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
76 set laststatus=2 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
77 set splitbelow |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
78 call setline(1, range(1, 10000)) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
79 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
80 " %b: Value of character under cursor. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
81 " %B: As above, in hexadecimal. |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
82 call cursor(9000, 1) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
83 set statusline=%b,%B |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
84 call assert_match('^57,39\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
85 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
86 " %o: Byte number in file of byte under cursor, first byte is 1. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
87 " %O: As above, in hexadecimal. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
88 set statusline=%o,%O |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
89 set fileformat=dos |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
90 call assert_match('^52888,CE98\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
91 set fileformat=mac |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
92 call assert_match('^43889,AB71\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
93 set fileformat=unix |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
94 call assert_match('^43889,AB71\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
95 set fileformat& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
96 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
97 " %f: Path to the file in the buffer, as typed or relative to current dir. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
98 set statusline=%f |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
99 call assert_match('^Xstatusline\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
100 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
101 " %F: Full path to the file in the buffer. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
102 set statusline=%F |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
103 call assert_match('/testdir/Xstatusline\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
104 |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
105 " Test for min and max width with %(. For some reason, if this test is moved |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
106 " after the below test for the help buffer flag, then the code to truncate |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
107 " the string is not executed. |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
108 set statusline=%015(%f%) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
109 call assert_match('^ Xstatusline\s*$', s:get_statusline()) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
110 set statusline=%.6(%f%) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
111 call assert_match('^<sline\s*$', s:get_statusline()) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
112 set statusline=%14f |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
113 call assert_match('^ Xstatusline\s*$', s:get_statusline()) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
114 set statusline=%.4L |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
115 call assert_match('^10>3\s*$', s:get_statusline()) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
116 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
117 " %h: Help buffer flag, text is "[help]". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
118 " %H: Help buffer flag, text is ",HLP". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
119 set statusline=%h,%H |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
120 call assert_match('^,\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
121 help |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
122 call assert_match('^\[Help\],HLP\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
123 helpclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
124 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
125 " %k: Value of "b:keymap_name" or 'keymap' |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
126 " when :lmap mappings are being used: <keymap>" |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
127 set statusline=%k |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
128 if has('keymap') |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
129 set keymap=esperanto |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
130 call assert_match('^<Eo>\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
131 set keymap& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
132 else |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
133 call assert_match('^\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
134 endif |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
135 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
136 " %l: Line number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
137 " %L: Number of line in buffer. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
138 " %c: Column number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
139 set statusline=%l/%L,%c |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
140 call assert_match('^9000/10000,1\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
141 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
142 " %m: Modified flag, text is "[+]", "[-]" if 'modifiable' is off. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
143 " %M: Modified flag, text is ",+" or ",-". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
144 set statusline=%m%M |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
145 call assert_match('^\[+\],+\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
146 set nomodifiable |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
147 call assert_match('^\[+-\],+-\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
148 write |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
149 call assert_match('^\[-\],-\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
150 set modifiable& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
151 call assert_match('^\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
152 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
153 " %n: Buffer number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
154 set statusline=%n |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
155 call assert_match('^'.bufnr('%').'\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
156 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
157 " %p: Percentage through file in lines as in CTRL-G. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
158 " %P: Percentage through file of displayed window. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
159 set statusline=%p,%P |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
160 0 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
161 call assert_match('^0,Top\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
162 norm G |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
163 call assert_match('^100,Bot\s*$', s:get_statusline()) |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
164 9000 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
165 " Don't check the exact percentage as it depends on the window size |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
166 call assert_match('^90,\(Top\|Bot\|\d\+%\)\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
167 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
168 " %q: "[Quickfix List]", "[Location List]" or empty. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
169 set statusline=%q |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
170 call assert_match('^\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
171 copen |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
172 call assert_match('^\[Quickfix List\]\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
173 cclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
174 lexpr getline(1, 2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
175 lopen |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
176 call assert_match('^\[Location List\]\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
177 lclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
178 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
179 " %r: Readonly flag, text is "[RO]". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
180 " %R: Readonly flag, text is ",RO". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
181 set statusline=%r,%R |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
182 call assert_match('^,\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
183 help |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
184 call assert_match('^\[RO\],RO\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
185 helpclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
186 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
187 " %t: File name (tail) of file in the buffer. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
188 set statusline=%t |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
189 call assert_match('^Xstatusline\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
190 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
191 " %v: Virtual column number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
192 " %V: Virtual column number as -{num}. Not displayed if equal to 'c'. |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
193 call cursor(9000, 2) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
194 set statusline=%v,%V |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
195 call assert_match('^2,\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
196 set virtualedit=all |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
197 norm 10| |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
198 call assert_match('^10,-10\s*$', s:get_statusline()) |
27124
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
199 set list |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
200 call assert_match('^10,-10\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
201 set virtualedit& |
27124
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
202 exe "norm A\<Tab>\<Tab>a\<Esc>" |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
203 " In list mode a <Tab> is shown as "^I", which is 2-wide. |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
204 call assert_match('^9,-9\s*$', s:get_statusline()) |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
205 set list& |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
206 " Now the second <Tab> ends at the 16th screen column. |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
207 call assert_match('^17,-17\s*$', s:get_statusline()) |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
208 undo |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
209 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
210 " %w: Preview window flag, text is "[Preview]". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
211 " %W: Preview window flag, text is ",PRV". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
212 set statusline=%w%W |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
213 call assert_match('^\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
214 pedit |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
215 wincmd j |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
216 call assert_match('^\[Preview\],PRV\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
217 pclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
218 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
219 " %y: Type of file in the buffer, e.g., "[vim]". See 'filetype'. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
220 " %Y: Type of file in the buffer, e.g., ",VIM". See 'filetype'. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
221 set statusline=%y\ %Y |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
222 call assert_match('^\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
223 setfiletype vim |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
224 call assert_match('^\[vim\] VIM\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
225 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
226 " %=: Separation point between left and right aligned items. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
227 set statusline=foo%=bar |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
228 call assert_match('^foo\s\+bar\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
229 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
230 " Test min/max width, leading zeroes, left/right justify. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
231 set statusline=%04B |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
232 call cursor(9000, 1) |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
233 call assert_match('^0039\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
234 set statusline=#%4B# |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
235 call assert_match('^# 39#\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
236 set statusline=#%-4B# |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
237 call assert_match('^#39 #\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
238 set statusline=%.6f |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
239 call assert_match('^<sline\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
240 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
241 " %<: Where to truncate. |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
242 " First check with when %< should not truncate with many columns |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
243 exe 'set statusline=a%<b' . repeat('c', &columns - 3) . 'd' |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
244 call assert_match('^abc\+d$', s:get_statusline()) |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
245 exe 'set statusline=a' . repeat('b', &columns - 2) . '%<c' |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
246 call assert_match('^ab\+c$', s:get_statusline()) |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
247 " Then check when %< should truncate when there with too few columns. |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
248 exe 'set statusline=a%<b' . repeat('c', &columns - 2) . 'd' |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
249 call assert_match('^a<c\+d$', s:get_statusline()) |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
250 exe 'set statusline=a' . repeat('b', &columns - 1) . '%<c' |
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
251 call assert_match('^ab\+>$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
252 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
253 "%{: Evaluate expression between '%{' and '}' and substitute result. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
254 syntax on |
16740
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
255 let s:expected_curbuf = string(bufnr('')) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
256 let s:expected_curwin = string(win_getid()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
257 set statusline=%{SyntaxItem()} |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
258 call assert_match('^vimNumber\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
259 s/^/"/ |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
260 call assert_match('^vimLineComment\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
261 syntax off |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
262 |
28171
b4c111ea83b1
patch 8.2.4611: typos in tests; one lua line not covered by test
Bram Moolenaar <Bram@vim.org>
parents:
27124
diff
changeset
|
263 "%{%expr%}: evaluates expressions present in result of expr |
24630
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
264 func! Inner_eval() |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
265 return '%n some other text' |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
266 endfunc |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
267 func! Outer_eval() |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
268 return 'some text %{%Inner_eval()%}' |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
269 endfunc |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
270 set statusline=%{%Outer_eval()%} |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
271 call assert_match('^some text ' . bufnr() . ' some other text\s*$', s:get_statusline()) |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
272 delfunc Inner_eval |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
273 delfunc Outer_eval |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
274 |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
275 "%{%expr%}: Doesn't get stuck in recursion |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
276 func! Recurse_eval() |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
277 return '%{%Recurse_eval()%}' |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
278 endfunc |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
279 set statusline=%{%Recurse_eval()%} |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
280 call assert_match('^%{%Recurse_eval()%}\s*$', s:get_statusline()) |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
281 delfunc Recurse_eval |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
282 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
283 "%(: Start of item group. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
284 set statusline=ab%(cd%q%)de |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
285 call assert_match('^abde\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
286 copen |
11525
14b6b79d685b
patch 8.0.0645: no error for illegal back reference in NFA engine
Christian Brabandt <cb@256bit.org>
parents:
11075
diff
changeset
|
287 call assert_match('^abcd\[Quickfix List]de\s*$', s:get_statusline()) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
288 cclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
289 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
290 " %#: Set highlight group. The name must follow and then a # again. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
291 set statusline=ab%#Todo#cd%#Error#ef |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
292 call assert_match('^abcdef\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
293 let sa1=screenattr(&lines - 1, 1) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
294 let sa2=screenattr(&lines - 1, 3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
295 let sa3=screenattr(&lines - 1, 5) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
296 call assert_notequal(sa1, sa2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
297 call assert_notequal(sa1, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
298 call assert_notequal(sa2, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
299 call assert_equal(sa1, screenattr(&lines - 1, 2)) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
300 call assert_equal(sa2, screenattr(&lines - 1, 4)) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
301 call assert_equal(sa3, screenattr(&lines - 1, 6)) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
302 call assert_equal(sa3, screenattr(&lines - 1, 7)) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
303 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
304 " %*: Set highlight group to User{N} |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
305 set statusline=a%1*b%0*c |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
306 call assert_match('^abc\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
307 let sa1=screenattr(&lines - 1, 1) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
308 let sa2=screenattr(&lines - 1, 2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
309 let sa3=screenattr(&lines - 1, 3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
310 call assert_equal(sa1, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
311 call assert_notequal(sa1, sa2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
312 |
12660
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
313 " An empty group that contains highlight changes |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
314 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
315 set statusline=ab%(cd%1*%{g:a}%*%)de |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
316 call assert_match('^abde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
317 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
318 let sa2=screenattr(&lines - 1, 4) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
319 call assert_equal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
320 let g:a = 'X' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
321 call assert_match('^abcdXde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
322 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
323 let sa2=screenattr(&lines - 1, 5) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
324 let sa3=screenattr(&lines - 1, 7) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
325 call assert_equal(sa1, sa3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
326 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
327 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
328 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
329 set statusline=ab%1*%(cd%*%{g:a}%1*%)de |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
330 call assert_match('^abde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
331 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
332 let sa2=screenattr(&lines - 1, 4) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
333 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
334 let g:a = 'X' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
335 call assert_match('^abcdXde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
336 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
337 let sa2=screenattr(&lines - 1, 3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
338 let sa3=screenattr(&lines - 1, 5) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
339 let sa4=screenattr(&lines - 1, 7) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
340 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
341 call assert_equal(sa1, sa3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
342 call assert_equal(sa2, sa4) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
343 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
344 " An empty group that contains highlight changes and doesn't reset them |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
345 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
346 set statusline=ab%(cd%1*%{g:a}%)de |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
347 call assert_match('^abcdde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
348 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
349 let sa2=screenattr(&lines - 1, 5) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
350 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
351 let g:a = 'X' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
352 call assert_match('^abcdXde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
353 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
354 let sa2=screenattr(&lines - 1, 5) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
355 let sa3=screenattr(&lines - 1, 7) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
356 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
357 call assert_equal(sa2, sa3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
358 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
359 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
360 set statusline=ab%1*%(cd%*%{g:a}%)de |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
361 call assert_match('^abcdde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
362 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
363 let sa2=screenattr(&lines - 1, 3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
364 let sa3=screenattr(&lines - 1, 5) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
365 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
366 call assert_equal(sa1, sa3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
367 let g:a = 'X' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
368 call assert_match('^abcdXde\s*$', s:get_statusline()) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
369 let sa1=screenattr(&lines - 1, 1) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
370 let sa2=screenattr(&lines - 1, 3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
371 let sa3=screenattr(&lines - 1, 5) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
372 let sa4=screenattr(&lines - 1, 7) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
373 call assert_notequal(sa1, sa2) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
374 call assert_equal(sa1, sa3) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
375 call assert_equal(sa1, sa4) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
376 |
12684
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
377 let g:a = '' |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
378 set statusline=%#Error#{%(\ %{g:a}\ %)} |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
379 call assert_match('^{}\s*$', s:get_statusline()) |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
380 let g:a = 'X' |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
381 call assert_match('^{ X }\s*$', s:get_statusline()) |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
382 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
383 " %%: a percent sign. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
384 set statusline=10%% |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
385 call assert_match('^10%\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
386 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
387 " %!: evaluated expression is used as the option value |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
388 set statusline=%!2*3+1 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
389 call assert_match('7\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
390 |
16740
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
391 func GetNested() |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
392 call assert_equal(string(win_getid()), g:actual_curwin) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
393 call assert_equal(string(bufnr('')), g:actual_curbuf) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
394 return 'nested' |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
395 endfunc |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
396 func GetStatusLine() |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
397 call assert_equal(win_getid(), g:statusline_winid) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
398 return 'the %{GetNested()} line' |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
399 endfunc |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
400 set statusline=%!GetStatusLine() |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
401 call assert_match('the nested line', s:get_statusline()) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
402 call assert_false(exists('g:actual_curwin')) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
403 call assert_false(exists('g:actual_curbuf')) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
404 call assert_false(exists('g:statusline_winid')) |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
405 delfunc GetNested |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
406 delfunc GetStatusLine |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
407 |
22721
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
408 " Test statusline works with 80+ items |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
409 function! StatusLabel() |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
410 redrawstatus |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
411 return '[label]' |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
412 endfunc |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
413 let statusline = '%{StatusLabel()}' |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
414 for i in range(150) |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
415 let statusline .= '%#TabLine' . (i % 2 == 0 ? 'Fill' : 'Sel') . '#' . string(i)[0] |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
416 endfor |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
417 let &statusline = statusline |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
418 redrawstatus |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
419 set statusline& |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
420 delfunc StatusLabel |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
421 |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
422 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
423 " Check statusline in current and non-current window |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
424 " with the 'fillchars' option. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
425 set fillchars=stl:^,stlnc:=,vert:\|,fold:-,diff:- |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
426 vsplit |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
427 set statusline=x%=y |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
428 call assert_match('^x^\+y^x=\+y$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
429 set fillchars& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
430 close |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
431 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
432 %bw! |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
433 call delete('Xstatusline') |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
434 set statusline& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
435 set laststatus& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
436 set splitbelow& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
437 endfunc |
18746
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
438 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
439 func Test_statusline_visual() |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
440 func CallWordcount() |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
441 call wordcount() |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
442 endfunc |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
443 new x1 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
444 setl statusline=count=%{CallWordcount()} |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
445 " buffer must not be empty |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
446 call setline(1, 'hello') |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
447 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
448 " window with more lines than x1 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
449 new x2 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
450 call setline(1, range(10)) |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
451 $ |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
452 " Visual mode in line below liast line in x1 should not give ml_get error |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
453 call feedkeys("\<C-V>", "xt") |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
454 redraw |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
455 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
456 delfunc CallWordcount |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
457 bwipe! x1 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
458 bwipe! x2 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
459 endfunc |
19354
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
460 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
461 func Test_statusline_removed_group() |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
462 CheckScreendump |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
463 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
464 let lines =<< trim END |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
465 scriptencoding utf-8 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
466 set laststatus=2 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
467 let &statusline = '%#StatColorHi2#%(✓%#StatColorHi2#%) Q≡' |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
468 END |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
469 call writefile(lines, 'XTest_statusline') |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
470 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
471 let buf = RunVimInTerminal('-S XTest_statusline', {'rows': 10, 'cols': 50}) |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
472 call VerifyScreenDump(buf, 'Test_statusline_1', {}) |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
473 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
474 " clean up |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
475 call StopVimInTerminal(buf) |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
476 call delete('XTest_statusline') |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
477 endfunc |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
478 |
24291
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
479 func Test_statusline_using_mode() |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
480 CheckScreendump |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
481 |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
482 let lines =<< trim END |
24394
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
483 setlocal statusline=-%{mode()}- |
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
484 split |
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
485 setlocal statusline=+%{mode()}+ |
24291
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
486 END |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
487 call writefile(lines, 'XTest_statusline') |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
488 |
24394
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
489 let buf = RunVimInTerminal('-S XTest_statusline', {'rows': 7, 'cols': 50}) |
24291
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
490 call VerifyScreenDump(buf, 'Test_statusline_mode_1', {}) |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
491 |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
492 call term_sendkeys(buf, ":") |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
493 call VerifyScreenDump(buf, 'Test_statusline_mode_2', {}) |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
494 |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
495 " clean up |
24394
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
496 call term_sendkeys(buf, "close\<CR>") |
24291
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
497 call StopVimInTerminal(buf) |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
498 call delete('XTest_statusline') |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
499 endfunc |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
500 |
22464
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
501 func Test_statusline_after_split_vsplit() |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
502 only |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
503 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
504 " Make the status line of each window show the window number. |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
505 set ls=2 stl=%{winnr()} |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
506 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
507 split | redraw |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
508 vsplit | redraw |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
509 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
510 " The status line of the third window should read '3' here. |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
511 call assert_equal('3', nr2char(screenchar(&lines - 1, 1))) |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
512 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
513 only |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
514 set ls& stl& |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
515 endfunc |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
516 |
24055
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
517 " Test using a multibyte character for 'stl' and 'stlnc' items in 'fillchars' |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
518 " with a custom 'statusline' |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
519 func Test_statusline_mbyte_fillchar() |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
520 only |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
521 set laststatus=2 |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
522 set fillchars=vert:\|,fold:-,stl:━,stlnc:═ |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
523 set statusline=a%=b |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
524 call assert_match('^a\+━\+b$', s:get_statusline()) |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
525 vnew |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
526 call assert_match('^a\+━\+b━a\+═\+b$', s:get_statusline()) |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
527 wincmd w |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
528 call assert_match('^a\+═\+b═a\+━\+b$', s:get_statusline()) |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
529 set statusline& fillchars& laststatus& |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
530 %bw! |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
531 endfunc |
22464
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
532 |
25907
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
533 " Used to write beyond allocated memory. This assumes MAXPATHL is 4096 bytes. |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
534 func Test_statusline_verylong_filename() |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
535 let fname = repeat('x', 4090) |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
536 exe "new " .. fname |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
537 set buftype=help |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
538 set previewwindow |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
539 redraw |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
540 bwipe! |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
541 endfunc |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
542 |
28811
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
543 func Test_statusline_highlight_truncate() |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
544 CheckScreendump |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
545 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
546 let lines =<< trim END |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
547 set laststatus=2 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
548 hi! link User1 Directory |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
549 hi! link User2 ErrorMsg |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
550 set statusline=%.5(%1*ABC%2*DEF%1*GHI%) |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
551 END |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
552 call writefile(lines, 'XTest_statusline') |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
553 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
554 let buf = RunVimInTerminal('-S XTest_statusline', {'rows': 6}) |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
555 call VerifyScreenDump(buf, 'Test_statusline_hl', {}) |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
556 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
557 call StopVimInTerminal(buf) |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
558 call delete('XTest_statusline') |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
559 endfunc |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
560 |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
561 " vim: shiftwidth=2 sts=2 expandtab |