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