vim-themis, vim-owlを使えるようにした
vim scriptのテストを書きたいと思ったので、テストフレームワークを用意した。
vim-themisとvim-owlの2つを用意。github.com
github.com
vim-themisはvimspecの記述が気に入っている。
けれども、自分の知識が無いためだろうけどスクリプトローカルな関数を
テストすることがvim-themisでは出来ないような感じだったので
スクリプトローカルな関数をテストするためにvim-owlも用意した。
vim-owlを用意して最初のテストを通す際に詰まったことがあったので
備忘録として記述しておく。
テスト関数にabortを付けない
自分の癖で関数にはよくabortをつけるのだけれど、vim-owlのテスト関数にabortをつけると
Error detected while processing function owl#run: Vim(call):E488: Trailing characters
といったエラーが出てくる。といってもテストはちゃんとしてくれてる。
まぁ、エラーは鬱陶しいのでテスト関数にはabortを付けないようにする。
テストする前にスクリプトローカルな関数を定義しているファイルをsourceしておく。
非常に当たり前のことだったが、これに気づくのに2時間くらいかかった。
自分の中で勝手に
let owl_SID = owl#filename_to_SID("file/to/path/hoge.vim")
とすると、そのhoge.vimをsourceしてくれると勘違いしていた。
実際には、:scriptnamesのリストの中から"file/to/path/hoge.vim"に一致するものを探して
そのSIDを取っている感じだった。
事前に"hoge.vim"をsourceしておかないと:scriptnamesの中には現れないので
owl#filename_to_SID()は0を返してくるのでスクリプトローカルな関数を呼んでも
エラーになるので注意。