vim-jpを作って良かったと思った。githubのIssueトラッカーを使ってvim_devにパッチを放流するまでのワークフローが出来上がりつつある。
- 不具合報告
- 皆で再現確認
- 修正方法の提案そして議論
- 修正担当者をアサイン
- パッチを仮で書いて貼り付ける
- レビューしてもらって提出
後からそういう修正じゃなかったんだけど...って事がなくなる。
とてもいい感じです。
さて、vim-jpが出来てまだ半月しか経ってない。でもvim_devでは日本人が猛威をふるっている。MLの皆が「日本人、突然どうした」と思ってるかもしれない。
では、このIssueトラッカーを使い出してからの成果をご紹介しよう。
入力文字列を変更してもcompletefuncが呼ばれない
補完中に入力文字を変えた場合、補完候補が変わるの可能性があるで補完関数が呼ばれるはずだが呼ばれない。
KoRoNさんがパッチ書いて投稿。素早い。さすがです。7.3.311で取り込まれる。
autoload関数を読み込むとコマンド行が1行ずれる
知る人ぞ知る、いやらしいバグ。コマンドラインからautoloadなスクリプトを呼ぶとコマンドメッセージが1行ずれる。eskk.vim等がそれの影響でひどい動きになっていた。
僕がパッチ書いて投稿。7.3.305で取り込まれる。
'verbosefile' で出力する際、:highlight などの色付きの出力だと出力が壊れる
verbosefileオプションでファイルを指定すると詳細な情報が出力されるのですが、その際、画面のメッセージ位置とファイル上の書き出し位置を共有しているのが原因で奇妙な見え方になっていた。
僕がパッチ書いて投稿。7.3.308で取り込まれる。
:callに複雑な式を渡すと「E15: Invalid expression」を出すことがある
vimscriptは文と文を"|"で繋げられるのだけど
echohl Warnings | echomsg "hello" | echohl NONE
文法的に解析する際、論理和の"|"と勘違いしてしまうので、vimscriptはif 0
で通らない行についても仮でで関数を呼び出す。また関数の戻り値がDictの場合
call foo.bar().baz()
みたいな事も出来る。vimscriptの仕様は変態的で、文字列の結合も辞書のメンバ参照も"."なのです。そのせいで無効行内の関数呼び出しは空のDictを返す作りになっています。ただ配列のインデックス指定時の考慮が抜けていた。
call foo.bar["baz"]()
これがエラーになる。僕がパッチ書いて投稿。ちょっと違うパッチになっちゃったけど7.3.329で取り込まれる。
ユーザ補完関数を使用していると、入力した文字列がregister-.に入らない
題名の通り。
KoRoNさんがパッチ書いて投稿。7.3.319で取り込まれる。
ドラッグ&ドロップで開いたファイルのバッファを削除すると落ちる
vim-jpメンバじゃない人から不具合報告をもらった。どんどん報告して下さい!
実際には既に閉じられたバッファのNULLポインタをデリファレンスしてた。
僕がパッチかいて投稿、7.3.316で取り込まれる。
'foldopen' が all でないと :help で折り畳みが開かれない
helpファイルにfoldingがある場合に
:help foo
がfoldを展開しない不具合。僕がパッチかいて投稿、7.3.327で取り込まれる。
引数の変数名が重複していると内部エラーが出る
題名の通り。
tyruさんがパッチかいて投稿、7.3.325で取り込まれる。パッチをちょっと書き直されたけど、伝わればok
WindowsのMinGW環境にて、xxdのmakeに失敗する
mingw付属のgccがバージョン4.6になり、-mno-cygwinオプションがobsoluteになったのが原因。
ネオコンやVimShellでおなじみのShougoさんがvim_dev初投稿。みごとマージされ、はれてShougoさんはCONTRIBUTE AUTHORになりました。7.3.326で取り込まれる。
パッチは提供したけど、まだ反応もらってない物もあります。個人的にはNakadairaさんの指摘やパッチ提供が的確過ぎて素晴らしいです。
これ、半月の間に日本人が解決した不具合です。すばらしいですね。
これが僕がやりたかった事だ。どんどんvimが良くなれば、僕もKoRoNさんもNakadairaさんもtyruさんもthincaさんもShougoさんも、そして全ユーザも幸せになれるんです。
vim-jpでは不具合報告をお待ちしております。
あなたもCONTRIBUTE AUTHORになろう。