vimでsyntaxチェック
Vimで書いているJavaScriptの文法チェックをVimの上で出来たらなーと調べてみたら
SpiderMonkeyを使ってJavaScriptの文法チェクが出来るスクリプトがあった.
設定方法はここ.
Mac OS X (Leopard)ではSpiderMonkeyをMacPort経由でインストールすれば参考サイトと設定は一緒.
せいぜいファイルパスを適時読み替えるくらい*1.
VimはOS標準のものを使ってます.
以下,導入ログ.
$ sudo port install spidermonkey $ wget http://www.jslint.com/fulljslint.js $ mkdir ~/src/js $ mv fulljslint.js ~/src/js
javascriptのコードをfulljslint.jsに渡すためのコード.*2
~/src/js/runjslint.js
load('/Users/hoge/src/js/fulljslint.js'); var body = arguments[0]; var result = JSLINT(body); if (result) { print('All good.'); } else { print('Problems:'); } print(JSLINT.report());
出力結果がhtmlタグを含んでいるので,整形し直す.
# pythonじゃなくったっていいんだけど,ここは参考先に従っておく.
~/src/python/format_lint_output.py*3
#!/usr/bin/python import sys import re def format_lint_line(line): line = line.replace('<p>', '\n') line = line.replace(' ', ' ') return line def remove_html_tags(data): p = re.compile(r'<.*?>') return p.sub('', data) for line in sys.stdin: print remove_html_tags(format_lint_line(line))
あとは.vimrcに書いておく.
:jsとすると,vimで編集中のjavascriptの文法チェックをしてくれる.
~/.vimrc
cabbr js !js ~/src/js/runjslint.js "`cat %`" \| ~/src/python/format_lint_output.py