我想开始用 Common Lisp 编写一些简单的领域特定语言,并希望我定义的宏的名称能够像 Common Lisp 函数或宏一样突出显示(在 Emacs 中)。
下面是一个简单的例子,它并不是我希望编写的代码,但它是一个展示我想要的功能的 MWE。
(defmacro class* (class-name superclasses slots)
(let ((slot-declarations
(loop for slot in slots collecting
(list slot :accessor slot :initform nil))))
`(defclass ,class-name ,superclasses ,slot-declarations)))
(class* graph () (nodes edges))
我想要的class*
是第二表单以洋红色显示(根据我的 Emacs 安装中的默认颜色),并graph
以蓝色突出显示。
我已看到一些如何调整 LaTeX 语法高亮的示例,但我无法扩展它们以在 Common Lisp 中为我工作。
非常感谢。