145 lines
4.1 KiB
Python
145 lines
4.1 KiB
Python
"""
|
|
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-2023 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
|
|
|
|
|
|
__all__ = ['SolarizedLightStyle', 'SolarizedDarkStyle']
|
|
|
|
|
|
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: colors['base0'],
|
|
Generic.Deleted: colors['red'],
|
|
Generic.Emph: 'italic',
|
|
Generic.Error: colors['red'],
|
|
Generic.Heading: 'bold',
|
|
Generic.Subheading: 'underline',
|
|
Generic.Inserted: colors['green'],
|
|
Generic.Output: colors['base0'],
|
|
Generic.Prompt: 'bold ' + colors['blue'],
|
|
Generic.Strong: 'bold',
|
|
Generic.EmphStrong: 'bold italic',
|
|
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.
|
|
"""
|
|
|
|
name = 'solarized-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.
|
|
"""
|
|
|
|
name = 'solarized-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']
|