2
我有一個類似Lisp的語言,我想強調在Sphinx代碼片段文檔中使用Pygments。我的方法是擴展現有的CommonLispLexer以使用NameHighlightFilter添加內置名稱。然而,它不工作,所以我必須錯過明顯的東西。我已將以下內容添加到我的conf.py中:獅身人面像Pygments詞法分析器過濾器擴展?
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一樣,但是我的新內建名稱沒有特別突出顯示。
在交互式Python會話中運行此代碼,確認過濾器不按我的意圖工作。即使在如上所述調用add_filter之後,define函數仍然被標記爲「Name.Variable」,而不是「Name.Builtin」。 – 2012-07-10 12:57:49