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 でもどんどん投げてもらえると非常に助かります!