Anonymous avatar Anonymous committed bd4fce9

Allow lexer guessing.

Comments (0)

Files changed (2)

   HTML, LaTeX and text translators; this prevents having to manually
   patch the classes.
 
+* Exposed Pygments' lexer guessing as a highlight "language"
+  ``guess``.
+
 * Added ``Sphinx.add_javascript()`` that adds scripts to load in the
   default HTML template.
 

sphinx/highlighting.py

     from pygments import highlight
     from pygments.lexers import PythonLexer, PythonConsoleLexer, CLexer, \
          TextLexer, RstLexer
-    from pygments.lexers import get_lexer_by_name
+    from pygments.lexers import get_lexer_by_name, guess_lexer
     from pygments.formatters import HtmlFormatter, LatexFormatter
     from pygments.filters import ErrorToken
     from pygments.style import Style
         elif lang in ('python3', 'py3') and source.startswith('>>>'):
             # for py3, recognize interactive sessions, but do not try parsing...
             lexer = lexers['pycon3']
+        elif lang == 'guess':
+            try:
+                lexer = guess_lexer(source)
+            except Exception:
+                return self.unhighlighted(source)
         else:
             if lang in lexers:
                 lexer = lexers[lang]
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.