js2-mode
js2-mode は、キーワード、関数、コメント等々をハイライト表示したり、自動インデントをしてくれたり、文法チェックをしてくれたりといった Emacs で JavaScript の編集をする際に便利なモードです。
他に、js-mode, js3-mode と異なるバージョン?のモードがありますが、現時点では js2-mode が一番良い選択肢のようです。
インストール
MELPA からインストールできるので楽ちんです。
Cask 等を参照ください。
設定
init.el に以下を記載すると、.js ファイルを開いた際に自動的に js2-mode が適用されます。
(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode))
外部参照
js2-mode では、未定義の変数や関数を使用すると警告が表示されます。
ところが、JavaScript において他のファイルで定義されているグローバルな変数・関数を使用することはよくあるので、このままではすぐに警告が表示されることになります。
例えば、jQuery であれば、"jQuery" という指定は既に定義済みですが、js2-mode は未定義のキーワードを使用しているとみなして警告が表示されます。
このような場合には、以下のように定義済みのキーワードであることを設定して、警告を表示しないようにします。
(setq-default js2-global-externs (list "jQuery" "$"))