Emacs Tramp接続中のflycheckを無効にする設定

コードのミスを教えてくれる賢いElispですが、
Trampリモート状態やルート権限状態でflycheckが使われると困ったことになります。

それを回避する方法です(flymakeにも使えるかも)


;;; flycheck
(require 'flycheck)

;; check tramp or root file
(defun flycheck-exclude-tramp ()
  (unless (or (and (fboundp 'tramp-tramp-file-p)
                   (tramp-tramp-file-p buffer-file-name))
              (string-match "sudo:.*:" (buffer-file-name)))
    (flycheck-mode t)
  ))

;; apply flycheck-mode
(dolist (hook (list
               'scss-mode-hook
               'ruby-mode-hook
               'php-mode-hook
               ))
  (add-hook hook 'flycheck-exclude-tramp))

別件ですが、flycheckをインストールしたときに「Symbol's function definition is void...」とエラーが出たので何事かと思い調べたらdash.elが古いのが原因だったようです。新しいのを入れたらOKでした。