GW、ちょうど時間があったのでvim pluginのhello worldをしてみました。
vim pluginの作成に関するドキュメントは充実している感覚でしたが、test周りだったりci周りなどどうするのが良さそうかあまりわからなかったので、自分なりにやったことをまとめます。
この記事で書くこと
vim plugin作成周りは以下の記事が凄く参考になるので、そちらを参照してください。
https://qiita.com/Sa2Knight/items/6b26d35af571c239da31
https://qiita.com/bonjin6770@github/items/31e60707ecf2ad6c4496
今回はplugin作成後のtestだったりdocだったりの話を書きます。
サンプルプロジェクト
足し算をするだけの関数を用意したpluginをサンプルとして作りました。
READMEに利用方法が書いています。
keymapなどは特に変更していないので、autoloadファイルのみ見ればOKです。
autoloadファイルに、one_plus_one#plus
という関数を作っています。
今回はこれを対象にテストしたり、ciを回します。
testを書いて実行する
今回はtestディレクトリ配下にtestファイルを配置しています。
今回はtest frameworkとして、vim-themisを利用しています。
他にもvspecなどがあると思います。
僕はrspecを書く機会があるので、個人的にvspecが好みだったりします。
実行方法はhelpに書かれている通り、bin/themisをPATHを通して実行できるようにします。
ciでは雑にcloneしてきてtestを実行するので、今回はlocalでもそのようにtestを実行します。
※間違えてcommitしたくないので、.gitignoreの設定は忘れずに
Makefileを設定する
test frameworkをcloneしてきて、testを実行するフローをMakefileを用いて行います。
ciではこれを呼ぶようにします。
ciの設定
今回はgithub actionsを利用します。
make allで、cloneとtest実行を行います。
これでspecが通ることが確認できればOKです。
余談ですが、test framework側でテストが落ちたら、終了ステータスを変更してくれるのでciは自動的に落ちてくれます(便利)
docを書く
基本的に有名なリポジトリのdocを拝借すれば良さそうです。
今回は、easymotion/vim-easymotionのdocなどを参考しました。
これでplugin managerでinstallするとhelpも見れるのでよりpluginを利用しやくすなります。
終わりに
test, docを書くことでよりpluginの開発、利用が便利になるので、是非書くべきだと思います。
僕もこれから何かしらpluginを作る時はtestなど書いていこうと思います。
そして今回の諸々の情報を元に自分用のテンプレを作りました。
これからvim pluginを作りたいってなった時に利用したいなと思います。