[Python-checkins] r60939 - doctools/trunk/sphinx/highlighting.py

georg.brandl python-checkins at python.org
Thu Feb 21 21:39:51 CET 2008


Author: georg.brandl
Date: Thu Feb 21 21:39:50 2008
New Revision: 60939
Modified:
 doctools/trunk/sphinx/highlighting.py
Log:
Patch #2154 from Amaury: allow '...' in Python snippets; it's often
used to indicate some left-out code.
Modified: doctools/trunk/sphinx/highlighting.py
==============================================================================
--- doctools/trunk/sphinx/highlighting.py	(original)
+++ doctools/trunk/sphinx/highlighting.py	Thu Feb 21 21:39:50 2008
@@ -70,13 +70,23 @@
 lexer = lexers['pycon']
 else:
 # maybe Python -- try parsing it
+ src = source + '\n'
+
+ # Replace "..." by a special mark, 
+ # which is also a valid python expression
+ mark = "__highlighting__ellipsis__"
+ src = src.replace("...", mark)
+
+ # lines beginning with "..." are probably placeholders for suite
+ import re
+ src = re.sub(r"(?m)^(\s*)" + mark + "(.)", r"1円"+ mark + r"# 2円", src)
+
+ # if we're using 2.5, use the with statement
+ if sys.version_info >= (2, 5):
+ src = 'from __future__ import with_statement\n' + src
+
 try:
- # if we're using 2.5, use the with statement
- if sys.version_info >= (2, 5):
- parser.suite('from __future__ import with_statement\n' +
- source + '\n')
- else:
- parser.suite(source + '\n')
+ parser.suite(src)
 except (SyntaxError, UnicodeEncodeError):
 return unhighlighted()
 else:


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /