quickrun.vim 0.6.0 リリース予告

現在 quickrun.vim 0.6.0 を v0.6.0dev ブランチで開発中です。やりたいことはだいたいできたっぽいので、そろそろ master に merge しようかと考えてます。
で、0.6.0 ではいくつか非互換の変更があるので、周知も兼ねて新機能と一緒に紹介してみることにします。
ちなみにあまり設定をしていない人にはあまり変わらない変更が多いです。

hook 機能の追加

hook 機能を追加しました。いくつかのポイントにおいて、任意の Vim script を実行できます。(:help quickrun-hook)
これにより、コア機能のうちいくつかを hook として再実装しました。オプションの与え方が変わっているので注意が必要です。

  • output_encode
    • => hook/output_encode/encoding
  • shebang
  • eval/eval_template
    • => hook/eval/enable
    • => hook/eval/template

他にも以下の hook が標準で利用できます。詳しくは :help quickrun-module-hook を参照。

  • cd
    • カレントディレクトリを移動して実行
  • sweep
    • 不要な一時ファイルを終了時に削除する
  • time
    • 実行時間を計測して出力の最後に出す

思い付いたら随時追加予定。

モジュール管理の構成の変更

runner, outputter, hook の管理を autoload/quickrun/module.vim に移動しました。
以前は autoload/quickrun.vim にあったのですが、これがロードされると同時に本体付属のモジュール群もすべてロードされるので、vimrc から独自のモジュールを追加すると重くなってしまう問題がありました。
今回の変更は、この読み込み時間の改善と、機能を分離して見通しを良くするのが主な目的です。

outputter/buffer にオプションを追加

name オプションと filetype オプションを追加しました。バッファ名と filetype を指定できます。
その他開始時にバッファを開くようにしたりと細かい変更があります。

Vim コマンドを実行する仕様を削除

: で始まるコマンドを Vim のコマンドとして扱う仕様がありましたが、runner/vimproc では動かないのもあって仕様から削除することにしました。削除しましたが実装はまだ残ってます。特に何もなければ次のバージョン*1で削除する予定です。
Vim script の実行は、代わりに runner/vimscript を追加したのでこちらで行います。これだと通常のコマンドと Vim のコマンドを混ぜれませんが、そこまで必要にならないだろうと考えています。hook もあるので最後にファイルを消すような処理はこちらでできます。



こんなもんだったけかな…。内側に関してはもっとあちこちいじりまくってて正直ちゃんと覚えてない…。
まとめると、いくつかのオプションの指定方法が変わったのが主で、後はカスタマイズバリバリの人でなければそのまま使えるようにしたつもりです。
近日中に master に merge 予定なので、要望、不具合報告等あれば早めに教えてもらえると助かります。

*1:完全に未定ですが