Browse Source

Help: Workaround pygments reporting an error for genexes.

Without the workaround, CMake code snippets are not highlighted
at all because pygments can not lex the generator expressions.
Stephen Kelly 12 years ago
parent
commit
0de81bba8c
1 changed files with 10 additions and 0 deletions
  1. 10 0
      Utilities/Sphinx/cmake.py

+ 10 - 0
Utilities/Sphinx/cmake.py

@@ -12,6 +12,16 @@
 import os
 import re
 
+# Monkey patch for pygments reporting an error when generator expressions are
+# used.
+# https://bitbucket.org/birkenfeld/pygments-main/issue/942/cmake-generator-expressions-not-handled
+from pygments.lexers import CMakeLexer
+from pygments.token import Name, Operator
+from pygments.lexer import bygroups
+CMakeLexer.tokens["args"].append(('(\\$<)(.+?)(>)',
+                                  bygroups(Operator, Name.Variable, Operator)))
+
+
 from docutils.parsers.rst import Directive, directives
 from docutils.transforms import Transform
 try: