我正在使用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
任何人都可以向我提供语言列表(正如您在文档中引用的那样)吗?
答案 0 :(得分:8)
据我所知,该列表位于(自动生成)字典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版本是 - 至今。他们为我工作。
答案 1 :(得分:3)
如果安装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"
第一个缩进级别的输出将是通用名称,第二级别将是您可以使用的荧光笔的短名称。
示例输出
Debian来源列表
的Delphi
答案 2 :(得分:3)
pygmentize -L lexers
列出了所有支持的词法分析器。