Syntastic というシンタックスチェックプラグインが凄そう

Syntastic という文法チェック用のツールが凄そうというお話。
GitHub - vim-syntastic/syntastic: Syntax checking hacks for vim


自分の VimPHP の場合 errormarker.vimPHP シンタックスチェックをし、Python の場合は PyFlakes*1 を使いチェックをしている。


Syntastic はそのようなチェックを統合的に扱えるプラグインのよう。

At the time of this writing, syntax checking plugins exist for applescript, c, coffee, cpp, css, cucumber, cuda, docbk, erlang, eruby, fortran, gentoo_metadata, go, haml, haskell, html, javascript, json, less, lua, matlab, perl, php, puppet, python, rst, ruby, sass/scss, sh, tcl, tex, vala, xhtml, xml, xslt, yaml, zpt

GitHub - vim-syntastic/syntastic: Syntax checking hacks for vim

現時点ではこれだけのファイルタイプに対応しているっぽい。


Pathogen を使用しているので、bundle の下で git clone をして以下のようなコードを書いてみた。

#!/usr/bin/env perl
use strict;
use warnings;
  
foo = bar

上記のようなコードを保存した瞬間にエラーが出ている所に >> と印がついた。
また :Errors というコマンドを実行すると、QuickFix に表示される

GVim のような GUI だとおそらくバルーン表示とかも出来るっぽい。


設定も色々細かくできるようで、たとえばファイルを開いた瞬間にチェックをするとか、チェックとともに QuickFix を表示するといった機能もある。


また全て自動でチェックするのではなく、特定の言語は手動でチェックしたいという場合もオプションで設定できる。
たとえば自分は Python の場合は PyFlakes でチェックして欲しくて、Syntastic ではチェックして欲しくない。

let g:syntastic_mode_map = { 'mode': 'active',
  \ 'active_filetypes': ['perl'],
  \ 'passive_filetypes': ['php'] }

こんな感じで、 active_filetypes に自動でチェックして欲しいファイルタイプを記述し、passive_filetypes には明示的に :SyntasticCheck を呼ぶとチェックするような形になる。
上記の場合、ファイルタイプが Perl の場合は保存でチェック、PHP の場合は保存しても自動でチェックしない。


自分で errormarker.vim 使ってをチェックツールをごりごり書いている場合はあまりメリットはないかもしれないけど、新しい言語を始めたり、滅多に使わない言語を Vim で書く場合は凄く重宝しそう。