Subscribed unsubscribe Subscribe Subscribe

Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

yasnippetのスニペット展開中にflymakeするのを防ぐ

emacs elisp

2008-03-19追記: 不具合があったので、少し修正しました。

yasnippet超便利なのですが、flymakeしてると、yasnippetのフェイスがflymakeのフェイスで上書きされちゃうことがよくある。そこでこんな設定を追加してみた。つーか、yas/expandにもフック欲しいな。要望しておこう。

flymakeが有効か否かを調べる方法は、id:elimんに教えてもらったお!id:elim++

;; yasnippet展開中はflymakeを無効にする
(defvar flymake-is-active-flag nil)

(defadvice yas/expand-snippet
  (before inhibit-flymake-syntax-checking-while-expanding-snippet activate)
  (setq flymake-is-active-flag
        (or flymake-is-active-flag
            (assoc-default 'flymake-mode (buffer-local-variables))))
  (when flymake-is-active-flag
    (flymake-mode-off)))

(add-hook 'yas/after-exit-snippet-hook
          '(lambda ()
             (when flymake-is-active-flag
               (flymake-mode-on)
               (setq flymake-is-active-flag nil))))