2013-07-02 53 views
3

一個經常犯的錯誤的EVAL-後負荷是忘記報價形式:亮點不正確的使用EVAL-後負荷

(eval-after-load 'dired 
    (progn 
    ... 
    ...)) 

(eval-after-load "foo" (let ...)) 

我怎麼能突出這樣的錯誤?當表格未被引用時,也許會用紅色將單詞eval-after-load塗成紅色?

回答

1

我所知道的最簡單的方法是添加字體鎖關鍵字:

(font-lock-add-keywords 'lisp-mode 
    '(("(\\(eval-after-load\\)\s+[^\s]+\s+(" 1 'font-lock-warning-face t) 
    ("(\\(setq\\)\s+'" 1 'font-lock-warning-face t))) 

申請跨口齒不清模式這些關鍵字及其所有衍生模式:

(add-hook 'lisp-mode 
    (lambda() 
    (font-lock-add-keywords nil 
     '(("(\\(eval-after-load\\)\s+[^\s]+\s+(" 1 'font-lock-warning-face t) 
     ("(\\(setq\\)\s+'" 1 'font-lock-warning-face t))))) 

該解決方案不會支持多行的錯誤(就像在第一個例子中那樣),但這是一個開始。

更多信息可在: http://www.gnu.org/software/emacs/manual/html_node/elisp/Search_002dbased-Fontification.html#Search_002dbased-Fontification