Mercurial > vim
annotate src/testdir/test_statusline.vim @ 20703:ce55e65d7e41 v8.2.0905
patch 8.2.0905: test coverage could be better
Commit: https://github.com/vim/vim/commit/e0c3c3d6cbb6f356058f28ecbdf3438411222083
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jun 4 22:46:04 2020 +0200
patch 8.2.0905: test coverage could be better
Problem: Test coverage could be better.
Solution: Add a couple of tests. (Dominique Pelle, closes https://github.com/vim/vim/issues/6202)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 04 Jun 2020 23:00:03 +0200 |
parents | c087099e9163 |
children | fe06ee7d3511 |
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 " %a |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
5 " %N |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
6 " %T |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
7 " %X |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
8 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
9 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
|
10 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
|
11 source screendump.vim |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
12 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
13 func s:get_statusline() |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
14 return ScreenLines(&lines - 1, &columns)[0] |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
15 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
16 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
17 func StatuslineWithCaughtError() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
18 let s:func_in_statusline_called = 1 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
19 try |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
20 call eval('unknown expression') |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
21 catch |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
22 endtry |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
23 return '' |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
24 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
25 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
26 func StatuslineWithError() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
27 let s:func_in_statusline_called = 1 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
28 call eval('unknown expression') |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
29 return '' |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
30 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
31 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
32 " Function used to display syntax group. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
33 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
|
34 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
|
35 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
|
36 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
|
37 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
38 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
39 func Test_caught_error_in_statusline() |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 let s:func_in_statusline_called = 0 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 set laststatus=2 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 let statusline = '%{StatuslineWithCaughtError()}' |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 let &statusline = statusline |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 redrawstatus |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
45 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
|
46 call assert_equal(statusline, &statusline) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 set statusline= |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
48 endfunc |
8847
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
49 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
50 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
|
51 let s:func_in_statusline_called = 0 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
52 set laststatus=2 |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
53 let statusline = '%{StatuslineWithError()}' |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
54 try |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 let &statusline = statusline |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
56 redrawstatus |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
57 catch |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
58 endtry |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 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
|
60 call assert_equal('', &statusline) |
470ea7526cc6
commit https://github.com/vim/vim/commit/a742e084b677f76c67e9e52c4f9fb9ab24002e20
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 set statusline= |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
62 endfunc |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
63 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
64 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
|
65 CheckFeature quickfix |
068337e86133
patch 8.1.2373: cannot build with +popupwin but without +quickfix
Bram Moolenaar <Bram@vim.org>
parents:
18746
diff
changeset
|
66 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
67 new Xstatusline |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
68 only |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
69 set laststatus=2 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
70 set splitbelow |
16332
97e15f5b0082
patch 8.1.1171: statusline test could fail in large terminal
Bram Moolenaar <Bram@vim.org>
parents:
12684
diff
changeset
|
71 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
|
72 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
73 " %b: Value of character under cursor. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
74 " %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
|
75 call cursor(9000, 1) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
76 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
|
77 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
|
78 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
79 " %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
|
80 " %O: As above, in hexadecimal. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
81 set statusline=%o,%O |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
82 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
|
83 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
|
84 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
|
85 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
|
86 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
|
87 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
|
88 set fileformat& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
89 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
90 " %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
|
91 set statusline=%f |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
92 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
|
93 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
94 " %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
|
95 set statusline=%F |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
96 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
|
97 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
98 " %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
|
99 " %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
|
100 set statusline=%h,%H |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
101 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
|
102 help |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
103 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
|
104 helpclose |
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 " %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
|
107 " 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
|
108 set statusline=%k |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
109 if has('keymap') |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
110 set keymap=esperanto |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
111 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
|
112 set keymap& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
113 else |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
114 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
|
115 endif |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
116 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
117 " %l: Line number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
118 " %L: Number of line in buffer. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
119 " %c: Column number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
120 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
|
121 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
|
122 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
123 " %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
|
124 " %M: Modified flag, text is ",+" or ",-". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
125 set statusline=%m%M |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
126 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
|
127 set nomodifiable |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
128 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
|
129 write |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
130 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
|
131 set modifiable& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
132 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
|
133 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
134 " %n: Buffer number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
135 set statusline=%n |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
136 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
|
137 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
138 " %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
|
139 " %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
|
140 set statusline=%p,%P |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
141 0 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
142 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
|
143 norm G |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
144 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
|
145 9000 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
146 " 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
|
147 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
|
148 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
149 " %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
|
150 set statusline=%q |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
151 call assert_match('^\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
152 copen |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
153 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
|
154 cclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
155 lexpr getline(1, 2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
156 lopen |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
157 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
|
158 lclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
159 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
160 " %r: Readonly flag, text is "[RO]". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
161 " %R: Readonly flag, text is ",RO". |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
162 set statusline=%r,%R |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
163 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
|
164 help |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
165 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
|
166 helpclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
167 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
168 " %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
|
169 set statusline=%t |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
170 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
|
171 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
172 " %v: Virtual column number. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
173 " %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
|
174 call cursor(9000, 2) |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
175 set statusline=%v,%V |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
176 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
|
177 set virtualedit=all |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
178 norm 10| |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
179 call assert_match('^10,-10\s*$', s:get_statusline()) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
180 set virtualedit& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
181 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
182 " %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
|
183 " %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
|
184 set statusline=%w%W |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
185 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
|
186 pedit |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
187 wincmd j |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
188 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
|
189 pclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
190 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
191 " %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
|
192 " %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
|
193 set statusline=%y\ %Y |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
194 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
|
195 setfiletype vim |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
196 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
|
197 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
198 " %=: 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
|
199 set statusline=foo%=bar |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
200 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
|
201 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
202 " 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
|
203 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
|
204 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
|
205 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
|
206 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
|
207 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
|
208 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
|
209 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
|
210 set statusline=%.6f |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
211 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
|
212 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
213 " %<: 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
|
214 " 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
|
215 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
|
216 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
|
217 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
|
218 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
|
219 " 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
|
220 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
|
221 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
|
222 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
|
223 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
|
224 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
225 "%{: 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
|
226 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
|
227 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
|
228 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
|
229 set statusline=%{SyntaxItem()} |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
230 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
|
231 s/^/"/ |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
232 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
|
233 syntax off |
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 "%(: Start of item group. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
236 set statusline=ab%(cd%q%)de |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
237 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
|
238 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
|
239 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
|
240 cclose |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
241 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
242 " %#: 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
|
243 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
|
244 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
|
245 let sa1=screenattr(&lines - 1, 1) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
246 let sa2=screenattr(&lines - 1, 3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
247 let sa3=screenattr(&lines - 1, 5) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
248 call assert_notequal(sa1, sa2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
249 call assert_notequal(sa1, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
250 call assert_notequal(sa2, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
251 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
|
252 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
|
253 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
|
254 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
|
255 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
256 " %*: Set highlight group to User{N} |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
257 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
|
258 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
|
259 let sa1=screenattr(&lines - 1, 1) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
260 let sa2=screenattr(&lines - 1, 2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
261 let sa3=screenattr(&lines - 1, 3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
262 call assert_equal(sa1, sa3) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
263 call assert_notequal(sa1, sa2) |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
264 |
12660
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
265 " 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
|
266 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
267 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
|
268 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
|
269 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
|
270 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
|
271 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
|
272 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
|
273 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
|
274 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
|
275 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
|
276 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
|
277 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
|
278 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
|
279 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
280 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
281 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
|
282 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
|
283 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
|
284 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
|
285 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
|
286 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
|
287 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
|
288 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
|
289 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
|
290 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
|
291 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
|
292 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
|
293 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
|
294 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
|
295 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
296 " 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
|
297 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
298 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
|
299 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
|
300 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
|
301 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
|
302 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
|
303 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
|
304 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
|
305 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
|
306 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
|
307 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
|
308 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
|
309 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
|
310 |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
311 let g:a = '' |
ac6e56d8950e
patch 8.0.1208: 'statusline' drops empty group with highlight change
Christian Brabandt <cb@256bit.org>
parents:
11525
diff
changeset
|
312 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
|
313 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
|
314 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
|
315 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
|
316 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
|
317 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
|
318 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
|
319 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
|
320 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
|
321 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
|
322 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
|
323 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
|
324 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
|
325 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
|
326 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
|
327 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
|
328 |
12684
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
329 let g:a = '' |
185f8dbdcf26
patch 8.0.1220: skipping empty statusline groups is not correct
Christian Brabandt <cb@256bit.org>
parents:
12660
diff
changeset
|
330 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
|
331 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
|
332 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
|
333 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
|
334 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
335 " %%: a percent sign. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
336 set statusline=10%% |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
337 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
|
338 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
339 " %!: 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
|
340 set statusline=%!2*3+1 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
341 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
|
342 |
16740
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
343 func GetNested() |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
344 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
|
345 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
|
346 return 'nested' |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
347 endfunc |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
348 func GetStatusLine() |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
349 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
|
350 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
|
351 endfunc |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
352 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
|
353 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
|
354 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
|
355 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
|
356 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
|
357 delfunc GetNested |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
358 delfunc GetStatusLine |
dc85d49349f7
patch 8.1.1372: when evaluating 'statusline' the current window is unknown
Bram Moolenaar <Bram@vim.org>
parents:
16332
diff
changeset
|
359 |
11075
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
360 " 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
|
361 " with the 'fillchars' option. |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
362 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
|
363 vsplit |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
364 set statusline=x%=y |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
365 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
|
366 set fillchars& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
367 close |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
368 |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
369 %bw! |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
370 call delete('Xstatusline') |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
371 set statusline& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
372 set laststatus& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
373 set splitbelow& |
a8be0c7169b1
patch 8.0.0426: insufficient testing for statusline
Christian Brabandt <cb@256bit.org>
parents:
8847
diff
changeset
|
374 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
|
375 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
376 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
|
377 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
|
378 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
|
379 endfunc |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
380 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
|
381 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
|
382 " 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
|
383 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
|
384 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
385 " 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
|
386 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
|
387 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
|
388 $ |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
389 " 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
|
390 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
|
391 redraw |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
392 |
64eea864dff6
patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
16740
diff
changeset
|
393 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
|
394 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
|
395 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
|
396 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
|
397 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
398 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
|
399 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
|
400 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
401 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
|
402 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
|
403 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
|
404 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
|
405 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
|
406 call writefile(lines, 'XTest_statusline') |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
407 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
408 let buf = RunVimInTerminal('-S XTest_statusline', {'rows': 10, 'cols': 50}) |
19954
c087099e9163
patch 8.2.0533: tests using term_wait() can still be flaky
Bram Moolenaar <Bram@vim.org>
parents:
19354
diff
changeset
|
409 call TermWait(buf, 50) |
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
|
410 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
|
411 |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
412 " 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
|
413 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
|
414 call delete('XTest_statusline') |
1d3b2ce65ae0
patch 8.2.0235: draw error when an empty group is removed from 'statusline'
Bram Moolenaar <Bram@vim.org>
parents:
18767
diff
changeset
|
415 endfunc |