summaryrefslogtreecommitdiff
path: root/pygments/styles/solarized.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygments/styles/solarized.py')
-rw-r--r--pygments/styles/solarized.py130
1 files changed, 130 insertions, 0 deletions
diff --git a/pygments/styles/solarized.py b/pygments/styles/solarized.py
new file mode 100644
index 00000000..7d4b113d
--- /dev/null
+++ b/pygments/styles/solarized.py
@@ -0,0 +1,130 @@
+# -*- 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-2019 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']
+
+
+class SolarizedLightStyle(SolarizedDarkStyle):
+ """
+ The solarized style, light.
+ """
+
+ styles = make_style(LIGHT_COLORS)
+ background_color = LIGHT_COLORS['base03']
+ highlight_color = LIGHT_COLORS['base02']