elispのflymakeでコメント内の括弧を無視
Emacs Lisp用にflymakeを設定したがそのままじゃうまい具合に動いてくれなかった。
参考
http://www.lunaport.net/mt/mt-tb.cgi/22
http://www.emacswiki.org/emacs/FlymakeElisp
原因を見てみると、コメントアウトしたつもりのコード
;; )
でエラーが出て止まっている様子。
なのでコメント内の括弧を無視するように修正した。
以下コード
#!/bin/bash :;: '-*-emacs-lisp-*-' :; exec emacs -Q --batch --load "$0" "$@" (dolist (file command-line-args-left) (with-temp-buffer (insert-file-contents file) (emacs-lisp-mode) (let ((parse-sexp-ignore-comments t)) (condition-case data (scan-sexps (point-min) (point-max)) (scan-error (goto-char (nth 2 data)) (princ (format "%s:%s: error: Unmatched bracket or quote\n" file (line-number-at-pos))))))))
diffはこんな感じ
*** 4,12 **** --- 4,15 ---- (dolist (file command-line-args-left) (with-temp-buffer (insert-file-contents file) + (emacs-lisp-mode) + (let ((parse-sexp-ignore-comments t)) (condition-case data (scan-sexps (point-min) (point-max)) (scan-error (goto-char (nth 2 data)) (princ (format "%s:%s: error: Unmatched bracket or quote\n" file (line-number-at-pos))))))) + )