Mercurial > vim
comparison src/testdir/test_statusline.vim @ 12660:ac6e56d8950e v8.0.1208
patch 8.0.1208: 'statusline' drops empty group with highlight change
commit https://github.com/vim/vim/commit/6b89dbb55f84c485310c8c9e094dbafe3ecbace6
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Oct 22 14:22:16 2017 +0200
patch 8.0.1208: 'statusline' drops empty group with highlight change
Problem: 'statusline' drops empty group with highlight change.
Solution: Do not drop an empty group if it changes highlighting. (Marius
Gedminas, closes #2228)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 22 Oct 2017 14:30:06 +0200 |
parents | 14b6b79d685b |
children | 185f8dbdcf26 |
comparison
equal
deleted
inserted
replaced
12659:561e4166fbf1 | 12660:ac6e56d8950e |
---|---|
3 " Not tested yet: | 3 " Not tested yet: |
4 " %a | 4 " %a |
5 " %N | 5 " %N |
6 " %T | 6 " %T |
7 " %X | 7 " %X |
8 " %* | |
9 | 8 |
10 source view_util.vim | 9 source view_util.vim |
11 | 10 |
12 func s:get_statusline() | 11 func s:get_statusline() |
13 return ScreenLines(&lines - 1, &columns)[0] | 12 return ScreenLines(&lines - 1, &columns)[0] |
247 let sa2=screenattr(&lines - 1, 2) | 246 let sa2=screenattr(&lines - 1, 2) |
248 let sa3=screenattr(&lines - 1, 3) | 247 let sa3=screenattr(&lines - 1, 3) |
249 call assert_equal(sa1, sa3) | 248 call assert_equal(sa1, sa3) |
250 call assert_notequal(sa1, sa2) | 249 call assert_notequal(sa1, sa2) |
251 | 250 |
251 " An empty group that contains highlight changes | |
252 let g:a = '' | |
253 set statusline=ab%(cd%1*%{g:a}%*%)de | |
254 call assert_match('^abde\s*$', s:get_statusline()) | |
255 let sa1=screenattr(&lines - 1, 1) | |
256 let sa2=screenattr(&lines - 1, 4) | |
257 call assert_equal(sa1, sa2) | |
258 let g:a = 'X' | |
259 call assert_match('^abcdXde\s*$', s:get_statusline()) | |
260 let sa1=screenattr(&lines - 1, 1) | |
261 let sa2=screenattr(&lines - 1, 5) | |
262 let sa3=screenattr(&lines - 1, 7) | |
263 call assert_equal(sa1, sa3) | |
264 call assert_notequal(sa1, sa2) | |
265 | |
266 let g:a = '' | |
267 set statusline=ab%1*%(cd%*%{g:a}%1*%)de | |
268 call assert_match('^abde\s*$', s:get_statusline()) | |
269 let sa1=screenattr(&lines - 1, 1) | |
270 let sa2=screenattr(&lines - 1, 4) | |
271 call assert_notequal(sa1, sa2) | |
272 let g:a = 'X' | |
273 call assert_match('^abcdXde\s*$', s:get_statusline()) | |
274 let sa1=screenattr(&lines - 1, 1) | |
275 let sa2=screenattr(&lines - 1, 3) | |
276 let sa3=screenattr(&lines - 1, 5) | |
277 let sa4=screenattr(&lines - 1, 7) | |
278 call assert_notequal(sa1, sa2) | |
279 call assert_equal(sa1, sa3) | |
280 call assert_equal(sa2, sa4) | |
281 | |
282 " An empty group that contains highlight changes and doesn't reset them | |
283 let g:a = '' | |
284 set statusline=ab%(cd%1*%{g:a}%)de | |
285 call assert_match('^abcdde\s*$', s:get_statusline()) | |
286 let sa1=screenattr(&lines - 1, 1) | |
287 let sa2=screenattr(&lines - 1, 5) | |
288 call assert_notequal(sa1, sa2) | |
289 let g:a = 'X' | |
290 call assert_match('^abcdXde\s*$', s:get_statusline()) | |
291 let sa1=screenattr(&lines - 1, 1) | |
292 let sa2=screenattr(&lines - 1, 5) | |
293 let sa3=screenattr(&lines - 1, 7) | |
294 call assert_notequal(sa1, sa2) | |
295 call assert_equal(sa2, sa3) | |
296 | |
297 let g:a = '' | |
298 set statusline=ab%1*%(cd%*%{g:a}%)de | |
299 call assert_match('^abcdde\s*$', s:get_statusline()) | |
300 let sa1=screenattr(&lines - 1, 1) | |
301 let sa2=screenattr(&lines - 1, 3) | |
302 let sa3=screenattr(&lines - 1, 5) | |
303 call assert_notequal(sa1, sa2) | |
304 call assert_equal(sa1, sa3) | |
305 let g:a = 'X' | |
306 call assert_match('^abcdXde\s*$', s:get_statusline()) | |
307 let sa1=screenattr(&lines - 1, 1) | |
308 let sa2=screenattr(&lines - 1, 3) | |
309 let sa3=screenattr(&lines - 1, 5) | |
310 let sa4=screenattr(&lines - 1, 7) | |
311 call assert_notequal(sa1, sa2) | |
312 call assert_equal(sa1, sa3) | |
313 call assert_equal(sa1, sa4) | |
314 | |
252 " %%: a percent sign. | 315 " %%: a percent sign. |
253 set statusline=10%% | 316 set statusline=10%% |
254 call assert_match('^10%\s*$', s:get_statusline()) | 317 call assert_match('^10%\s*$', s:get_statusline()) |
255 | 318 |
256 " %!: evaluated expression is used as the option value | 319 " %!: evaluated expression is used as the option value |