compilation-error-regexp-alist
モードフックとして追加する関数に を設定しようとしています。
(defun cheeso-javascript-mode-fn ()
(turn-on-font-lock)
...bunch of other stuff
;; for JSLINT
(make-local-variable 'compilation-error-regexp-alist)
(setq compilation-error-regexp-alist
'(
("^[ \t]*\\([A-Za-z.0-9_: \\-]+\\)(\\([0-9]+\\)[,]\\( *[0-9]+\\))\\( Microsoft JScript runtime error\\| JSLINT\\): \\(.+\\)$" 1 2 3)
))
;;(make-local-variable 'compile-command)
(setq compile-command
(let ((file (file-name-nondirectory buffer-file-name)))
(concat "%windir%\\system32\\cscript.exe \\cheeso\\bin\\jslint.js " file)))
)
(add-hook 'javascript-mode-hook 'cheeso-javascript-mode-fn)
モードフックが実行されます。モードフックで設定したさまざまなものが機能します。compile-command
が設定されます。しかし、何らかの理由で、compilation-error-regexp-alist
値が有効になりません。
後でM-x describe-variable
oncompilation-error-regexp-alist
を実行すると、あるべきだと思う値が表示されます。しかし..コンパイルバッファのエラーは強調表示されず、M-x next-error
機能しません。
次のように、エラー正規表現値をcompilation-error-regexp-alist
viaに追加するとsetq-default
:
(setq-default compilation-error-regexp-alist
'(
... jslint regexp here ...
... many other regexp's here...
))
...それで動作します。コンパイル バッファ内のエラーは適切に強調表示M-x next-error
され、期待どおりに機能します。