Syntastic が使用するコマンド

id:Layzie これ入れてみたけど、色々な言語に対応していて、便利だった。けど、どんなコマンドが必要なのかがドキュメントに無いので、ちょっと不便。(調べれば良いんだけど

はてなブックマーク - Layzieのブックマーク / 2012年1月9日

仰る通り!


というわけで、.vim/bundle/syntastic/syntax_checkers 以下に書かれているのを grep "makeprg" *.vim を中心に見てみた。

言語 ファイルタイプ コマンド
AppleScript applescript osacompile
C c gcc
CoffeeScript coffee coffee
C++ c++ g++
CSS css csslint
Cucumber cucumber cucumber
Cuda cuda nvcc*1
Docbook docbk xmllint
Erlang erlang escript
eRuby eruby sed, ruby
Fortran fortran gfortran
Gentoo metadata gentoo_metadata xmllint
go-lang go 6g
Haml haml haml
Haskell haskell ghc-mod
Html html tidy
JavaScript js gjslint, jslint, jsl, jshint*2
JSON json jsonlint, jsonval*3
Less less lessc
Lua lua luac
MatLab matlab mlint
Perl perl perl*4
PHP php php
Puppet puppet puppet
Python python flake8, pyflakes*5
reST rst rst2pseudoxml.py*6
Ruby ruby ruby
Sass sass sass
Scss scss sass
sh sh bash, zsh, sh*7
Tcl tcl tclsh
TeX tex lacheck
Vala vala valac
XHTML xhtml tidy
XML xml xmllint
XSLT xslt xmllint
YAML yaml js-yaml
ZPT(Zope Page Template) zpt zptlint*8

つまり syntastic/syntax_checkers にファイルタイプに対応した Vim Script を書く事でオリジナルのチェックツールも作れるっぽい。

*1:let g:syntastic_nvcc_binary で変更可

*2:let g:syntastic_javascript_checker でいづれかを指定する

*3:let g:syntastic_json_checker でいづれかを指定する

*4:$VIMRUNTIME/tools/efm_perl.pl が必要。MacVim だとデフォルトで入ってた

*5:let g:syntastic_python_checker で指定可

*6:Docutils に入ってるっぽい

*7:シェバングから判定する

*8:http://pypi.python.org/pypi/zptlint