vim-unite-vcs に機能追加など
導入
先日、vim-unite-vcs という vim プラグインを作成した。 が、いろいろと気に入らない部分や未実装の部分があったので追加・修正。 使い方が変わってしまった部分もあるので、その説明を書く。
本題
前回までの vim-unite-vcs にはいくつか問題があったので治したり機能追加したりした。
changeset source を追加
前のバージョンでは diff action が log kind に定義されている問題があった、 これだと何が問題かというと、各種 vcs の log ってチェンジセット毎に作られるものなので、 一概に diff を閲覧するということができない。 実際は log -> changeset -> 変更ファイルを diff という流れになるべき。
windows での commit に対応
何故 windows で commit できなかったかを説明するのは語彙力が足りないので割愛するが、 前のバージョンでは windows で commit できなかった。
今回は、windows での commit に対応するために、 commit を実行すると、vim で新しいタブを開いてコミットメッセージを記述できるようにした。 基本的にいい感じに動いているが、実際に windows 端末持ってないので確認できてない(意味無)
今後つける予定の機能
vcs#info
実は元々、あの有名な thinca さん作の vim-vcs というプラグインがあって、 vim-unite-vcs を作成する上でかなり参考にさせてもらっている。 vim-vcs には、info という便利機能があって vim-unite-vcs にもこれを搭載したいなと考えている。
vcs source
今 vim-unite-vcs にある unite-source は以下の通り
- status
- log
- changeset
- file_rec
今後はここに branch ソースなどを追加したい。 でも branch 操作って基本的に svn ではできないことなので、 vcs source を作って、対応している場合のみ branch source が列挙されるようにしたい。
※ 要するに、指定された vcs-type で利用可能な unite-source を列挙するものを作りたい。
終わりに
vim-unite-vcs は仕事でも使っているし、力を入れて開発していくつもり。 だが、vim script の闇に対する知識が不足しすぎていていろいろ不具合がありそう。 (少なくとも自分の環境だと動いてるけど windows 対応方法が全くわからん)
なんか問題があったり「こういう挙動がいいんだが・・・」って人は github に issue でも pull req でもどんどん投げてもらえると非常に助かります!