2012-07-03 14 views
7

Estoy usando Sphinx para la documentación del código y uso varios idiomas dentro del código. Me gustaría configurar el resaltado para todo ese código. Sphinx menciona brevemente algunos de los idiomas que admite (on this page), y luego menciona que usa Pygments para análisis léxico y resaltado. Revisar la documentación de Sphinx y Pygments no me dio ninguna pista sobre cómo hacer algo como resaltar el código objetivo-c.Sphinx: lista de idiomas compatibles para resaltar?

Pygments menciona la lista de idiomas que admite, here, sin embargo, eso no me dice la sintaxis exacta que debo usar dentro de Sphinx (archivos .rst) para indicar al bloque de código que resalte para un idioma específico. Por ejemplo, para resaltar el código C++ que un uso simple esto antes de su código de bloque:

.. highlight:: c++

Sin embargo después de probar estos Parece que no puedo destacar código Objective-C:

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

¿Alguien puede suministrar con la lista de idiomas (como se los referiría en la documentación)?

Respuesta

6

Por lo que puedo decir, la lista está en el archivo pygments/lexers/_mapping.py, en el diccionario (autogenerado) LEXERS. En mi copia, veo una línea

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

creo que esto debería significar que ninguna de las etiquetas objective-c, objectivec, obj-c, o objc debería funcionar, siempre y cuando su versión de Pygments está al día. Ellos trabajan para mi

3

Si instala el módulo de pygments. Puede utilizar esta secuencia de comandos para obtener una lista de marcadores compatibles:

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" 

primer nivel de sangría de salida será el nombre general y segundo nivel serán nombres cortos de marcadores que se pueden utilizar.

Ejemplo de Salida

  • Debian SourceList

    • sourceslist
    • sources.list
  • Delphi

    • delphi
    • pas
    • pascal
    • ObjectPascal

Source

Cuestiones relacionadas