135 lines
3.9 KiB
Python
135 lines
3.9 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
"""
|
||
|
pygments.styles.solarized
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
|
||
|
Solarized by Camil Staps
|
||
|
|
||
|
A Pygments style for the Solarized themes (licensed under MIT).
|
||
|
See: https://github.com/altercation/solarized
|
||
|
|
||
|
:copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS.
|
||
|
:license: BSD, see LICENSE for details.
|
||
|
"""
|
||
|
|
||
|
from pygments.style import Style
|
||
|
from pygments.token import Comment, Error, Generic, Keyword, Name, Number, \
|
||
|
Operator, String, Token
|
||
|
|
||
|
|
||
|
def make_style(colors):
|
||
|
return {
|
||
|
Token: colors['base0'],
|
||
|
|
||
|
Comment: 'italic ' + colors['base01'],
|
||
|
Comment.Hashbang: colors['base01'],
|
||
|
Comment.Multiline: colors['base01'],
|
||
|
Comment.Preproc: 'noitalic ' + colors['magenta'],
|
||
|
Comment.PreprocFile: 'noitalic ' + colors['base01'],
|
||
|
|
||
|
Keyword: colors['green'],
|
||
|
Keyword.Constant: colors['cyan'],
|
||
|
Keyword.Declaration: colors['cyan'],
|
||
|
Keyword.Namespace: colors['orange'],
|
||
|
Keyword.Type: colors['yellow'],
|
||
|
|
||
|
Operator: colors['base01'],
|
||
|
Operator.Word: colors['green'],
|
||
|
|
||
|
Name.Builtin: colors['blue'],
|
||
|
Name.Builtin.Pseudo: colors['blue'],
|
||
|
Name.Class: colors['blue'],
|
||
|
Name.Constant: colors['blue'],
|
||
|
Name.Decorator: colors['blue'],
|
||
|
Name.Entity: colors['blue'],
|
||
|
Name.Exception: colors['blue'],
|
||
|
Name.Function: colors['blue'],
|
||
|
Name.Function.Magic: colors['blue'],
|
||
|
Name.Label: colors['blue'],
|
||
|
Name.Namespace: colors['blue'],
|
||
|
Name.Tag: colors['blue'],
|
||
|
Name.Variable: colors['blue'],
|
||
|
Name.Variable.Global:colors['blue'],
|
||
|
Name.Variable.Magic: colors['blue'],
|
||
|
|
||
|
String: colors['cyan'],
|
||
|
String.Doc: colors['base01'],
|
||
|
String.Regex: colors['orange'],
|
||
|
|
||
|
Number: colors['cyan'],
|
||
|
|
||
|
Generic.Deleted: colors['red'],
|
||
|
Generic.Emph: 'italic',
|
||
|
Generic.Error: colors['red'],
|
||
|
Generic.Heading: 'bold',
|
||
|
Generic.Subheading: 'underline',
|
||
|
Generic.Inserted: colors['green'],
|
||
|
Generic.Strong: 'bold',
|
||
|
Generic.Traceback: colors['blue'],
|
||
|
|
||
|
Error: 'bg:' + colors['red'],
|
||
|
}
|
||
|
|
||
|
|
||
|
DARK_COLORS = {
|
||
|
'base03': '#002b36',
|
||
|
'base02': '#073642',
|
||
|
'base01': '#586e75',
|
||
|
'base00': '#657b83',
|
||
|
'base0': '#839496',
|
||
|
'base1': '#93a1a1',
|
||
|
'base2': '#eee8d5',
|
||
|
'base3': '#fdf6e3',
|
||
|
'yellow': '#b58900',
|
||
|
'orange': '#cb4b16',
|
||
|
'red': '#dc322f',
|
||
|
'magenta': '#d33682',
|
||
|
'violet': '#6c71c4',
|
||
|
'blue': '#268bd2',
|
||
|
'cyan': '#2aa198',
|
||
|
'green': '#859900',
|
||
|
}
|
||
|
|
||
|
LIGHT_COLORS = {
|
||
|
'base3': '#002b36',
|
||
|
'base2': '#073642',
|
||
|
'base1': '#586e75',
|
||
|
'base0': '#657b83',
|
||
|
'base00': '#839496',
|
||
|
'base01': '#93a1a1',
|
||
|
'base02': '#eee8d5',
|
||
|
'base03': '#fdf6e3',
|
||
|
'yellow': '#b58900',
|
||
|
'orange': '#cb4b16',
|
||
|
'red': '#dc322f',
|
||
|
'magenta': '#d33682',
|
||
|
'violet': '#6c71c4',
|
||
|
'blue': '#268bd2',
|
||
|
'cyan': '#2aa198',
|
||
|
'green': '#859900',
|
||
|
}
|
||
|
|
||
|
|
||
|
class SolarizedDarkStyle(Style):
|
||
|
"""
|
||
|
The solarized style, dark.
|
||
|
"""
|
||
|
|
||
|
styles = make_style(DARK_COLORS)
|
||
|
background_color = DARK_COLORS['base03']
|
||
|
highlight_color = DARK_COLORS['base02']
|
||
|
line_number_color = DARK_COLORS['base01']
|
||
|
line_number_background_color = DARK_COLORS['base02']
|
||
|
|
||
|
|
||
|
class SolarizedLightStyle(SolarizedDarkStyle):
|
||
|
"""
|
||
|
The solarized style, light.
|
||
|
"""
|
||
|
|
||
|
styles = make_style(LIGHT_COLORS)
|
||
|
background_color = LIGHT_COLORS['base03']
|
||
|
highlight_color = LIGHT_COLORS['base02']
|
||
|
line_number_color = LIGHT_COLORS['base01']
|
||
|
line_number_background_color = LIGHT_COLORS['base02']
|