vim-vimlint で Travis-CI 連携
この記事は Vim Advent Calendar 2013 111日目の記事になります.
vim plugin を github で公開している皆様こんにちわ. vim-vimlint で Travis-CI 連携やってみませんか. github でたまに見る, こういうやつです.
公開中の github 上の plugin に push するだけで, vim-vimlint がうごいて, エラーがないかチェックしてくれます, 便利.
vim-vimlint の遅さなんて気にしなくて良くなりますね, 素敵.
Travis-CI 連携のための手順
step1: travis-ci の設定
最初に Travis CI - Test and Deploy Your Code with Confidence で github と連携する設定をします.
- https://travis-ci.org/
- github アカウントでログイン
- 右上の自分のアイコンあたりから, Accounts を選択
- リポジトリで on にしたいものを選ぶ
step2: .travis.yml ファイルを作る
以下のようなファイルを作ります.
before_script: - git clone https://github.com/syngan/vim-vimlint /tmp/vim-vimlint - git clone https://github.com/ynkdir/vim-vimlparser /tmp/vim-vimlparser script: - sh /tmp/vim-vimlint/bin/vimlint.sh -l /tmp/vim-vimlint -p /tmp/vim-vimlparser autoload plugin
最後の行の "autoload plugin" の部分は必要に応じて修正してください.
step3: push する.
おしまい. これだけです. 簡単, 便利, かっこいい.
README.md に, Travis-CI の結果の画像を乗せるとよりかっこ良いです.
きっと聞かれるであろう Q/A
vim-vimlint が誤検知します.
はい. lint と名前を付けたので, エラーっぽいのはエラーに倒しているので仕方がありません. ごめんなさい. 一応, コメントにいれてエラーを無効にする方法があります.
誤ったエラーの出る箇所に以下のようなコメントを追加してください.
" @vimlint(EVL103, 1, a:_)
- 1 番目の引数がエラー番号
- 2 番目の引数が 1 の場合に無効に, 0 の場合に有効になります.
- 3 番目の引数に変数名を設定します. 変数名には l:, g:, a:などが必要です.
上記の例だと, a:_ は使わない引数だけどエラーになってしまうのを無効にしています.
できれば, それ以降のエラーにならないといけない箇所のエラーの検出が出来なくなってしまうので, 有効にするためのコメントを追加してほしいのですが, 悲しいかな, 実装をさぼっているので有効にするためのコメントを書く場所には注意が必要です. こんな感じで, 関数に関するエラーの判定は endfunction 時にやるので, endfunction より下に書く必要があります. 変な仕様ですね.
" @vimlint(EVL103, 1, a:node) function s:VimlLint.compile_delfunction(node, refchk) " {{{ ..... endfunction " }}} " @vimlint(EVL103, 0, a:node)
おわりに
vim-vimlint の効果は微々たるものですが, エラールートなどはテストされていない人がおおいですよね. やっても少ししか損はしないと思います.
- これまで vim-vimlint でみつけたバグの一部: GitHub - syngan/vim-vimlint: lint for vim script
あと, これは対応してくれよい、な問題があれば issues に具体例を添えて連絡ください.