我正在使用Sphinx代码文档并在代码中使用多种语言,我想为所有代码设置突出显示。 Sphinx简要提到了它支持的一些语言(on this page),然后提到它使用Pygments进行词法分析和突出显示。通过Sphinx和Pygments的文档筛选,我不知道如何做突出显示objective-c代码。
Pygments确实提到了它支持的语言列表here,但是这并没有告诉我在Sphinx(.rst文件)中必须使用的确切语法来告诉代码块突出显示特定语言。例如,要突出显示c ++代码,只需在代码块之前使用它:
.. highlight:: c++
但是在尝试这些后我似乎无法突出显示Objective-C代码:
.. highlight:: Objective-C
.. highlight:: objective-c
.. highlight:: Obj-C
.. highlight:: obj-c
任何人都可以提供语言列表(你可以在文档中引用它们)吗?
据我所知,该列表位于(自动生成)字典pygments/lexers/_mapping.py
文件LEXERS
中。在我的副本中,我看到一条线
'ObjectiveCLexer': ('pygments.lexers.compiled', 'Objective-C', ('objective-c', 'objectivec', 'obj-c', 'objc'), ('*.m',), ('text/x-objective-c',)),
我认为这应该意味着任何标签objective-c
,objectivec
,obj-c
或objc
应该可以工作,只要你的Pygments版本是最新的。他们为我工作。
pygmentize -L lexers
列出了所有支持的词法分析器。
如果你安装pygments模块。您可以使用此脚本获取支持的荧光笔列表:
from pygments.lexers import get_all_lexers
lexers = get_all_lexers()
for lexer in lexers:
print "-\t" + lexer[0] + "\n"
print "\t-\t" + "\n\t-\t".join(lexer[1]) + "\n"
第一个缩进级别的输出将是通用名称,第二级别将是您可以使用的荧光笔的短名称。
示例输出