如何突出显示 elisp 宏参数?

how to highlight elisp macro argument?

当我在 emacs lisp 中使用 "use-package" 宏时,我发现参数被高亮显示了。

但是我自己的宏的参数没有被 emacs 突出显示。

如何编写带有突出显示参数的宏?

use-package 使用 font-lock-add-keywords 将参数标记为 font-lock-constant-face。在代码中将 "use-package" 替换为 "test_macro" 会类似地为您的论点着色

(defconst my-font-lock-keywords
  '(("(\(test_macro\)\_>[ \t']*\(\(?:\sw\|\s_\)+\)?"
     (1 font-lock-keyword-face)
     (2 font-lock-constant-face nil t))))

(font-lock-add-keywords 'emacs-lisp-mode my-font-lock-keywords)