Changes between Initial Version and Version 1 of Ticket #12984, comment 3
- Timestamp:
- Feb 25, 2018, 9:00:53 PM (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #12984, comment 3
initial v1 3 3 {{{#!diff 4 4 diff --git a/trac/mimeview/pygments.py b/trac/mimeview/pygments.py 5 index 4dab18e59.. c45cd4d371006445 index 4dab18e59..890ef6f13 100644 6 6 --- a/trac/mimeview/pygments.py 7 7 +++ b/trac/mimeview/pygments.py 8 @@ -295,10 +295,14 @@ class GenshiHtmlFormatter(HtmlFormatter): 8 @@ -291,14 +291,19 @@ class GenshiHtmlFormatter(HtmlFormatter): 9 pos = None, -1, -1 10 span = QName('span') 11 class_ = QName('class') 12 + newlines_re = re.compile(r'(\n+)') 13 9 14 def _generate(): 10 15 for c, text in self._chunk(tokens): 11 16 if c: 12 -attrs = Attrs([(class_, c)])17 attrs = Attrs([(class_, c)]) 13 18 - yield START, (span, attrs), pos 14 19 - yield TEXT, text, pos 15 20 - yield END, span, pos 16 + for idx, t in enumerate(text.split('\n')): 17 + if t: 18 + attrs = Attrs([(class_, c)]) 21 + for t in newlines_re.split(text): 22 + if t.startswith('\n'): 23 + yield TEXT, t, pos 24 + elif t: 19 25 + yield START, (span, attrs), pos 20 26 + yield TEXT, t, pos 21 27 + yield END, span, pos 22 + if idx > 0:23 + yield TEXT, '\n', pos24 28 else: 25 29 yield TEXT, text, pos