emacs - 突出显示 eval-after-load 的错误使用

标签 emacs elisp

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

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

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

我怎样才能突出这些错误?也许画这个词eval-after-load表格未引用时显示为红色?

最佳答案

我所知道的最直接的方法是添加 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

关于emacs - 突出显示 eval-after-load 的错误使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17436098/

相关文章:

sql - 在 Emacs 中,有没有办法从 init.el 以非交互方式调用交互函数?

Emacs 错误地寻找 .el 而不是 .elc

ubuntu - 组织模式热键不起作用(ubuntu)

linux - 如何检查 Xorg 是否在 emacs lisp 中运行?

emacs - 组织模式中的 FlySpell 识别 latex 语法,如 auctex

function - 有没有办法获取当前函数的函数名?

emacs - 如何轻松地试验涉及移动光标(插入符号)的 elisp 代码?

emacs - 为什么elisp宏返回的函数的应用不起作用?

xml - 删除emacs中某种类型的所有标签

emacs - 如何在 GNU Emacs 中逐行滚动?