3 pygments.style |
3 pygments.style |
4 ~~~~~~~~~~~~~~ |
4 ~~~~~~~~~~~~~~ |
5 |
5 |
6 Basic style object. |
6 Basic style object. |
7 |
7 |
8 :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. |
8 :copyright: Copyright 2006-2017 by the Pygments team, see AUTHORS. |
9 :license: BSD, see LICENSE for details. |
9 :license: BSD, see LICENSE for details. |
10 """ |
10 """ |
11 |
11 |
12 from pygments.token import Token, STANDARD_TYPES |
12 from pygments.token import Token, STANDARD_TYPES |
13 from pygments.util import add_metaclass |
13 from pygments.util import add_metaclass |
|
14 |
|
15 # Default mapping of #ansixxx to RGB colors. |
|
16 _ansimap = { |
|
17 # dark |
|
18 '#ansiblack': '000000', |
|
19 '#ansidarkred': '7f0000', |
|
20 '#ansidarkgreen': '007f00', |
|
21 '#ansibrown': '7f7fe0', |
|
22 '#ansidarkblue': '00007f', |
|
23 '#ansipurple': '7f007f', |
|
24 '#ansiteal': '007f7f', |
|
25 '#ansilightgray': 'e5e5e5', |
|
26 # normal |
|
27 '#ansidarkgray': '555555', |
|
28 '#ansired': 'ff0000', |
|
29 '#ansigreen': '00ff00', |
|
30 '#ansiyellow': 'ffff00', |
|
31 '#ansiblue': '0000ff', |
|
32 '#ansifuchsia': 'ff00ff', |
|
33 '#ansiturquoise': '00ffff', |
|
34 '#ansiwhite': 'ffffff', |
|
35 } |
|
36 ansicolors = set(_ansimap) |
14 |
37 |
15 |
38 |
16 class StyleMeta(type): |
39 class StyleMeta(type): |
17 |
40 |
18 def __new__(mcs, name, bases, dct): |
41 def __new__(mcs, name, bases, dct): |
77 |
102 |
78 return obj |
103 return obj |
79 |
104 |
80 def style_for_token(cls, token): |
105 def style_for_token(cls, token): |
81 t = cls._styles[token] |
106 t = cls._styles[token] |
|
107 ansicolor = bgansicolor = None |
|
108 color = t[0] |
|
109 if color.startswith('#ansi'): |
|
110 ansicolor = color |
|
111 color = _ansimap[color] |
|
112 bgcolor = t[4] |
|
113 if bgcolor.startswith('#ansi'): |
|
114 bgansicolor = bgcolor |
|
115 bgcolor = _ansimap[bgcolor] |
|
116 |
82 return { |
117 return { |
83 'color': t[0] or None, |
118 'color': color or None, |
84 'bold': bool(t[1]), |
119 'bold': bool(t[1]), |
85 'italic': bool(t[2]), |
120 'italic': bool(t[2]), |
86 'underline': bool(t[3]), |
121 'underline': bool(t[3]), |
87 'bgcolor': t[4] or None, |
122 'bgcolor': bgcolor or None, |
88 'border': t[5] or None, |
123 'border': t[5] or None, |
89 'roman': bool(t[6]) or None, |
124 'roman': bool(t[6]) or None, |
90 'sans': bool(t[7]) or None, |
125 'sans': bool(t[7]) or None, |
91 'mono': bool(t[8]) or None, |
126 'mono': bool(t[8]) or None, |
|
127 'ansicolor': ansicolor, |
|
128 'bgansicolor': bgansicolor, |
92 } |
129 } |
93 |
130 |
94 def list_styles(cls): |
131 def list_styles(cls): |
95 return list(cls) |
132 return list(cls) |
96 |
133 |