TextMate command with JSLint

TextMate上でいま開いている.jsファイルをJSLintを使ってsyntax checkしようという話し。
spicermonkeyでJSLintを動かそうとしたけどうまくいかなかったので、
Rhinoのjs.jarを使って動かすようにしました。

まずはRhinoを適当に*1ダウンロードします。

$ wget ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino1_7R2.zip |unzip
$ cp rhino1_7R2/js.jar ~/Dropbox/lib

次に以下のサイトを参考にJSLintをダウンロードします。
JSLint and Rhino http://jslint.com/rhino/index.html

$ curl http://jslint.com/rhino/jslint.js > ~/Dropbox/lib

すると以下のようなコマンドで任意の.jsファイルをsyntax checkできるようになります。

$ java -jar ~/Dropbox/lib/js.jar ~/Dropbox/lib/jslint.js myprogram.js

あとはこれをTMCommandにするだけです。
TextMateを開いてBundles->Bundle Editor->Edit Commandsを開きます。
Javascript Bundleの中で+ボタンを押してCommandを追加します。
名前はJSLintとか適当に打ち込んでCommand欄に以下のコマンドを入れます。

java -jar ~/Dropbox/lib/js.jar ~/Dropbox/lib/jslint.js "$TM_FILEPATH"

KeyActivationに適当なショートカットキーを入力(Ctr+Cmd+Lなど)し、
Source Selectorをsource.jsとすると.jsファイルを開いたときだけ、
このコマンドを有効にすることができます。

jQueryなどのライブラリを使っていると、
変なところでエラーになってしまう場合もありますが、
基本的な構文を忘れてしまった場合などは結構使えます。

*1:Dropboxで同期したいのでDropboxディレクトリにコピー