mirror of
https://github.com/neovim/neovim.git
synced 2026-08-21 23:01:04 +00:00
Problem: When using try/catch in 'tabline' it is still considered an
error and the tabline will be disabled.
Solution: Check did_emsg instead of called_emsg. (haya14busa, closes #746)
f73d3bc253
44 lines
1.0 KiB
VimL
44 lines
1.0 KiB
VimL
function! TablineWithCaughtError()
|
|
let s:func_in_tabline_called = 1
|
|
try
|
|
call eval('unknown expression')
|
|
catch
|
|
endtry
|
|
return ''
|
|
endfunction
|
|
|
|
function! TablineWithError()
|
|
let s:func_in_tabline_called = 1
|
|
call eval('unknown expression')
|
|
return ''
|
|
endfunction
|
|
|
|
function! Test_caught_error_in_tabline()
|
|
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
|
|
endfunction
|
|
|
|
function! Test_tabline_will_be_disabled_with_error()
|
|
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
|
|
endfunction
|