Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 1 | |
| 2 | source shared.vim |
| 3 | |
| 4 | func TablineWithCaughtError() |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 5 | let s:func_in_tabline_called = 1 |
| 6 | try |
| 7 | call eval('unknown expression') |
| 8 | catch |
| 9 | endtry |
| 10 | return '' |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 11 | endfunc |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 12 | |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 13 | func TablineWithError() |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 14 | let s:func_in_tabline_called = 1 |
| 15 | call eval('unknown expression') |
| 16 | return '' |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 17 | endfunc |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 18 | |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 19 | func Test_caught_error_in_tabline() |
Bram Moolenaar | 73cd8fb | 2016-04-11 22:49:03 +0200 | [diff] [blame] | 20 | if has('gui') |
| 21 | set guioptions-=e |
| 22 | endif |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 23 | let showtabline_save = &showtabline |
| 24 | set showtabline=2 |
| 25 | let s:func_in_tabline_called = 0 |
| 26 | let tabline = '%{TablineWithCaughtError()}' |
| 27 | let &tabline = tabline |
| 28 | redraw! |
| 29 | call assert_true(s:func_in_tabline_called) |
| 30 | call assert_equal(tabline, &tabline) |
| 31 | set tabline= |
| 32 | let &showtabline = showtabline_save |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 33 | endfunc |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 34 | |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 35 | func Test_tabline_will_be_disabled_with_error() |
Bram Moolenaar | 73cd8fb | 2016-04-11 22:49:03 +0200 | [diff] [blame] | 36 | if has('gui') |
| 37 | set guioptions-=e |
| 38 | endif |
Bram Moolenaar | f73d3bc | 2016-04-11 21:55:15 +0200 | [diff] [blame] | 39 | let showtabline_save = &showtabline |
| 40 | set showtabline=2 |
| 41 | let s:func_in_tabline_called = 0 |
| 42 | let tabline = '%{TablineWithError()}' |
| 43 | try |
| 44 | let &tabline = tabline |
| 45 | redraw! |
| 46 | catch |
| 47 | endtry |
| 48 | call assert_true(s:func_in_tabline_called) |
| 49 | call assert_equal('', &tabline) |
| 50 | set tabline= |
| 51 | let &showtabline = showtabline_save |
Bram Moolenaar | e12bab3 | 2019-01-08 22:02:56 +0100 | [diff] [blame] | 52 | endfunc |
| 53 | |
| 54 | func Test_redrawtabline() |
| 55 | if has('gui') |
| 56 | set guioptions-=e |
| 57 | endif |
| 58 | let showtabline_save = &showtabline |
| 59 | set showtabline=2 |
| 60 | set tabline=%{bufnr('$')} |
| 61 | edit Xtabline1 |
| 62 | edit Xtabline2 |
| 63 | redraw |
| 64 | call assert_match(bufnr('$') . '', Screenline(1)) |
| 65 | au BufAdd * redrawtabline |
| 66 | badd Xtabline3 |
| 67 | call assert_match(bufnr('$') . '', Screenline(1)) |
| 68 | |
| 69 | set tabline= |
| 70 | let &showtabline = showtabline_save |
| 71 | au! Bufadd |
| 72 | endfunc |