牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Emacs の js2-mode で jshint を利用するメモ

修正 2014-10-12
修正 2014-10-16

(Emacs24.3)

インストール

npm
$ sudo npm install -g jshint
emacs-lisp
1. M-x package-list-packages
2. flymake-jshint

設定

  1. nodebrew を使用時はパス通す時に注意。
    • `"~/.nodebrew/current/bin"` とすると動かないので `(concat (getenv "HOME") "/.nodebrew/current/bin")` などとすること。
  2. `~/.jshintrc` にjshintの設定を書いて読み込む。
  3. flymake-jshint を読み込む
init.el

環境変数のパス通す

  ;; nodebrew
  (let ((path (concat (getenv "HOME") "/.nodebrew/current/bin")))
    (setq exec-path (cons path exec-path))
    (setenv "PATH" (concat (concat path path-separator) (getenv "PATH")))
    )
  1. flymake-jshint 読み込み
  2. .jshintrc のパス設定
  3. js2-mode のデフォルトと文法チェックをオフ
(progn
  (add-hook 'js2-mode-hook 'flymake-jshint-load)
  (setq jshint-configuration-path (concat (getenv "HOME")"/.jshintrc"))
  ;; when use jshint
  (setq js2-mode-show-parse-errors nil)
  (setq js2-mode-show-strict-warnings nil)
  )
~/.jshintrc

Options 設定。

{
    "eqnull" : true,
    "expr" : true,
    "forin": true,
    "freeze": true,
    "trailing": true,
    "unused": true,
    "undef" : true,
    "globals": {
        "require": false,
        "_": false,
        "Backbone": false,
    },
    "browser" : true,
    "debug"    : true,
    "devel" : true,
    "jquery": true
}

必要になったら付け足す

その他

CasperJS はファイル毎に指定した方がいいかも

/* global casper */
コメントでオプション設定できる

「"undef": true」の場合に jQuery の 「$」 とか CasperJS の「casper」 なども未定義と指摘されるので無視したりできる。

/* global $:false */

function() {
  $("#foo").click(function(){
    console.log("bar");
  });
};