Mercurial > vim
annotate src/testdir/test_statusline.vim @ 31047:ac1f548223a5 v9.0.0858
patch 9.0.0858: "!!sort" in a closed fold sorts too many lines
Commit: https://github.com/vim/vim/commit/f00112d558eb9a7d1d5413c096960ddcc52c9f66
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Nov 11 01:20:35 2022 +0000
patch 9.0.0858: "!!sort" in a closed fold sorts too many lines
Problem: "!!sort" in a closed fold sorts too many lines.
Solution: Round to end of fold after adding the line count. (closes https://github.com/vim/vim/issues/11487)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 11 Nov 2022 02:30:03 +0100 |
parents | ae10b91ac6b3 |
children | bb797331e21b |
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 |
29434
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
10 func SetUp() |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
11 set laststatus=2 |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
12 endfunc |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
13 |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
14 func TearDown() |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
15 set laststatus& |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
16 endfunc |
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
17 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
18 func s:get_statusline() |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
19 return ScreenLines(&lines - 1, &columns)[0] |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
20 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
21 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
22 func StatuslineWithCaughtError() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 let s:func_in_statusline_called = 1 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
24 try |
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 catch |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 endtry |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 return '' |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
29 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
30 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
31 func StatuslineWithError() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
32 let s:func_in_statusline_called = 1 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
33 call eval('unknown expression') |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
34 return '' |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
35 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
36 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
37 " Function used to display syntax group. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
38 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
|
39 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
|
40 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
|
41 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
|
42 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
43 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
44 func Test_caught_error_in_statusline() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 let s:func_in_statusline_called = 0 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 let statusline = '%{StatuslineWithCaughtError()}' |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 let &statusline = statusline |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 redrawstatus |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 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
|
50 call assert_equal(statusline, &statusline) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
51 set statusline= |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
52 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
54 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
|
55 let s:func_in_statusline_called = 0 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 let statusline = '%{StatuslineWithError()}' |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 try |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 let &statusline = statusline |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 redrawstatus |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 catch |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 endtry |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 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
|
63 call assert_equal('', &statusline) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 set statusline= |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
65 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
66 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
67 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
|
68 CheckFeature quickfix |
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18746
diff
changeset
|
69 |
20984
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
70 " %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
|
71 set statusline=%a |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
72 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
|
73 arglocal a1 a2 |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
74 rewind |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
75 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
|
76 next |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
77 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
|
78 e Xstatusline |
fe06ee7d3511
patch 8.2.1043: %a item in 'statusline' not tested
Bram Moolenaar <Bram@vim.org>
parents:
19954
diff
changeset
|
79 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
|
80 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
81 only |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
82 set splitbelow |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
83 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
|
84 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
85 " %b: Value of character under cursor. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
86 " %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
|
87 call cursor(9000, 1) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
88 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
|
89 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
|
90 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
91 " %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
|
92 " %O: As above, in hexadecimal. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
93 set statusline=%o,%O |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
94 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
|
95 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
|
96 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
|
97 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
|
98 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
|
99 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
|
100 set fileformat& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
101 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
102 " %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
|
103 set statusline=%f |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
104 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
|
105 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
106 " %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
|
107 set statusline=%F |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
108 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
|
109 |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
110 " 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
|
111 " 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
|
112 " 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
|
113 set statusline=%015(%f%) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
114 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
|
115 set statusline=%.6(%f%) |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
116 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
|
117 set statusline=%14f |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
118 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
|
119 set statusline=%.4L |
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
120 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
|
121 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
122 " %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
|
123 " %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
|
124 set statusline=%h,%H |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
125 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
|
126 help |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
127 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
|
128 helpclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
129 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
130 " %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
|
131 " 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
|
132 set statusline=%k |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
133 if has('keymap') |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
134 set keymap=esperanto |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
135 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
|
136 set keymap& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
137 else |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
138 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
|
139 endif |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
140 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
141 " %l: Line number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
142 " %L: Number of line in buffer. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
143 " %c: Column number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
144 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
|
145 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
|
146 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
147 " %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
|
148 " %M: Modified flag, text is ",+" or ",-". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
149 set statusline=%m%M |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
150 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
|
151 set nomodifiable |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
152 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
|
153 write |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
154 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
|
155 set modifiable& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
156 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
|
157 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
158 " %n: Buffer number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
159 set statusline=%n |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
160 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
|
161 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
162 " %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
|
163 " %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
|
164 set statusline=%p,%P |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
165 0 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
166 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
|
167 norm G |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
168 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
|
169 9000 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
170 " 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
|
171 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
|
172 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
173 " %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
|
174 set statusline=%q |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
175 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
|
176 copen |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
177 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
|
178 cclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
179 lexpr getline(1, 2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
180 lopen |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
181 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
|
182 lclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
183 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
184 " %r: Readonly flag, text is "[RO]". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
185 " %R: Readonly flag, text is ",RO". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
186 set statusline=%r,%R |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
187 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
|
188 help |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
189 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
|
190 helpclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
191 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
192 " %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
|
193 set statusline=%t |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
194 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
|
195 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
196 " %v: Virtual column number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
197 " %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
|
198 call cursor(9000, 2) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
199 set statusline=%v,%V |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
200 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
|
201 set virtualedit=all |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
202 norm 10| |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
203 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
|
204 set list |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
205 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
|
206 set virtualedit& |
27124
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
207 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
|
208 " 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
|
209 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
|
210 set list& |
8f1f4f6c87ad
patch 8.2.4091: virtcol is recomputed for statusline unnecessarily
Bram Moolenaar <Bram@vim.org>
parents:
25907
diff
changeset
|
211 " 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
|
212 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
|
213 undo |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
214 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
215 " %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
|
216 " %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
|
217 set statusline=%w%W |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
218 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
|
219 pedit |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
220 wincmd j |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
221 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
|
222 pclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
223 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
224 " %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
|
225 " %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
|
226 set statusline=%y\ %Y |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
227 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
|
228 setfiletype vim |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
229 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
|
230 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
231 " %=: 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
|
232 set statusline=foo%=bar |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
233 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
|
234 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
235 " 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
|
236 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
|
237 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
|
238 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
|
239 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
|
240 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
|
241 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
|
242 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
|
243 set statusline=%.6f |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
244 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
|
245 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
246 " %<: 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
|
247 " 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
|
248 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
|
249 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
|
250 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
|
251 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
|
252 " 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
|
253 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
|
254 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
|
255 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
|
256 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
|
257 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
258 "%{: 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
|
259 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
|
260 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
|
261 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
|
262 set statusline=%{SyntaxItem()} |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
263 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
|
264 s/^/"/ |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
265 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
|
266 syntax off |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
267 |
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
|
268 "%{%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
|
269 func! Inner_eval() |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
270 return '%n some other text' |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
271 endfunc |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
272 func! Outer_eval() |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
273 return 'some text %{%Inner_eval()%}' |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
274 endfunc |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
275 set statusline=%{%Outer_eval()%} |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
276 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
|
277 delfunc Inner_eval |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
278 delfunc Outer_eval |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
279 |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
280 "%{%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
|
281 func! Recurse_eval() |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
282 return '%{%Recurse_eval()%}' |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
283 endfunc |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
284 set statusline=%{%Recurse_eval()%} |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
285 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
|
286 delfunc Recurse_eval |
4cf4d7a71fac
patch 8.2.2854: custom statusline cannot contain % items
Bram Moolenaar <Bram@vim.org>
parents:
24394
diff
changeset
|
287 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
288 "%(: Start of item group. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
289 set statusline=ab%(cd%q%)de |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
290 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
|
291 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
|
292 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
|
293 cclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
294 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
295 " %#: 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
|
296 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
|
297 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
|
298 let sa1=screenattr(&lines - 1, 1) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
299 let sa2=screenattr(&lines - 1, 3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
300 let sa3=screenattr(&lines - 1, 5) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
301 call assert_notequal(sa1, sa2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
302 call assert_notequal(sa1, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
303 call assert_notequal(sa2, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
304 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
|
305 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
|
306 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
|
307 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
|
308 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
309 " %*: Set highlight group to User{N} |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
310 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
|
311 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
|
312 let sa1=screenattr(&lines - 1, 1) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
313 let sa2=screenattr(&lines - 1, 2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
314 let sa3=screenattr(&lines - 1, 3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
315 call assert_equal(sa1, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
316 call assert_notequal(sa1, sa2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
317 |
12660
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
318 " 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
|
319 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
320 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
|
321 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
|
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, 4) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
324 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
|
325 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
|
326 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
|
327 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
|
328 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
|
329 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
|
330 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
|
331 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
|
332 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
333 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
334 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
|
335 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
|
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, 4) |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 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
|
344 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
|
345 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
|
346 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
|
347 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
|
348 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
349 " 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
|
350 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
351 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
|
352 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
|
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 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
|
356 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
|
357 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
|
358 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
|
359 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
|
360 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
|
361 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
|
362 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
|
363 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
364 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
365 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
|
366 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
|
367 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
|
368 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
|
369 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
|
370 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
|
371 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
|
372 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
|
373 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
|
374 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
|
375 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
|
376 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
|
377 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
|
378 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
|
379 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
|
380 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
|
381 |
12684
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
382 let g:a = '' |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
383 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
|
384 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
|
385 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
|
386 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
|
387 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
388 " %%: a percent sign. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
389 set statusline=10%% |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
390 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
|
391 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
392 " %!: 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
|
393 set statusline=%!2*3+1 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
394 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
|
395 |
16740
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
396 func GetNested() |
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(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
|
398 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
|
399 return 'nested' |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
400 endfunc |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
401 func GetStatusLine() |
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_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
|
403 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
|
404 endfunc |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
405 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
|
406 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
|
407 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
|
408 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
|
409 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
|
410 delfunc GetNested |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
411 delfunc GetStatusLine |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
412 |
22721
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
413 " 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
|
414 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
|
415 redrawstatus |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
416 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
|
417 endfunc |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
418 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
|
419 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
|
420 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
|
421 endfor |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
422 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
|
423 redrawstatus |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
424 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
|
425 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
|
426 |
92a100fc5e17
patch 8.2.1909: number of status line items is limited to 80
Bram Moolenaar <Bram@vim.org>
parents:
22464
diff
changeset
|
427 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
428 " 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
|
429 " with the 'fillchars' option. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
430 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
|
431 vsplit |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
432 set statusline=x%=y |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
433 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
|
434 set fillchars& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
435 close |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
436 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
437 %bw! |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
438 call delete('Xstatusline') |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
439 set statusline& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
440 set splitbelow& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
441 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
|
442 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
443 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
|
444 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
|
445 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
|
446 endfunc |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
447 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
|
448 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
|
449 " 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
|
450 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
|
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 " 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
|
453 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
|
454 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
|
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 " 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
|
457 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
|
458 redraw |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
459 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
460 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
|
461 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
|
462 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
|
463 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
|
464 |
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 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
|
466 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
|
467 |
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 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
|
469 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
|
470 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
|
471 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
|
472 END |
30769
ae10b91ac6b3
patch 9.0.0719: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
29434
diff
changeset
|
473 call writefile(lines, 'XTest_statusline', 'D') |
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
|
474 |
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 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
|
476 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
|
477 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
478 " 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
|
479 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
|
480 endfunc |
21004
0650d220f742
patch 8.2.1053: insufficient testing for 'statusline' and 'tabline'
Bram Moolenaar <Bram@vim.org>
parents:
20984
diff
changeset
|
481 |
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
|
482 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
|
483 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
|
484 |
93b401236991
patch 8.2.2686: status line is not updated when going to cmdline mode
Bram Moolenaar <Bram@vim.org>
parents:
24055
diff
changeset
|
485 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
|
486 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
|
487 split |
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
488 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
|
489 END |
30769
ae10b91ac6b3
patch 9.0.0719: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
29434
diff
changeset
|
490 call writefile(lines, 'XTest_statusline', 'D') |
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
|
491 |
24394
5858745d393a
patch 8.2.2737: status line not updated when local 'statusline' option set
Bram Moolenaar <Bram@vim.org>
parents:
24291
diff
changeset
|
492 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
|
493 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
|
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 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
|
496 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
|
497 |
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 " 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
|
499 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
|
500 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
|
501 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
|
502 |
22464
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
503 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
|
504 only |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
505 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
506 " 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
|
507 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
|
508 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
509 split | redraw |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
510 vsplit | redraw |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
511 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
512 " 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
|
513 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
|
514 |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
515 only |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
516 set ls& stl& |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
517 endfunc |
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
518 |
24055
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
519 " 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
|
520 " 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
|
521 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
|
522 only |
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 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
|
524 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
|
525 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
|
526 vnew |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
527 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
|
528 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
|
529 call assert_match('^a\+═\+b═a\+━\+b$', s:get_statusline()) |
29434
5da38c4ffe92
patch 9.0.0059: test file has wrong name
Bram Moolenaar <Bram@vim.org>
parents:
28811
diff
changeset
|
530 set statusline& fillchars& |
24055
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
531 %bw! |
90d1636a8fcb
patch 8.2.2569: 'fillchars' "stl" and "stlnc" items must be single byte
Bram Moolenaar <Bram@vim.org>
parents:
22721
diff
changeset
|
532 endfunc |
22464
b74bdd85bb26
patch 8.2.1780: statusline not updated when splitting windows
Bram Moolenaar <Bram@vim.org>
parents:
21004
diff
changeset
|
533 |
25907
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
534 " 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
|
535 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
|
536 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
|
537 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
|
538 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
|
539 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
|
540 redraw |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
541 bwipe! |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
542 endfunc |
637588377056
patch 8.2.3487: illegal memory access if buffer name is very long
Bram Moolenaar <Bram@vim.org>
parents:
24630
diff
changeset
|
543 |
28811
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
544 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
|
545 CheckScreendump |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
546 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
547 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
|
548 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
|
549 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
|
550 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
|
551 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
|
552 END |
30769
ae10b91ac6b3
patch 9.0.0719: too many delete() calls in tests
Bram Moolenaar <Bram@vim.org>
parents:
29434
diff
changeset
|
553 call writefile(lines, 'XTest_statusline', 'D') |
28811
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
554 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
555 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
|
556 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
|
557 |
bd5b6ac5998f
patch 8.2.4929: off-by-one error in in statusline item
Bram Moolenaar <Bram@vim.org>
parents:
28171
diff
changeset
|
558 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
|
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 |