我有一种类似 Lisp 的语言,我想在 Sphinx 代码片段文档中使用 Pygments 突出显示。我的方法是扩展现有的 CommonLispLexer 以使用 NameHighlightFilter 添加内置名称。但是,它不起作用,所以我必须遗漏一些明显的东西。我在我的 conf.py 中添加了以下内容:
def setup(app):
from sphinx.highlighting import lexers
from pygments.lexers import CommonLispLexer
from pygments.token import Name
from pygments.filters import NameHighlightFilter
tl_lexer = CommonLispLexer()
tl_lexer.add_filter(NameHighlightFilter(
names=['define-function', 'define-macro',
'define-variable', 'define-constant'],
tokentype=Name.Builtin,
))
app.add_lexer('tl', tl_lexer)
highlight_language = 'tl'
但是 NameHighlightFilter 没有效果。代码块像 Lisp 一样突出显示,但我的新内置名称没有特殊突出显示。