ThirdParty/Pygments/pygments/formatters/terminal.py

Wed, 11 Mar 2015 18:32:27 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 11 Mar 2015 18:32:27 +0100
changeset 4172
4f20dba37ab6
parent 3145
a9de05d4a22f
child 4697
c2e9bf425554
permissions
-rw-r--r--

Updated Pygments to 2.0.2.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 pygments.formatters.terminal
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 Formatter for terminal output with ANSI sequences.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
8 :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 :license: BSD, see LICENSE for details.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
12 import sys
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
13
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from pygments.formatter import Formatter
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from pygments.token import Keyword, Name, Comment, String, Error, \
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
16 Number, Operator, Generic, Token, Whitespace
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from pygments.console import ansiformat
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from pygments.util import get_choice_opt
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 __all__ = ['TerminalFormatter']
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 #: Map token types to a tuple of color values for light and dark
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 #: backgrounds.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 TERMINAL_COLORS = {
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Token: ('', ''),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Whitespace: ('lightgray', 'darkgray'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Comment: ('lightgray', 'darkgray'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Comment.Preproc: ('teal', 'turquoise'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 Keyword: ('darkblue', 'blue'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Keyword.Type: ('teal', 'turquoise'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Operator.Word: ('purple', 'fuchsia'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 Name.Builtin: ('teal', 'turquoise'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 Name.Function: ('darkgreen', 'green'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Name.Namespace: ('_teal_', '_turquoise_'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Name.Class: ('_darkgreen_', '_green_'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 Name.Exception: ('teal', 'turquoise'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 Name.Decorator: ('darkgray', 'lightgray'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 Name.Variable: ('darkred', 'red'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Name.Constant: ('darkred', 'red'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 Name.Attribute: ('teal', 'turquoise'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 Name.Tag: ('blue', 'blue'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 String: ('brown', 'brown'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Number: ('darkblue', 'blue'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Generic.Deleted: ('red', 'red'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 Generic.Inserted: ('darkgreen', 'green'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 Generic.Heading: ('**', '**'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 Generic.Subheading: ('*purple*', '*fuchsia*'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Generic.Error: ('red', 'red'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Error: ('_red_', '_red_'),
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 }
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 class TerminalFormatter(Formatter):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 r"""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Format tokens with ANSI color sequences, for output in a text console.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 Color sequences are terminated at newlines, so that paging the output
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 works correctly.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 The `get_style_defs()` method doesn't do anything special since there is
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 no support for common styles.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 Options accepted:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 `bg`
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 Set to ``"light"`` or ``"dark"`` depending on the terminal's background
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 (default: ``"light"``).
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 `colorscheme`
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 A dictionary mapping token types to (lightbg, darkbg) color names or
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 ``None`` (default: ``None`` = use builtin colorscheme).
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
76
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
77 `linenos`
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
78 Set to ``True`` to have line numbers on the terminal output as well
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
79 (default: ``False`` = no line numbers).
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 name = 'Terminal'
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 aliases = ['terminal', 'console']
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 filenames = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 def __init__(self, **options):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Formatter.__init__(self, **options)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.darkbg = get_choice_opt(options, 'bg',
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 ['light', 'dark'], 'light') == 'dark'
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.colorscheme = options.get('colorscheme', None) or TERMINAL_COLORS
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
90 self.linenos = options.get('linenos', False)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
91 self._lineno = 0
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 def format(self, tokensource, outfile):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 # hack: if the output is a terminal and has an encoding set,
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 # use that to avoid unicode encode problems
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 if not self.encoding and hasattr(outfile, "encoding") and \
1705
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
97 hasattr(outfile, "isatty") and outfile.isatty() and \
b0fbc9300f2b Update to Pygments 1.5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 684
diff changeset
98 sys.version_info < (3,):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.encoding = outfile.encoding
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 return Formatter.format(self, tokensource, outfile)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
102 def _write_lineno(self, outfile):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
103 self._lineno += 1
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
104 outfile.write("\n%04d: " % self._lineno)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
105
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
106 def _format_unencoded_with_lineno(self, tokensource, outfile):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
107 self._write_lineno(outfile)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
108
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
109 for ttype, value in tokensource:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
110 if value.endswith("\n"):
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
111 self._write_lineno(outfile)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
112 value = value[:-1]
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
113 color = self.colorscheme.get(ttype)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
114 while color is None:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
115 ttype = ttype[:-1]
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
116 color = self.colorscheme.get(ttype)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
117 if color:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
118 color = color[self.darkbg]
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
119 spl = value.split('\n')
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
120 for line in spl[:-1]:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
121 self._write_lineno(outfile)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
122 if line:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
123 outfile.write(ansiformat(color, line[:-1]))
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
124 if spl[-1]:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
125 outfile.write(ansiformat(color, spl[-1]))
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
126 else:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
127 outfile.write(value)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
128
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
129 outfile.write("\n")
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
130
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 def format_unencoded(self, tokensource, outfile):
4172
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
132 if self.linenos:
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
133 self._format_unencoded_with_lineno(tokensource, outfile)
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
134 return
4f20dba37ab6 Updated Pygments to 2.0.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3145
diff changeset
135
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 for ttype, value in tokensource:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 color = self.colorscheme.get(ttype)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 while color is None:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 ttype = ttype[:-1]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 color = self.colorscheme.get(ttype)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 if color:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 color = color[self.darkbg]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 spl = value.split('\n')
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 for line in spl[:-1]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 if line:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 outfile.write(ansiformat(color, line))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 outfile.write('\n')
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 if spl[-1]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 outfile.write(ansiformat(color, spl[-1]))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 outfile.write(value)

eric ide

mercurial