Sphinx: List of supported languages for highlighting?
Asked Answered
I

3

25

I'm using Sphinx for code documentation and use several languages within the code, I would like to setup highlighting for all of that code. Sphinx briefly mentions a few of the languages it supports (on this page), and then mentions that it uses Pygments for lexical analysis and highlighting. Sifting through the documentation for both Sphinx and Pygments yielded me no clue on how to do something like highlight objective-c code.

Pygments does mention the list of languages it supports, here, however that doesn't tell me the exact syntax that I must use within Sphinx (.rst files) to tell the code block to highlight for a specific language. For example, to highlight c++ code you simply use this before your code block:

.. highlight:: c++

However after trying these I cannot seem to highlight Objective-C code:

.. highlight:: Objective-C
.. highlight:: objective-c
.. highlight:: Obj-C
.. highlight:: obj-c

Can anyone supply me with the list of languages (as you would refer to them within documentation)?

Inconsumable answered 3/7, 2012 at 16:48 Comment(0)
P
9

As far as I can tell, the list is in the file pygments/lexers/_mapping.py, in the (autogenerated) dictionary LEXERS. In my copy, I see a line

'ObjectiveCLexer': ('pygments.lexers.compiled', 'Objective-C', ('objective-c', 'objectivec', 'obj-c', 'objc'), ('*.m',), ('text/x-objective-c',)),

I think this should mean that any of the tags objective-c, objectivec, obj-c, or objc should work, as long as your version of Pygments is up-to-date. They work for me.

Petulah answered 3/7, 2012 at 18:8 Comment(0)
L
26

pygmentize -L lexers lists all supported lexers.

Laconism answered 16/2, 2019 at 9:47 Comment(1)
Wow, best answer by far. I wasted plenty of time with the first two before I noticed this one.Rugger
P
9

As far as I can tell, the list is in the file pygments/lexers/_mapping.py, in the (autogenerated) dictionary LEXERS. In my copy, I see a line

'ObjectiveCLexer': ('pygments.lexers.compiled', 'Objective-C', ('objective-c', 'objectivec', 'obj-c', 'objc'), ('*.m',), ('text/x-objective-c',)),

I think this should mean that any of the tags objective-c, objectivec, obj-c, or objc should work, as long as your version of Pygments is up-to-date. They work for me.

Petulah answered 3/7, 2012 at 18:8 Comment(0)
B
3

If you install pygments module. You can use this script to get a list of supported highlighters:

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"

First indent level of output will be general name and second level will be short names of highlighters that you can use.

Example Output

  • Debian Sourcelist

    • sourceslist
    • sources.list
  • Delphi

    • delphi
    • pas
    • pascal
    • objectpascal

Source

Byrn answered 1/12, 2014 at 9:38 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.