SphinxコードスニペットのドキュメントでPygmentsを使用して強調したいLispのような言語があります。私のアプローチは、既存の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であるかのように強調表示されますが、私の新しい組み込み名には特別な強調表示はありません。