quickrun v0.5.0dev 公開した

ずっと裏でごそごそやってた quickrun v0.5.0 の dev バージョンをようやく公開したよ!変更点多すぎるので別ブランチで。
互換性のない変更が多々あります。注意。さらに、とりあえずベース部分が落ち着いたので公開したけど今後もリリースまでに非互換の変更が入る予定があります。

人柱する方法

v0.5.0dev ブランチがあるのでこちらを使ってください。

git clone http://github.com/thinca/vim-quickrun.git -b v0.5.0dev

変更点

実行部分と出力部分をモジュール化しました。

  • runmode => runner
  • output => outputter

こんな感じ。名前とかも変わってるので詳しくは help 見てください。
ついでに非同期出力に対応したので、例えば

(1..20).each do |i|
  sleep 0.2
  puts i
  STDOUT.flush
end

こんなのを用意して、

:QuickRun -runner vimproc:100

ってやると、ちょっとずつ結果が出ます。
すごい気がしないでもないけど、通常のプログラムは出力先が端末でない場合自動でバッファリングしちゃうみたいなので、残念ながら普段は恩恵に授かれないと思います。過度な期待はしないでください。

モジュール一覧

すでにあるもの。

  • runner
    • system
    • shell
    • vimproc
    • remote
    • python
  • outputter
    • buffer
    • message
    • variable
    • file
    • buffered
    • multi

入れたいもの。

  • runner
    • vimshell
      • できたらおもしろいかもーと思いつつ、どんな感じになるかは一切不明。少なくとも outputter は使わない。
    • mzscheme
      • thread が使えるらしいので前から考えてはいるけど…調査も必要なので入れるとしたら 0.5.0 リリース後かな…。もしくは誰か(ry
  • outputter
    • quickfix
      • 常に quickfix だとエラー限定でコンパイル時にしか使えないのかなー扱いが難しい。
    • browser
      • open-browser.vim と連携が妥当かな。

今後の予定

予定は未定。漠然とした予定も含まれるので実際にやるかは不明。0.5.0 以降になると思われるものも。

  • quickrun-syntax-option で {} が式展開になってるけど、%{} にしようかなぁと考えてる。誤爆率を下げるのと、'statusline' と同じ書式になるので。
  • quicklaunch は別リポジトリに移す。同梱されている必要性が感じられないので。もし使ってるって人が多かったら考え直すので教えてください。
  • outputter/buffer はもう少し改善したい。
  • quickrun 自体の連続実行。今は exec オプションに複数のコマンドが渡せるので、そこで quickrun 自体も実行できる感じ。1つ目はコンパイルで outputter/quickfix、2つ目は実行で outputter/buffer みたいなのができるといいなぁ。
  • hook 機能は入れたい。仕様考え中。
  • デフォルト設定で最後に不要なファイルを消すようなのがあるけど、あれ環境依存で微妙なのでなんとかしたい。

タスクなくなりませんね!不思議!