寫個 script 在 shell 透過 rhino.jar 跑 fulljslint.js,在 Vim 也寫個 function 呼叫它,於是可以用 quickfix window 除錯。

就像有個超級不吝指教的真人陪你寫程式

  • 在 Windows 上沒用。
  • 不使用 jslint.vim。 雖然跨系統、放 jslintrc 設定檔等作法很棒,但是 1) 即時檢查和 highlight 標錯的顯示方式都不是我要的,甚至有點惱人。 2) 想試試直接用大師寫的 fulljslint.js,在 Vim 以外的地方可能也較好整合。
  • 不使用 javaScriptLint.vim,因為 JavaScript Lint 不是 JSLint 啊,跟這主題無關。
  • 使用 Rhino 當 JavaScript engine,因為最好裝。
    不過它的 JavaScript 版本只實作到 1.7(Firefox 2 的程度)所以像 JSON 就不能直接吃,要多 include 個 JSON2.js
  • 具體用到的檔案:
    • ~/bin/jslint (唯一實際被叫的指令,內容主要是 java -cp rhino.jar …)
    • ~/scripts/fulljslint.js (即 Douglas Crockford 的 fulljslint.js)
    • ~/scripts/jslint.js (由官網的 rhino.js(現已移除)修改而來,連接 fulljslint 和 rhino)
    • ~/scripts/json2.js
    • ~/scripts/rhino.jar
  • 修改錯誤訊息的格式,改成跟 closure compiler 相似,就不必再調 Vim 的 errorformat。
  • 目前 JSLint 用的預設 option 直接寫在呼叫 fulljslint.js 用的 script(jslint.js)裡。
  • 在 shell 中呼叫的指令是 jslint file.js '{"extraOptionKey":value}'。 extraOption 可以用來蓋掉預設選項。
  • 在 Vim 中呼叫的指令是 :JSLint

取得檔案