2019-07-22 03:25:07 -07:00
|
|
|
|
|
|
|
source shared.vim
|
|
|
|
|
|
|
|
func TablineWithCaughtError()
|
2016-11-26 16:17:39 -07:00
|
|
|
let s:func_in_tabline_called = 1
|
|
|
|
try
|
|
|
|
call eval('unknown expression')
|
|
|
|
catch
|
|
|
|
endtry
|
|
|
|
return ''
|
2019-07-22 03:25:07 -07:00
|
|
|
endfunc
|
2016-11-26 16:17:39 -07:00
|
|
|
|
2019-07-22 03:25:07 -07:00
|
|
|
func TablineWithError()
|
2016-11-26 16:17:39 -07:00
|
|
|
let s:func_in_tabline_called = 1
|
|
|
|
call eval('unknown expression')
|
|
|
|
return ''
|
2019-07-22 03:25:07 -07:00
|
|
|
endfunc
|
2016-11-26 16:17:39 -07:00
|
|
|
|
2019-07-22 03:25:07 -07:00
|
|
|
func Test_caught_error_in_tabline()
|
2016-11-26 16:17:39 -07:00
|
|
|
let showtabline_save = &showtabline
|
|
|
|
set showtabline=2
|
|
|
|
let s:func_in_tabline_called = 0
|
|
|
|
let tabline = '%{TablineWithCaughtError()}'
|
|
|
|
let &tabline = tabline
|
|
|
|
redraw!
|
|
|
|
call assert_true(s:func_in_tabline_called)
|
|
|
|
call assert_equal(tabline, &tabline)
|
|
|
|
set tabline=
|
|
|
|
let &showtabline = showtabline_save
|
2019-07-22 03:25:07 -07:00
|
|
|
endfunc
|
2016-11-26 16:17:39 -07:00
|
|
|
|
2019-07-22 03:25:07 -07:00
|
|
|
func Test_tabline_will_be_disabled_with_error()
|
2016-11-26 16:17:39 -07:00
|
|
|
let showtabline_save = &showtabline
|
|
|
|
set showtabline=2
|
|
|
|
let s:func_in_tabline_called = 0
|
|
|
|
let tabline = '%{TablineWithError()}'
|
|
|
|
try
|
|
|
|
let &tabline = tabline
|
|
|
|
redraw!
|
|
|
|
catch
|
|
|
|
endtry
|
|
|
|
call assert_true(s:func_in_tabline_called)
|
|
|
|
call assert_equal('', &tabline)
|
|
|
|
set tabline=
|
|
|
|
let &showtabline = showtabline_save
|
2019-07-22 03:25:07 -07:00
|
|
|
endfunc
|
|
|
|
|
|
|
|
func Test_redrawtabline()
|
|
|
|
if has('gui')
|
|
|
|
set guioptions-=e
|
|
|
|
endif
|
|
|
|
let showtabline_save = &showtabline
|
|
|
|
set showtabline=2
|
|
|
|
set tabline=%{bufnr('$')}
|
|
|
|
edit Xtabline1
|
|
|
|
edit Xtabline2
|
|
|
|
redraw
|
|
|
|
call assert_match(bufnr('$') . '', Screenline(1))
|
|
|
|
au BufAdd * redrawtabline
|
|
|
|
badd Xtabline3
|
|
|
|
call assert_match(bufnr('$') . '', Screenline(1))
|
|
|
|
|
|
|
|
set tabline=
|
|
|
|
let &showtabline = showtabline_save
|
|
|
|
au! Bufadd
|
|
|
|
endfunc
|