質問・報告の内容
statuslineの%{}などでevalした際に,try-catch でエラーをキャッチしていても statusline が disable されてしまう
(キャッチされないエラーが発生したらstatuslineがdisableされるのは正しい)
再現方法
statusline_test.vimrc
set nocompatible
function! StatuslineKiller() abort
try
" :throw ではなく Vim のエラー(任意)を発生させる
call eval('')
catch
return 'OK: error catched!'
endtry
return 'OK'
endfunction
set laststatus=2
set statusline=%{StatuslineKiller()}
vim -u statusline_test.vimrc -i NONE -N
- 'OK: error catched!' がstatuslineに表示される (actual & expected)
:redrawstatus
" Press ENTER or type command to continue が表示 (actual & expected)
- Enter を押す
- statusline が disable される (
&statusline == '')
Expected な挙動
vim -u statusline_test.vimrc -i NONE -N
- 'OK: error catched!' がstatuslineに表示される
:redrawstatus
- 'OK: error catched!' がstatuslineに表示される
関連問題
actual: statuslineでVimのエラーが発生し,キャッチもされないと, silentlyにstatuslineがdisableされる
個人的な? expected: statuslineでVimのエラーが発生すると,エラーメッセージを表示した上でstatuslineがdisableされる
補足: statuslineがdisableされるのはstatuslineのredrawが起こるごとにエラーが出るとうっとおしいからdisableしているようです.
修正パッチ案
haya14busa/vim@0cd2c2f
ちょっと詳しくなくて付け焼き刃の調査をしながらの修正です.
なのでこれでいいのかよくわかりませんが,僕が意図した挙動になりました.
Vimのバージョン
7.4.1386
OSの種類
どのOSでも再現するはず
その他
両者ともログ長いし読む必要はないですが,上記issueで問題が発覚し,silentlyにstatuslineがdisableされるせいで異常にデバッグが難しかったです.
問題や該当コードを見つけたのは @lambdalisue さんや watiko さんです.
cc @lambdalisue
質問・報告の内容
statuslineの%{}などでevalした際に,try-catch でエラーをキャッチしていても statusline が disable されてしまう
(キャッチされないエラーが発生したらstatuslineがdisableされるのは正しい)
再現方法
statusline_test.vimrc
vim -u statusline_test.vimrc -i NONE -N:redrawstatus" Press ENTER or type command to continueが表示 (actual & expected)&statusline == '')Expected な挙動
vim -u statusline_test.vimrc -i NONE -N:redrawstatus関連問題actual: statuslineでVimのエラーが発生し,キャッチもされないと, silentlyにstatuslineがdisableされる個人的な? expected: statuslineでVimのエラーが発生すると,エラーメッセージを表示した上でstatuslineがdisableされる補足: statuslineがdisableされるのはstatuslineのredrawが起こるごとにエラーが出るとうっとおしいからdisableしているようです.
修正パッチ案
haya14busa/vim@0cd2c2f
ちょっと詳しくなくて付け焼き刃の調査をしながらの修正です.
なのでこれでいいのかよくわかりませんが,僕が意図した挙動になりました.
Vimのバージョン
7.4.1386
OSの種類
どのOSでも再現するはず
その他
両者ともログ長いし読む必要はないですが,上記issueで問題が発覚し,silentlyにstatuslineがdisableされるせいで異常にデバッグが難しかったです.
問題や該当コードを見つけたのは @lambdalisue さんや watiko さんです.
cc @lambdalisue