强调错误使用eval-after-load

时间:2013-07-02 21:25:19

标签: emacs elisp

使用eval-after-load时常犯的错误是忘记引用表单:

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

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

我如何突出这些错误?如果没有引用表单,可能会将单词eval-after-load涂成红色?

1 个答案:

答案 0 :(得分:1)

我所知道的最直接的方法是添加font-lock关键字:

(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)))

要在lisp-mode及其所有派生模式中应用这些关键字:

(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