spitewaste 0.1.001
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile +8 -0
- data/README.md +55 -0
- data/Rakefile +10 -0
- data/TUTORIAL.md +125 -0
- data/bin/spw +10 -0
- data/demo/factorial-nicespace.png +0 -0
- data/demo/factorial.asm +47 -0
- data/demo/factorial.png +0 -0
- data/demo/factorial.wsa +5 -0
- data/lib/spitewaste.rb +35 -0
- data/lib/spitewaste/assembler.rb +56 -0
- data/lib/spitewaste/cli.rb +51 -0
- data/lib/spitewaste/cli/asm.rb +10 -0
- data/lib/spitewaste/cli/compile.rb +60 -0
- data/lib/spitewaste/cli/convert.rb +53 -0
- data/lib/spitewaste/cli/exec.rb +43 -0
- data/lib/spitewaste/cli/image.rb +53 -0
- data/lib/spitewaste/emitter.rb +10 -0
- data/lib/spitewaste/emitters/assembly.rb +7 -0
- data/lib/spitewaste/emitters/codegen.rb +72 -0
- data/lib/spitewaste/emitters/image.rb +135 -0
- data/lib/spitewaste/emitters/linefeed.png +0 -0
- data/lib/spitewaste/emitters/schemes.yaml +1143 -0
- data/lib/spitewaste/emitters/whitespace.rb +14 -0
- data/lib/spitewaste/emitters/wsassembly.rb +7 -0
- data/lib/spitewaste/libspw/array.spw +82 -0
- data/lib/spitewaste/libspw/bits.spw +72 -0
- data/lib/spitewaste/libspw/case.spw +32 -0
- data/lib/spitewaste/libspw/fun.spw +42 -0
- data/lib/spitewaste/libspw/io.spw +39 -0
- data/lib/spitewaste/libspw/math.spw +117 -0
- data/lib/spitewaste/libspw/prime.spw +46 -0
- data/lib/spitewaste/libspw/random.spw +10 -0
- data/lib/spitewaste/libspw/stack.spw +84 -0
- data/lib/spitewaste/libspw/string.spw +233 -0
- data/lib/spitewaste/libspw/syntax.spw +2 -0
- data/lib/spitewaste/libspw/test.spw +8 -0
- data/lib/spitewaste/libspw/util.spw +98 -0
- data/lib/spitewaste/parsers/assembly.rb +35 -0
- data/lib/spitewaste/parsers/fucktional.rb +72 -0
- data/lib/spitewaste/parsers/spitewaste.rb +192 -0
- data/lib/spitewaste/parsers/whitespace.rb +60 -0
- data/lib/spitewaste/version.rb +3 -0
- data/spitewaste.gemspec +17 -0
- metadata +88 -0
@@ -0,0 +1,53 @@
|
|
1
|
+
class SpitewasteCLI
|
2
|
+
desc 'convert [OPTIONS] INPUT OUTPUT',
|
3
|
+
'Convert a Whitespace program from one format to another.'
|
4
|
+
long_desc <<DESC
|
5
|
+
OUTFMT is one of:
|
6
|
+
{ws, whitespace} for Whitespace
|
7
|
+
{wsa, wsassembly} for Whitespace assembly (preprocessed Spitewaste)
|
8
|
+
{asm, assembly} for straight-line Whitespace opcodes
|
9
|
+
{cpp, codegen} for C++ (no compilation)
|
10
|
+
defaults to the extension of OUTPUT
|
11
|
+
DESC
|
12
|
+
|
13
|
+
option :output_format,
|
14
|
+
banner: 'OUTFMT',
|
15
|
+
desc: 'the format to convert the input to',
|
16
|
+
aliases: '-o'
|
17
|
+
|
18
|
+
option :symbol_file,
|
19
|
+
banner: 'FILE',
|
20
|
+
desc: 'a file to write the symbol table to (intended for use by other tools, namely Spiceweight)
|
21
|
+
- use % to write to $HOME/.cache/spitewaste directory, where Spiceweight knows to look',
|
22
|
+
aliases: '-s'
|
23
|
+
|
24
|
+
def convert input = '/dev/stdin', output = '/dev/stdout'
|
25
|
+
ext = File.extname output
|
26
|
+
Kernel.exec 'spw', 'image', input, output if ext == '.png'
|
27
|
+
fmt = SpitewasteCLI.validate_format options
|
28
|
+
|
29
|
+
valid_outputs = %i[ws whitespace
|
30
|
+
wsa wsassembly
|
31
|
+
asm assembly
|
32
|
+
cpp codegen]
|
33
|
+
if out_fmt = options[:output_format]&.to_sym and !valid_outputs.include?(out_fmt)
|
34
|
+
raise ArgumentError, "invalid output format '#{out_fmt}'", []
|
35
|
+
end
|
36
|
+
|
37
|
+
ext_map = {
|
38
|
+
'.ws' => :whitespace,
|
39
|
+
'.wsa' => :wsassembly,
|
40
|
+
'.asm' => :assembly,
|
41
|
+
'.cpp' => :codegen}
|
42
|
+
out_fmt = Hash[*valid_outputs][out_fmt] || ext_map[ext]
|
43
|
+
raise ArgumentError, "can't determine output format", [] unless out_fmt
|
44
|
+
|
45
|
+
opts = options.dup # options is frozen
|
46
|
+
if opts[:symbol_file] == '%'
|
47
|
+
opts[:symbol_file] = SpitewasteCLI.make_cache_path input
|
48
|
+
end
|
49
|
+
|
50
|
+
as = Spitewaste::Assembler.new File.read(input), format: fmt, **opts
|
51
|
+
File.open(output, ?w) { |of| as.assemble! format: out_fmt, io: of }
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
|
3
|
+
class SpitewasteCLI
|
4
|
+
desc 'exec [OPTIONS] FILE',
|
5
|
+
'Execute a Whitespace program using the specified interpreter.'
|
6
|
+
|
7
|
+
option :interpreter,
|
8
|
+
desc: 'the command to execute for interpretation, with % in place of the filename',
|
9
|
+
banner: 'COMMAND',
|
10
|
+
default: 'ws %',
|
11
|
+
aliases: '-i'
|
12
|
+
|
13
|
+
option :symbol_file,
|
14
|
+
banner: 'FILE',
|
15
|
+
desc: 'a file to write the symbol table to (intended for use by other tools, namely Spiceweight)
|
16
|
+
- use % to write to $HOME/.cache/spitewaste directory, where Spiceweight knows to look',
|
17
|
+
aliases: '-s'
|
18
|
+
|
19
|
+
def exec file = '/dev/stdin'
|
20
|
+
fmt = SpitewasteCLI.validate_format options
|
21
|
+
|
22
|
+
raise LoadError, "No such file '#{file}'", [] unless File.exists? file
|
23
|
+
|
24
|
+
opts = options.dup # options is frozen
|
25
|
+
if opts[:symbol_file] == '%'
|
26
|
+
opts[:symbol_file] = SpitewasteCLI.make_cache_path file
|
27
|
+
end
|
28
|
+
|
29
|
+
path =
|
30
|
+
if File.extname(file) != '.ws'
|
31
|
+
io = Tempfile.new
|
32
|
+
as = Spitewaste::Assembler.new File.read(file), format: fmt, **opts
|
33
|
+
as.assemble! format: :whitespace, io: io
|
34
|
+
io.tap(&:close).path
|
35
|
+
else
|
36
|
+
file
|
37
|
+
end
|
38
|
+
|
39
|
+
cmd = options[:interpreter].split
|
40
|
+
cmd.map! { |c| c == '%' ? path : c }
|
41
|
+
Kernel.exec *cmd
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
class SpitewasteCLI
|
2
|
+
desc 'image [OPTIONS] INPUT OUTPUT', <<DESC
|
3
|
+
Generate a PNG file of syntax-highlighted Whitespace.
|
4
|
+
|
5
|
+
TODO:
|
6
|
+
more desc here
|
7
|
+
DESC
|
8
|
+
|
9
|
+
option :colors,
|
10
|
+
banner: 'scheme|FILE',
|
11
|
+
desc: 'colors to use to highlight instructions "semantically"',
|
12
|
+
aliases: '-c'
|
13
|
+
|
14
|
+
option :tab_width,
|
15
|
+
banner: 'SPACES',
|
16
|
+
desc: 'number of spaces that tabs should be displayed as (default: 4)',
|
17
|
+
type: :numeric,
|
18
|
+
aliases: '-t'
|
19
|
+
|
20
|
+
option :margin,
|
21
|
+
banner: 'PIXELS',
|
22
|
+
desc: 'amount of whitespace (😉) around the edge of the program (default: 20)',
|
23
|
+
type: :numeric,
|
24
|
+
aliases: '-m'
|
25
|
+
|
26
|
+
option :padding,
|
27
|
+
banner: 'PIXELS',
|
28
|
+
desc: 'amount of padding between individual elements of syntax (default: 1)',
|
29
|
+
type: :numeric,
|
30
|
+
aliases: '-p'
|
31
|
+
|
32
|
+
option :cell_size,
|
33
|
+
banner: 'PIXELS',
|
34
|
+
desc: 'height of individual cells; width will be half of this value (default: 24)',
|
35
|
+
type: :numeric,
|
36
|
+
aliases: '-s'
|
37
|
+
|
38
|
+
option :line_height,
|
39
|
+
banner: 'PIXELS',
|
40
|
+
desc: 'height of individual lines to influence vertical spacing (default: 28)',
|
41
|
+
type: :numeric,
|
42
|
+
aliases: '-l'
|
43
|
+
|
44
|
+
def image input, output = nil
|
45
|
+
fmt = SpitewasteCLI.validate_format options
|
46
|
+
output ||= Pathname.new(input).sub_ext '.png'
|
47
|
+
|
48
|
+
as = Spitewaste::Assembler.new File.read(input), format: fmt
|
49
|
+
File.open(output, ?w) { |of|
|
50
|
+
as.assemble! format: :image, io: of, **options.transform_keys(&:to_sym)
|
51
|
+
}
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
module Spitewaste
|
2
|
+
# Despite my best efforts to torture it into something vaguely resembling a
|
3
|
+
# high-level language, Whitespace is quite simple at bottom; so much so that
|
4
|
+
# mapping almost all of its instructions to equivalent C++ code is a
|
5
|
+
# relatively straightforward endeavor, so long as we don't mind using goto.
|
6
|
+
#
|
7
|
+
# The only interesting aspect of this approach is how we go about calling
|
8
|
+
# into and returning from subroutines. A call instruction generates a goto
|
9
|
+
# to the label in its argument and a label immediately after that goto, whose
|
10
|
+
# address gets pushed onto a stack of "call sites". Naturally, a return
|
11
|
+
# instruction simply pops the address to jump to by way of a computed goto.
|
12
|
+
class CodegenEmitter < Emitter
|
13
|
+
def emit io:
|
14
|
+
io.puts <<CPP
|
15
|
+
#include <algorithm>
|
16
|
+
#include <iostream>
|
17
|
+
#include <map>
|
18
|
+
#include <stack>
|
19
|
+
#include <vector>
|
20
|
+
#include <gmpxx.h>
|
21
|
+
|
22
|
+
using namespace std;
|
23
|
+
typedef mpz_class num;
|
24
|
+
|
25
|
+
vector<num> S;
|
26
|
+
map<num, num> H;
|
27
|
+
stack<void *> C;
|
28
|
+
void *cs;
|
29
|
+
num n;
|
30
|
+
|
31
|
+
num pop() { num c = S.back(); S.pop_back(); return c; }
|
32
|
+
|
33
|
+
int main(void) {
|
34
|
+
CPP
|
35
|
+
cs = -1 # call site
|
36
|
+
instructions.each do |op, arg|
|
37
|
+
io.puts case op
|
38
|
+
when :push ; "S.push_back(#{arg});"
|
39
|
+
when :pop ; "pop();"
|
40
|
+
when :dup ; "S.push_back(S.back());"
|
41
|
+
when :swap ; "reverse(S.end() - 2, S.end());"
|
42
|
+
when :copy ; "S.push_back(S[S.size() - 1 - #{arg}]);"
|
43
|
+
when :slide ; "S.erase(S.end() - #{arg} - 1, S.end() - 1);"
|
44
|
+
|
45
|
+
when :add ; "S[S.size() - 2] += S.back(); S.pop_back();"
|
46
|
+
when :sub ; "S[S.size() - 2] -= S.back(); S.pop_back();"
|
47
|
+
when :mul ; "S[S.size() - 2] *= S.back(); S.pop_back();"
|
48
|
+
when :div ; "{ auto d = pop(); auto n = S.back().get_mpz_t();" +
|
49
|
+
"mpz_fdiv_q(n, n, d.get_mpz_t()); }"
|
50
|
+
when :mod ; "{ auto d = pop(); auto n = S.back().get_mpz_t();" +
|
51
|
+
"mpz_fdiv_r(n, n, d.get_mpz_t()); }"
|
52
|
+
|
53
|
+
when :label ; "L#{arg}:"
|
54
|
+
when :jump ; "goto L#{arg};"
|
55
|
+
when :jz ; "if (!pop()) goto L#{arg};"
|
56
|
+
when :jn ; "if (pop() < 0) goto L#{arg};"
|
57
|
+
when :call ; "C.push(&&C#{cs += 1}); goto L#{arg}; C#{cs}:"
|
58
|
+
when :ret ; "cs = C.top(); C.pop(); goto *cs;"
|
59
|
+
when :exit ; "goto done;"
|
60
|
+
|
61
|
+
when :ichr ; "H[pop()] = cin.get();"
|
62
|
+
when :inum ; "cin >> n; cin.ignore(); H[pop()] = n;"
|
63
|
+
when :ochr ; "cout << (char) pop().get_ui();"
|
64
|
+
when :onum ; "cout << pop();"
|
65
|
+
when :store ; "n = pop(); H[pop()] = n;"
|
66
|
+
when :load ; "S.push_back(H[pop()]);"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
io.puts 'done: return S.size(); }' # punish dirty exit
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'oily_png'
|
2
|
+
require 'stringio'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module Spitewaste
|
6
|
+
class ImageEmitter < Emitter
|
7
|
+
SCHEMES = YAML.load_file(File.join __dir__, 'schemes.yaml')['schemes']
|
8
|
+
LINEFEED = ChunkyPNG::Image.from_file File.join __dir__, 'linefeed.png'
|
9
|
+
DEFAULTS = {
|
10
|
+
colors: 'gruvbox_dark',
|
11
|
+
tab_width: 4, padding: 1, margin: 20,
|
12
|
+
cell_size: 24, line_height: 28
|
13
|
+
}
|
14
|
+
|
15
|
+
def emit io:
|
16
|
+
io.write generate_image
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def generate_image
|
22
|
+
@options = DEFAULTS.merge options
|
23
|
+
line, padding, margin = @options.values_at :line_height, :padding, :margin
|
24
|
+
height = @options[:cell_size]
|
25
|
+
width = height / 2
|
26
|
+
|
27
|
+
img, rects = generate_rects
|
28
|
+
linefeeds = @palette[:bright].values.map { |c|
|
29
|
+
lf = LINEFEED # no need to dup; modify in-place then store resampled
|
30
|
+
lf.pixels.map! { |p| p == 0 ? 0 : c }
|
31
|
+
[c, lf.resample_bilinear(height, height / 2)]
|
32
|
+
}.to_h
|
33
|
+
|
34
|
+
rects.each do |x, y, x2, color|
|
35
|
+
if x2 # space or tab
|
36
|
+
img.rect x * width + margin,
|
37
|
+
y * line + margin,
|
38
|
+
x2 * width + margin - padding - 1,
|
39
|
+
y * line + height + margin - padding - 1,
|
40
|
+
color, color
|
41
|
+
else # draw fancy linefeed
|
42
|
+
img.compose! linefeeds[color],
|
43
|
+
x * width + margin + padding,
|
44
|
+
y * line + margin + height / 4
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
img
|
49
|
+
end
|
50
|
+
|
51
|
+
def generate_rects
|
52
|
+
# We need two representations of the program:
|
53
|
+
# - stream of ops/args to determine how to emit (colors, etc.)
|
54
|
+
# - Whitespace tokens (what to emit)
|
55
|
+
# We know `instructions` to be a valid instance of the first, so we just
|
56
|
+
# convert those to get the second rather than doing another parse + emit.
|
57
|
+
stream = instructions.flatten.compact
|
58
|
+
chunks = stream.map { |token|
|
59
|
+
OPERATORS_M2T[token] || WhitespaceEmitter.encode(token)
|
60
|
+
}
|
61
|
+
|
62
|
+
# Determine the size of the output image.
|
63
|
+
tw = @options[:tab_width]
|
64
|
+
lines = chunks.join.lines
|
65
|
+
rows = lines.size
|
66
|
+
cols = lines.map { |line|
|
67
|
+
line.size + tw.pred * line.count(?\t) + line.count(?\n)
|
68
|
+
}.max
|
69
|
+
width = cols * @options[:cell_size] / 2 + @options[:margin] * 2
|
70
|
+
height = rows * @options[:line_height] + @options[:margin] * 2
|
71
|
+
|
72
|
+
# Map palette colors to 32-bit values for ChunkyPNG.
|
73
|
+
@palette = generate_palette.transform_keys &:to_sym
|
74
|
+
%i[normal bright].each { |style|
|
75
|
+
@palette[style].transform_values!(&ImageEmitter.method(:parse_color))
|
76
|
+
}
|
77
|
+
|
78
|
+
img = ChunkyPNG::Image.new width, height, @palette[:primary]['background']
|
79
|
+
x = y = 0
|
80
|
+
|
81
|
+
rects = chunks.zip(stream).flat_map { |tokens, type|
|
82
|
+
tokens.chars.map { |token|
|
83
|
+
cx, cy = x, y
|
84
|
+
nx = case token
|
85
|
+
when ' ' ; x += 1 ; cx + 1
|
86
|
+
when ?\t ; x += tw ; cx + tw
|
87
|
+
when ?\n ; x, y = 0, y + 1 ; nil
|
88
|
+
end
|
89
|
+
[cx, cy, nx, color_for(token, type)]
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
[img, rects]
|
94
|
+
end
|
95
|
+
|
96
|
+
def generate_palette
|
97
|
+
scheme = @options[:colors]
|
98
|
+
palette = SCHEMES[scheme]
|
99
|
+
palette ||= if File.exists?(scheme)
|
100
|
+
YAML.load_file(scheme)['colors']
|
101
|
+
else
|
102
|
+
warn "can't load colorscheme #{scheme}; " +
|
103
|
+
"falling back to gruvbox_dark"
|
104
|
+
SCHEMES['gruvbox_dark']
|
105
|
+
end
|
106
|
+
{stack: 'blue', flow: 'red', math: 'green', heap: 'yellow',
|
107
|
+
io: 'yellow', calls: 'cyan', number: 'magenta'}.merge palette
|
108
|
+
end
|
109
|
+
|
110
|
+
INSN_GROUPS = {
|
111
|
+
stack: %i[push pop dup swap copy slide],
|
112
|
+
flow: %i[jump jz jn ret exit],
|
113
|
+
math: %i[add sub mul div mod],
|
114
|
+
heap: %i[store load],
|
115
|
+
io: %i[ichr inum ochr onum],
|
116
|
+
calls: %i[call label]
|
117
|
+
}.flat_map { |type, insns| insns.map { |i| [i, type] } }.to_h
|
118
|
+
|
119
|
+
def color_for token, type
|
120
|
+
colors = @palette[token == ?\t ? :normal : :bright]
|
121
|
+
type = :number if type.is_a? Integer
|
122
|
+
type = INSN_GROUPS[type] unless @palette[type]
|
123
|
+
colors[@palette[type]]
|
124
|
+
end
|
125
|
+
|
126
|
+
def self.parse_color color
|
127
|
+
case color
|
128
|
+
when Integer
|
129
|
+
color << 8 | 255
|
130
|
+
else
|
131
|
+
Integer(color) << 8 | 255
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
Binary file
|
@@ -0,0 +1,1143 @@
|
|
1
|
+
schemes:
|
2
|
+
afterglow: &afterglow
|
3
|
+
primary:
|
4
|
+
background: '0x2c2c2c'
|
5
|
+
foreground: '0xd6d6d6'
|
6
|
+
dim_foreground: '0xdbdbdb'
|
7
|
+
bright_foreground: '0xd9d9d9'
|
8
|
+
dim_background: '0x202020' # not sure
|
9
|
+
bright_background: '0x3a3a3a' # not sure
|
10
|
+
cursor:
|
11
|
+
text: '0x2c2c2c'
|
12
|
+
cursor: '0xd9d9d9'
|
13
|
+
normal:
|
14
|
+
black: '0x1c1c1c'
|
15
|
+
red: '0xbc5653'
|
16
|
+
green: '0x909d63'
|
17
|
+
yellow: '0xebc17a'
|
18
|
+
blue: '0x7eaac7'
|
19
|
+
magenta: '0xaa6292'
|
20
|
+
cyan: '0x86d3ce'
|
21
|
+
white: '0xcacaca'
|
22
|
+
bright:
|
23
|
+
black: '0x636363'
|
24
|
+
red: '0xbc5653'
|
25
|
+
green: '0x909d63'
|
26
|
+
yellow: '0xebc17a'
|
27
|
+
blue: '0x7eaac7'
|
28
|
+
magenta: '0xaa6292'
|
29
|
+
cyan: '0x86d3ce'
|
30
|
+
white: '0xf7f7f7'
|
31
|
+
dim:
|
32
|
+
black: '0x232323'
|
33
|
+
red: '0x74423f'
|
34
|
+
green: '0x5e6547'
|
35
|
+
yellow: '0x8b7653'
|
36
|
+
blue: '0x556b79'
|
37
|
+
magenta: '0x6e4962'
|
38
|
+
cyan: '0x5c8482'
|
39
|
+
white: '0x828282'
|
40
|
+
|
41
|
+
argonaut: &argonaut
|
42
|
+
primary:
|
43
|
+
background: '0x292C3E'
|
44
|
+
foreground: '0xEBEBEB'
|
45
|
+
cursor:
|
46
|
+
text: '0xFF261E'
|
47
|
+
cursor: '0xFF261E'
|
48
|
+
normal:
|
49
|
+
black: '0x0d0d0d'
|
50
|
+
red: '0xFF301B'
|
51
|
+
green: '0xA0E521'
|
52
|
+
yellow: '0xFFC620'
|
53
|
+
blue: '0x1BA6FA'
|
54
|
+
magenta: '0x8763B8'
|
55
|
+
cyan: '0x21DEEF'
|
56
|
+
white: '0xEBEBEB'
|
57
|
+
bright:
|
58
|
+
black: '0x6D7070'
|
59
|
+
red: '0xFF4352'
|
60
|
+
green: '0xB8E466'
|
61
|
+
yellow: '0xFFD750'
|
62
|
+
blue: '0x1BA6FA'
|
63
|
+
magenta: '0xA578EA'
|
64
|
+
cyan: '0x73FBF1'
|
65
|
+
white: '0xFEFEF8'
|
66
|
+
|
67
|
+
ayu_dark: &ayu_dark
|
68
|
+
primary:
|
69
|
+
background: '0x0A0E14'
|
70
|
+
foreground: '0xB3B1AD'
|
71
|
+
normal:
|
72
|
+
black: '0x01060E'
|
73
|
+
red: '0xEA6C73'
|
74
|
+
green: '0x91B362'
|
75
|
+
yellow: '0xF9AF4F'
|
76
|
+
blue: '0x53BDFA'
|
77
|
+
magenta: '0xFAE994'
|
78
|
+
cyan: '0x90E1C6'
|
79
|
+
white: '0xC7C7C7'
|
80
|
+
bright:
|
81
|
+
black: '0x686868'
|
82
|
+
red: '0xF07178'
|
83
|
+
green: '0xC2D94C'
|
84
|
+
yellow: '0xFFB454'
|
85
|
+
blue: '0x59C2FF'
|
86
|
+
magenta: '0xFFEE99'
|
87
|
+
cyan: '0x95E6CB'
|
88
|
+
white: '0xFFFFFF'
|
89
|
+
|
90
|
+
base16_dark: &base16_dark
|
91
|
+
primary:
|
92
|
+
background: '0x181818'
|
93
|
+
foreground: '0xd8d8d8'
|
94
|
+
cursor:
|
95
|
+
text: '0xd8d8d8'
|
96
|
+
cursor: '0xd8d8d8'
|
97
|
+
normal:
|
98
|
+
black: '0x181818'
|
99
|
+
red: '0xab4642'
|
100
|
+
green: '0xa1b56c'
|
101
|
+
yellow: '0xf7ca88'
|
102
|
+
blue: '0x7cafc2'
|
103
|
+
magenta: '0xba8baf'
|
104
|
+
cyan: '0x86c1b9'
|
105
|
+
white: '0xd8d8d8'
|
106
|
+
bright:
|
107
|
+
black: '0x585858'
|
108
|
+
red: '0xab4642'
|
109
|
+
green: '0xa1b56c'
|
110
|
+
yellow: '0xf7ca88'
|
111
|
+
blue: '0x7cafc2'
|
112
|
+
magenta: '0xba8baf'
|
113
|
+
cyan: '0x86c1b9'
|
114
|
+
white: '0xf8f8f8'
|
115
|
+
|
116
|
+
blood_moon: &blood_moon
|
117
|
+
primary:
|
118
|
+
background: '0x10100E'
|
119
|
+
foreground: '0xC6C6C4'
|
120
|
+
normal:
|
121
|
+
black: '0x10100E'
|
122
|
+
red: '0xC40233'
|
123
|
+
green: '0x009F6B'
|
124
|
+
yellow: '0xFFD700'
|
125
|
+
blue: '0x0087BD'
|
126
|
+
magenta: '0x9A4EAE'
|
127
|
+
cyan: '0x20B2AA'
|
128
|
+
white: '0xC6C6C4'
|
129
|
+
bright:
|
130
|
+
black: '0x696969'
|
131
|
+
red: '0xFF2400'
|
132
|
+
green: '0x03C03C'
|
133
|
+
yellow: '0xFDFF00'
|
134
|
+
blue: '0x007FFF'
|
135
|
+
magenta: '0xFF1493'
|
136
|
+
cyan: '0x00CCCC'
|
137
|
+
white: '0xFFFAFA'
|
138
|
+
|
139
|
+
breeze: &breeze
|
140
|
+
primary:
|
141
|
+
background: '0x232627'
|
142
|
+
foreground: '0xfcfcfc'
|
143
|
+
dim_foreground: '0xeff0f1'
|
144
|
+
bright_foreground: '0xffffff'
|
145
|
+
dim_background: '0x31363b'
|
146
|
+
bright_background: '0x000000'
|
147
|
+
normal:
|
148
|
+
black: '0x232627'
|
149
|
+
red: '0xed1515'
|
150
|
+
green: '0x11d116'
|
151
|
+
yellow: '0xf67400'
|
152
|
+
blue: '0x1d99f3'
|
153
|
+
magenta: '0x9b59b6'
|
154
|
+
cyan: '0x1abc9c'
|
155
|
+
white: '0xfcfcfc'
|
156
|
+
bright:
|
157
|
+
black: '0x7f8c8d'
|
158
|
+
red: '0xc0392b'
|
159
|
+
green: '0x1cdc9a'
|
160
|
+
yellow: '0xfdbc4b'
|
161
|
+
blue: '0x3daee9'
|
162
|
+
magenta: '0x8e44ad'
|
163
|
+
cyan: '0x16a085'
|
164
|
+
white: '0xffffff'
|
165
|
+
dim:
|
166
|
+
black: '0x31363b'
|
167
|
+
red: '0x783228'
|
168
|
+
green: '0x17a262'
|
169
|
+
yellow: '0xb65619'
|
170
|
+
blue: '0x1b668f'
|
171
|
+
magenta: '0x614a73'
|
172
|
+
cyan: '0x186c60'
|
173
|
+
white: '0x63686d'
|
174
|
+
|
175
|
+
campbell: &campbell
|
176
|
+
primary:
|
177
|
+
background: '0x0c0c0c'
|
178
|
+
foreground: '0xcccccc'
|
179
|
+
normal:
|
180
|
+
black: '0x0c0c0c'
|
181
|
+
red: '0xc50f1f'
|
182
|
+
green: '0x13a10e'
|
183
|
+
yellow: '0xc19c00'
|
184
|
+
blue: '0x0037da'
|
185
|
+
magenta: '0x881798'
|
186
|
+
cyan: '0x3a96dd'
|
187
|
+
white: '0xcccccc'
|
188
|
+
bright:
|
189
|
+
black: '0x767676'
|
190
|
+
red: '0xe74856'
|
191
|
+
green: '0x16c60c'
|
192
|
+
yellow: '0xf9f1a5'
|
193
|
+
blue: '0x3b78ff'
|
194
|
+
magenta: '0xb4009e'
|
195
|
+
cyan: '0x61d6d6'
|
196
|
+
white: '0xf2f2f2'
|
197
|
+
|
198
|
+
challenger_deep: &challenger_deep
|
199
|
+
primary:
|
200
|
+
background: '0x1e1c31'
|
201
|
+
foreground: '0xcbe1e7'
|
202
|
+
cursor:
|
203
|
+
text: '0xff271d'
|
204
|
+
cursor: '0xfbfcfc'
|
205
|
+
normal:
|
206
|
+
black: '0x141228'
|
207
|
+
red: '0xff5458'
|
208
|
+
green: '0x62d196'
|
209
|
+
yellow: '0xffb378'
|
210
|
+
blue: '0x65b2ff'
|
211
|
+
magenta: '0x906cff'
|
212
|
+
cyan: '0x63f2f1'
|
213
|
+
white: '0xa6b3cc'
|
214
|
+
bright:
|
215
|
+
black: '0x565575'
|
216
|
+
red: '0xff8080'
|
217
|
+
green: '0x95ffa4'
|
218
|
+
yellow: '0xffe9aa'
|
219
|
+
blue: '0x91ddff'
|
220
|
+
magenta: '0xc991e1'
|
221
|
+
cyan: '0xaaffe4'
|
222
|
+
white: '0xcbe3e7'
|
223
|
+
|
224
|
+
Cobalt2: &Cobalt2
|
225
|
+
primary:
|
226
|
+
background: '0x122637'
|
227
|
+
foreground: '0xffffff'
|
228
|
+
cursor:
|
229
|
+
text: '0x122637'
|
230
|
+
cursor: '0xf0cb09'
|
231
|
+
normal:
|
232
|
+
black: '0x000000'
|
233
|
+
red: '0xff0000'
|
234
|
+
green: '0x37dd21'
|
235
|
+
yellow: '0xfee409'
|
236
|
+
blue: '0x1460d2'
|
237
|
+
magenta: '0xff005d'
|
238
|
+
cyan: '0x00bbbb'
|
239
|
+
white: '0xbbbbbb'
|
240
|
+
bright:
|
241
|
+
black: '0x545454'
|
242
|
+
red: '0xf40d17'
|
243
|
+
green: '0x3bcf1d'
|
244
|
+
yellow: '0xecc809'
|
245
|
+
blue: '0x5555ff'
|
246
|
+
magenta: '0xff55ff'
|
247
|
+
cyan: '0x6ae3f9'
|
248
|
+
white: '0xffffff'
|
249
|
+
|
250
|
+
cyber_punk_neon: &cyber_punk_neon
|
251
|
+
primary:
|
252
|
+
background: "0x000b1e"
|
253
|
+
foreground: "0x0abdc6"
|
254
|
+
cursor:
|
255
|
+
text: "0x000b1e"
|
256
|
+
cursor: "0x0abdc6"
|
257
|
+
normal:
|
258
|
+
black: "0x123e7c"
|
259
|
+
red: "0xff0000"
|
260
|
+
green: "0xd300c4"
|
261
|
+
yellow: "0xf57800"
|
262
|
+
blue: "0x123e7c"
|
263
|
+
magenta: "0x711c91"
|
264
|
+
cyan: "0x0abdc6"
|
265
|
+
white: "0xd7d7d5"
|
266
|
+
bright:
|
267
|
+
black: "0x1c61c2"
|
268
|
+
red: "0xff0000"
|
269
|
+
green: "0xd300c4"
|
270
|
+
yellow: "0xf57800"
|
271
|
+
blue: "0x00ff00"
|
272
|
+
magenta: "0x711c91"
|
273
|
+
cyan: "0x0abdc6"
|
274
|
+
white: "0xd7d7d5"
|
275
|
+
|
276
|
+
darcula: &darcula
|
277
|
+
primary:
|
278
|
+
background: '0x282a36'
|
279
|
+
foreground: '0xf8f8f2'
|
280
|
+
normal:
|
281
|
+
black: '0x000000'
|
282
|
+
red: '0xff5555'
|
283
|
+
green: '0x50fa7b'
|
284
|
+
yellow: '0xf1fa8c'
|
285
|
+
blue: '0xcaa9fa'
|
286
|
+
magenta: '0xff79c6'
|
287
|
+
cyan: '0x8be9fd'
|
288
|
+
white: '0xbfbfbf'
|
289
|
+
bright:
|
290
|
+
black: '0x282a35'
|
291
|
+
red: '0xff6e67'
|
292
|
+
green: '0x5af78e'
|
293
|
+
yellow: '0xf4f99d'
|
294
|
+
blue: '0xcaa9fa'
|
295
|
+
magenta: '0xff92d0'
|
296
|
+
cyan: '0x9aedfe'
|
297
|
+
white: '0xe6e6e6'
|
298
|
+
|
299
|
+
dark_pastels: &dark_pastels
|
300
|
+
primary:
|
301
|
+
background: '0x2C2C2C'
|
302
|
+
foreground: '0xDCDCCC'
|
303
|
+
normal:
|
304
|
+
black: '0x3F3F3F'
|
305
|
+
red: '0x705050'
|
306
|
+
green: '0x60B48A'
|
307
|
+
yellow: '0xDFAF8F'
|
308
|
+
blue: '0x9AB8D7'
|
309
|
+
magenta: '0xDC8CC3'
|
310
|
+
cyan: '0x8CD0D3'
|
311
|
+
white: '0xDCDCCC'
|
312
|
+
bright:
|
313
|
+
black: '0x709080'
|
314
|
+
red: '0xDCA3A3'
|
315
|
+
green: '0x72D5A3'
|
316
|
+
yellow: '0xF0DFAF'
|
317
|
+
blue: '0x94BFF3'
|
318
|
+
magenta: '0xEC93D3'
|
319
|
+
cyan: '0x93E0E3'
|
320
|
+
white: '0xFFFFFF'
|
321
|
+
|
322
|
+
doom_one: &doom_one
|
323
|
+
primary:
|
324
|
+
background: '0x282c34'
|
325
|
+
foreground: '0xbbc2cf'
|
326
|
+
normal:
|
327
|
+
black: '0x282c34'
|
328
|
+
red: '0xff6c6b'
|
329
|
+
green: '0x98be65'
|
330
|
+
yellow: '0xecbe7b'
|
331
|
+
blue: '0x51afef'
|
332
|
+
magenta: '0xc678dd'
|
333
|
+
cyan: '0x46d9ff'
|
334
|
+
white: '0xbbc2cf'
|
335
|
+
|
336
|
+
dracula: &dracula
|
337
|
+
primary:
|
338
|
+
background: '0x282a36'
|
339
|
+
foreground: '0xf8f8f2'
|
340
|
+
normal:
|
341
|
+
black: '0x000000'
|
342
|
+
red: '0xff5555'
|
343
|
+
green: '0x50fa7b'
|
344
|
+
yellow: '0xf1fa8c'
|
345
|
+
blue: '0xbd93f9'
|
346
|
+
magenta: '0xff79c6'
|
347
|
+
cyan: '0x8be9fd'
|
348
|
+
white: '0xbbbbbb'
|
349
|
+
bright:
|
350
|
+
black: '0x555555'
|
351
|
+
red: '0xff5555'
|
352
|
+
green: '0x50fa7b'
|
353
|
+
yellow: '0xf1fa8c'
|
354
|
+
blue: '0xcaa9fa'
|
355
|
+
magenta: '0xff79c6'
|
356
|
+
cyan: '0x8be9fd'
|
357
|
+
white: '0xffffff'
|
358
|
+
|
359
|
+
falcon: &falcon
|
360
|
+
primary:
|
361
|
+
background: '0x020221'
|
362
|
+
foreground: '0xb4b4b9'
|
363
|
+
cursor:
|
364
|
+
text: '0x020221'
|
365
|
+
cursor: '0xffe8c0'
|
366
|
+
normal:
|
367
|
+
black: '0x000004'
|
368
|
+
red: '0xff3600'
|
369
|
+
green: '0x718e3f'
|
370
|
+
yellow: '0xffc552'
|
371
|
+
blue: '0x635196'
|
372
|
+
magenta: '0xff761a'
|
373
|
+
cyan: '0x34bfa4'
|
374
|
+
white: '0xb4b4b9'
|
375
|
+
bright:
|
376
|
+
black: '0x020221'
|
377
|
+
red: '0xff8e78'
|
378
|
+
green: '0xb1bf75'
|
379
|
+
yellow: '0xffd392'
|
380
|
+
blue: '0x99a4bc'
|
381
|
+
magenta: '0xffb07b'
|
382
|
+
cyan: '0x8bccbf'
|
383
|
+
white: '0xf8f8ff'
|
384
|
+
|
385
|
+
flat_remix: &flat_remix
|
386
|
+
primary:
|
387
|
+
background: '0x272a34'
|
388
|
+
foreground: '0xFFFFFF'
|
389
|
+
normal:
|
390
|
+
black: '0x1F2229'
|
391
|
+
red: '0xEC0101'
|
392
|
+
green: '0x47D4B9'
|
393
|
+
yellow: '0xFF8A18'
|
394
|
+
blue: '0x277FFF'
|
395
|
+
magenta: '0xD71655'
|
396
|
+
cyan: '0x05A1F7'
|
397
|
+
white: '0xFFFFFF'
|
398
|
+
bright:
|
399
|
+
black: '0x1F2229'
|
400
|
+
red: '0xD41919'
|
401
|
+
green: '0x5EBDAB'
|
402
|
+
yellow: '0xFEA44C'
|
403
|
+
blue: '0x367bf0'
|
404
|
+
magenta: '0xBF2E5D'
|
405
|
+
cyan: '0x49AEE6'
|
406
|
+
white: '0xFFFFFF'
|
407
|
+
|
408
|
+
gotham: &gotham
|
409
|
+
primary:
|
410
|
+
background: '0x0a0f14'
|
411
|
+
foreground: '0x98d1ce'
|
412
|
+
normal:
|
413
|
+
black: '0x0a0f14'
|
414
|
+
red: '0xc33027'
|
415
|
+
green: '0x26a98b'
|
416
|
+
yellow: '0xedb54b'
|
417
|
+
blue: '0x195465'
|
418
|
+
magenta: '0x4e5165'
|
419
|
+
cyan: '0x33859d'
|
420
|
+
white: '0x98d1ce'
|
421
|
+
bright:
|
422
|
+
black: '0x10151b'
|
423
|
+
red: '0xd26939'
|
424
|
+
green: '0x081f2d'
|
425
|
+
yellow: '0x245361'
|
426
|
+
blue: '0x093748'
|
427
|
+
magenta: '0x888ba5'
|
428
|
+
cyan: '0x599caa'
|
429
|
+
white: '0xd3ebe9'
|
430
|
+
|
431
|
+
gruvbox_dark: &gruvbox_dark
|
432
|
+
primary:
|
433
|
+
# hard contrast: background = '0x1d2021'
|
434
|
+
background: '0x282828'
|
435
|
+
# soft contrast: background = '0x32302f'
|
436
|
+
foreground: '0xebdbb2'
|
437
|
+
normal:
|
438
|
+
black: '0x282828'
|
439
|
+
red: '0xcc241d'
|
440
|
+
green: '0x98971a'
|
441
|
+
yellow: '0xd79921'
|
442
|
+
blue: '0x458588'
|
443
|
+
magenta: '0xb16286'
|
444
|
+
cyan: '0x689d6a'
|
445
|
+
white: '0xa89984'
|
446
|
+
bright:
|
447
|
+
black: '0x928374'
|
448
|
+
red: '0xfb4934'
|
449
|
+
green: '0xb8bb26'
|
450
|
+
yellow: '0xfabd2f'
|
451
|
+
blue: '0x83a598'
|
452
|
+
magenta: '0xd3869b'
|
453
|
+
cyan: '0x8ec07c'
|
454
|
+
white: '0xebdbb2'
|
455
|
+
|
456
|
+
gruvbox_light: &gruvbox_light
|
457
|
+
primary:
|
458
|
+
# hard contrast: background = '0xf9f5d7'
|
459
|
+
background: '0xfbf1c7'
|
460
|
+
# soft contrast: background = '0xf2e5bc'
|
461
|
+
foreground: '0x3c3836'
|
462
|
+
normal:
|
463
|
+
black: '0xfbf1c7'
|
464
|
+
red: '0xcc241d'
|
465
|
+
green: '0x98971a'
|
466
|
+
yellow: '0xd79921'
|
467
|
+
blue: '0x458588'
|
468
|
+
magenta: '0xb16286'
|
469
|
+
cyan: '0x689d6a'
|
470
|
+
white: '0x7c6f64'
|
471
|
+
bright:
|
472
|
+
black: '0x928374'
|
473
|
+
red: '0x9d0006'
|
474
|
+
green: '0x79740e'
|
475
|
+
yellow: '0xb57614'
|
476
|
+
blue: '0x076678'
|
477
|
+
magenta: '0x8f3f71'
|
478
|
+
cyan: '0x427b58'
|
479
|
+
white: '0x3c3836'
|
480
|
+
|
481
|
+
gruvbox_material: &gruvbox_material
|
482
|
+
primary:
|
483
|
+
background: '0x282828'
|
484
|
+
foreground: '0xdfbf8e'
|
485
|
+
normal:
|
486
|
+
black: '0x665c54'
|
487
|
+
red: '0xea6962'
|
488
|
+
green: '0xa9b665'
|
489
|
+
yellow: '0xe78a4e'
|
490
|
+
blue: '0x7daea3'
|
491
|
+
magenta: '0xd3869b'
|
492
|
+
cyan: '0x89b482'
|
493
|
+
white: '0xdfbf8e'
|
494
|
+
bright:
|
495
|
+
black: '0x928374'
|
496
|
+
red: '0xea6962'
|
497
|
+
green: '0xa9b665'
|
498
|
+
yellow: '0xe3a84e'
|
499
|
+
blue: '0x7daea3'
|
500
|
+
magenta: '0xd3869b'
|
501
|
+
cyan: '0x89b482'
|
502
|
+
white: '0xdfbf8e'
|
503
|
+
|
504
|
+
high_contrast: &high_contrast
|
505
|
+
primary:
|
506
|
+
background: '0x444444'
|
507
|
+
foreground: '0xdddddd'
|
508
|
+
cursor:
|
509
|
+
text: '0xaaaaaa'
|
510
|
+
cursor: '0xffffff'
|
511
|
+
normal:
|
512
|
+
black: '0x000000'
|
513
|
+
red: '0xff0000'
|
514
|
+
green: '0x00ff00'
|
515
|
+
yellow: '0xffff00'
|
516
|
+
blue: '0x0000ff'
|
517
|
+
magenta: '0xff00ff'
|
518
|
+
cyan: '0x00ffff'
|
519
|
+
white: '0xffffff'
|
520
|
+
bright:
|
521
|
+
black: '0x000000'
|
522
|
+
red: '0xff0000'
|
523
|
+
green: '0x00ff00'
|
524
|
+
yellow: '0xffff00'
|
525
|
+
blue: '0x0000ff'
|
526
|
+
magenta: '0xff00ff'
|
527
|
+
cyan: '0x00ffff'
|
528
|
+
white: '0xffffff'
|
529
|
+
|
530
|
+
horizon-dark: &horizon-dark
|
531
|
+
primary:
|
532
|
+
background: '0x1c1e26'
|
533
|
+
foreground: '0xe0e0e0'
|
534
|
+
normal:
|
535
|
+
black: '0x16161c'
|
536
|
+
red: '0xe95678'
|
537
|
+
green: '0x29d398'
|
538
|
+
yellow: '0xfab795'
|
539
|
+
blue: '0x26bbd9'
|
540
|
+
magenta: '0xee64ac'
|
541
|
+
cyan: '0x59e1e3'
|
542
|
+
white: '0xd5d8da'
|
543
|
+
bright:
|
544
|
+
black: '0x5b5858'
|
545
|
+
red: '0xec6a88'
|
546
|
+
green: '0x3fdaa4'
|
547
|
+
yellow: '0xfbc3a7'
|
548
|
+
blue: '0x3fc4de'
|
549
|
+
magenta: '0xf075b5'
|
550
|
+
cyan: '0x6be4e6'
|
551
|
+
white: '0xd5d8da'
|
552
|
+
|
553
|
+
hyper: &hyper
|
554
|
+
primary:
|
555
|
+
background: '0x000000'
|
556
|
+
foreground: '0xffffff'
|
557
|
+
cursor:
|
558
|
+
text: '0xF81CE5'
|
559
|
+
cursor: '0xffffff'
|
560
|
+
normal:
|
561
|
+
black: '0x000000'
|
562
|
+
red: '0xfe0100'
|
563
|
+
green: '0x33ff00'
|
564
|
+
yellow: '0xfeff00'
|
565
|
+
blue: '0x0066ff'
|
566
|
+
magenta: '0xcc00ff'
|
567
|
+
cyan: '0x00ffff'
|
568
|
+
white: '0xd0d0d0'
|
569
|
+
bright:
|
570
|
+
black: '0x808080'
|
571
|
+
red: '0xfe0100'
|
572
|
+
green: '0x33ff00'
|
573
|
+
yellow: '0xfeff00'
|
574
|
+
blue: '0x0066ff'
|
575
|
+
magenta: '0xcc00ff'
|
576
|
+
cyan: '0x00ffff'
|
577
|
+
white: '0xFFFFFF'
|
578
|
+
|
579
|
+
iterm_default: &iterm_default
|
580
|
+
primary:
|
581
|
+
background: '0x101421'
|
582
|
+
foreground: '0xfffbf6'
|
583
|
+
normal:
|
584
|
+
black: '0x2e2e2e'
|
585
|
+
red: '0xeb4129'
|
586
|
+
green: '0xabe047'
|
587
|
+
yellow: '0xf6c744'
|
588
|
+
blue: '0x47a0f3'
|
589
|
+
magenta: '0x7b5cb0'
|
590
|
+
cyan: '0x64dbed'
|
591
|
+
white: '0xe5e9f0'
|
592
|
+
bright:
|
593
|
+
black: '0x565656'
|
594
|
+
red: '0xec5357'
|
595
|
+
green: '0xc0e17d'
|
596
|
+
yellow: '0xf9da6a'
|
597
|
+
blue: '0x49a4f8'
|
598
|
+
magenta: '0xa47de9'
|
599
|
+
cyan: '0x99faf2'
|
600
|
+
white: '0xffffff'
|
601
|
+
|
602
|
+
low_contrast: &low_contrast
|
603
|
+
primary:
|
604
|
+
background: '0x333333'
|
605
|
+
foreground: '0xdddddd'
|
606
|
+
cursor:
|
607
|
+
text: '0xaaaaaa'
|
608
|
+
cursor: '0xffffff'
|
609
|
+
normal:
|
610
|
+
black: '0x000000'
|
611
|
+
red: '0xbb0000'
|
612
|
+
green: '0x00bb00'
|
613
|
+
yellow: '0xbbbb00'
|
614
|
+
blue: '0x0000bb'
|
615
|
+
magenta: '0xbb00bb'
|
616
|
+
cyan: '0x00bbbb'
|
617
|
+
white: '0xbbbbbb'
|
618
|
+
bright:
|
619
|
+
black: '0x000000'
|
620
|
+
red: '0xbb0000'
|
621
|
+
green: '0x00bb00'
|
622
|
+
yellow: '0xbbbb00'
|
623
|
+
blue: '0x0000bb'
|
624
|
+
magenta: '0xbb00bb'
|
625
|
+
cyan: '0x00bbbb'
|
626
|
+
white: '0xbbbbbb'
|
627
|
+
|
628
|
+
material_theme: &material_theme
|
629
|
+
primary:
|
630
|
+
background: '0x1e282d'
|
631
|
+
foreground: '0xc4c7d1'
|
632
|
+
normal:
|
633
|
+
black: '0x666666'
|
634
|
+
red: '0xeb606b'
|
635
|
+
green: '0xc3e88d'
|
636
|
+
yellow: '0xf7eb95'
|
637
|
+
blue: '0x80cbc4'
|
638
|
+
magenta: '0xff2f90'
|
639
|
+
cyan: '0xaeddff'
|
640
|
+
white: '0xffffff'
|
641
|
+
bright:
|
642
|
+
black: '0xff262b'
|
643
|
+
red: '0xeb606b'
|
644
|
+
green: '0xc3e88d'
|
645
|
+
yellow: '0xf7eb95'
|
646
|
+
blue: '0x7dc6bf'
|
647
|
+
magenta: '0x6c71c4'
|
648
|
+
cyan: '0x35434d'
|
649
|
+
white: '0xffffff'
|
650
|
+
|
651
|
+
material_theme_mod: &material_theme_mod
|
652
|
+
primary:
|
653
|
+
background: '0x1e282d'
|
654
|
+
foreground: '0xc4c7d1'
|
655
|
+
normal:
|
656
|
+
black: '0x666666'
|
657
|
+
red: '0xeb606b'
|
658
|
+
green: '0xc3e88d'
|
659
|
+
yellow: '0xf7eb95'
|
660
|
+
blue: '0x80cbc4'
|
661
|
+
magenta: '0xff2f90'
|
662
|
+
cyan: '0xaeddff'
|
663
|
+
white: '0xffffff'
|
664
|
+
bright:
|
665
|
+
black: '0xa1a1a1'
|
666
|
+
red: '0xeb606b'
|
667
|
+
green: '0xc3e88d'
|
668
|
+
yellow: '0xf7eb95'
|
669
|
+
blue: '0x7dc6bf'
|
670
|
+
magenta: '0x6c71c4'
|
671
|
+
cyan: '0x35434d'
|
672
|
+
white: '0xffffff'
|
673
|
+
|
674
|
+
nord: &nord
|
675
|
+
primary:
|
676
|
+
background: '0x2E3440'
|
677
|
+
foreground: '0xD8DEE9'
|
678
|
+
normal:
|
679
|
+
black: '0x3B4252'
|
680
|
+
red: '0xBF616A'
|
681
|
+
green: '0xA3BE8C'
|
682
|
+
yellow: '0xEBCB8B'
|
683
|
+
blue: '0x81A1C1'
|
684
|
+
magenta: '0xB48EAD'
|
685
|
+
cyan: '0x88C0D0'
|
686
|
+
white: '0xE5E9F0'
|
687
|
+
bright:
|
688
|
+
black: '0x4C566A'
|
689
|
+
red: '0xBF616A'
|
690
|
+
green: '0xA3BE8C'
|
691
|
+
yellow: '0xEBCB8B'
|
692
|
+
blue: '0x81A1C1'
|
693
|
+
magenta: '0xB48EAD'
|
694
|
+
cyan: '0x8FBCBB'
|
695
|
+
white: '0xECEFF4'
|
696
|
+
|
697
|
+
oceanic_next: &oceanic_next
|
698
|
+
primary:
|
699
|
+
background: '0x1b2b34'
|
700
|
+
foreground: '0xd8dee9'
|
701
|
+
normal:
|
702
|
+
black: '0x29414f'
|
703
|
+
red: '0xec5f67'
|
704
|
+
green: '0x99c794'
|
705
|
+
yellow: '0xfac863'
|
706
|
+
blue: '0x6699cc'
|
707
|
+
magenta: '0xc594c5'
|
708
|
+
cyan: '0x5fb3b3'
|
709
|
+
white: '0x65737e'
|
710
|
+
bright:
|
711
|
+
black: '0x405860'
|
712
|
+
red: '0xec5f67'
|
713
|
+
green: '0x99c794'
|
714
|
+
yellow: '0xfac863'
|
715
|
+
blue: '0x6699cc'
|
716
|
+
magenta: '0xc594c5'
|
717
|
+
cyan: '0x5fb3b3'
|
718
|
+
white: '0xadb5c0'
|
719
|
+
|
720
|
+
one_dark: &one_dark
|
721
|
+
primary:
|
722
|
+
background: '0x1e2127'
|
723
|
+
foreground: '0xabb2bf'
|
724
|
+
normal:
|
725
|
+
black: '0x1e2127'
|
726
|
+
red: '0xe06c75'
|
727
|
+
green: '0x98c379'
|
728
|
+
yellow: '0xd19a66'
|
729
|
+
blue: '0x61afef'
|
730
|
+
magenta: '0xc678dd'
|
731
|
+
cyan: '0x56b6c2'
|
732
|
+
white: '0xabb2bf'
|
733
|
+
bright:
|
734
|
+
black: '0x5c6370'
|
735
|
+
red: '0xe06c75'
|
736
|
+
green: '0x98c379'
|
737
|
+
yellow: '0xd19a66'
|
738
|
+
blue: '0x61afef'
|
739
|
+
magenta: '0xc678dd'
|
740
|
+
cyan: '0x56b6c2'
|
741
|
+
white: '0xffffff'
|
742
|
+
|
743
|
+
papercolor_light: &papercolor_light
|
744
|
+
primary:
|
745
|
+
background: '0xeeeeee'
|
746
|
+
foreground: '0x878787'
|
747
|
+
cursor:
|
748
|
+
text: '0xeeeeee'
|
749
|
+
cursor: '0x878787'
|
750
|
+
normal:
|
751
|
+
black: '0xeeeeee'
|
752
|
+
red: '0xaf0000'
|
753
|
+
green: '0x008700'
|
754
|
+
yellow: '0x5f8700'
|
755
|
+
blue: '0x0087af'
|
756
|
+
magenta: '0x878787'
|
757
|
+
cyan: '0x005f87'
|
758
|
+
white: '0x444444'
|
759
|
+
bright:
|
760
|
+
black: '0xbcbcbc'
|
761
|
+
red: '0xd70000'
|
762
|
+
green: '0xd70087'
|
763
|
+
yellow: '0x8700af'
|
764
|
+
blue: '0xd75f00'
|
765
|
+
magenta: '0xd75f00'
|
766
|
+
cyan: '0x005faf'
|
767
|
+
white: '0x005f87'
|
768
|
+
|
769
|
+
pencil_dark: &pencil_dark
|
770
|
+
primary:
|
771
|
+
background: '0x212121'
|
772
|
+
foreground: '0xf1f1f1'
|
773
|
+
normal:
|
774
|
+
black: '0x212121'
|
775
|
+
red: '0xc30771'
|
776
|
+
green: '0x10a778'
|
777
|
+
yellow: '0xa89c14'
|
778
|
+
blue: '0x008ec4'
|
779
|
+
magenta: '0x523c79'
|
780
|
+
cyan: '0x20a5ba'
|
781
|
+
white: '0xe0e0e0'
|
782
|
+
bright:
|
783
|
+
black: '0x818181'
|
784
|
+
red: '0xfb007a'
|
785
|
+
green: '0x5fd7af'
|
786
|
+
yellow: '0xf3e430'
|
787
|
+
blue: '0x20bbfc'
|
788
|
+
magenta: '0x6855de'
|
789
|
+
cyan: '0x4fb8cc'
|
790
|
+
white: '0xf1f1f1'
|
791
|
+
|
792
|
+
pencil_light: &pencil_light
|
793
|
+
primary:
|
794
|
+
background: '0xf1f1f1'
|
795
|
+
foreground: '0x424242'
|
796
|
+
normal:
|
797
|
+
black: '0x212121'
|
798
|
+
red: '0xc30771'
|
799
|
+
green: '0x10a778'
|
800
|
+
yellow: '0xa89c14'
|
801
|
+
blue: '0x008ec4'
|
802
|
+
magenta: '0x523c79'
|
803
|
+
cyan: '0x20a5ba'
|
804
|
+
white: '0xe0e0e0'
|
805
|
+
bright:
|
806
|
+
black: '0x212121'
|
807
|
+
red: '0xfb007a'
|
808
|
+
green: '0x5fd7af'
|
809
|
+
yellow: '0xf3e430'
|
810
|
+
blue: '0x20bbfc'
|
811
|
+
magenta: '0x6855de'
|
812
|
+
cyan: '0x4fb8cc'
|
813
|
+
white: '0xf1f1f1'
|
814
|
+
|
815
|
+
snazzy: &snazzy
|
816
|
+
primary:
|
817
|
+
background: '0x282a36'
|
818
|
+
foreground: '0xeff0eb'
|
819
|
+
normal:
|
820
|
+
black: '0x282a36'
|
821
|
+
red: '0xff5c57'
|
822
|
+
green: '0x5af78e'
|
823
|
+
yellow: '0xf3f99d'
|
824
|
+
blue: '0x57c7ff'
|
825
|
+
magenta: '0xff6ac1'
|
826
|
+
cyan: '0x9aedfe'
|
827
|
+
white: '0xf1f1f0'
|
828
|
+
bright:
|
829
|
+
black: '0x686868'
|
830
|
+
red: '0xff5c57'
|
831
|
+
green: '0x5af78e'
|
832
|
+
yellow: '0xf3f99d'
|
833
|
+
blue: '0x57c7ff'
|
834
|
+
magenta: '0xff6ac1'
|
835
|
+
cyan: '0x9aedfe'
|
836
|
+
white: '0xf1f1f0'
|
837
|
+
|
838
|
+
solarized_dark: &solarized_dark
|
839
|
+
primary:
|
840
|
+
background: '0x002b36'
|
841
|
+
foreground: '0x839496'
|
842
|
+
normal:
|
843
|
+
black: '0x073642'
|
844
|
+
red: '0xdc322f'
|
845
|
+
green: '0x859900'
|
846
|
+
yellow: '0xb58900'
|
847
|
+
blue: '0x268bd2'
|
848
|
+
magenta: '0xd33682'
|
849
|
+
cyan: '0x2aa198'
|
850
|
+
white: '0xeee8d5'
|
851
|
+
bright:
|
852
|
+
black: '0x002b36'
|
853
|
+
red: '0xcb4b16'
|
854
|
+
green: '0x586e75'
|
855
|
+
yellow: '0x657b83'
|
856
|
+
blue: '0x839496'
|
857
|
+
magenta: '0x6c71c4'
|
858
|
+
cyan: '0x93a1a1'
|
859
|
+
white: '0xfdf6e3'
|
860
|
+
|
861
|
+
solarized_light: &solarized_light
|
862
|
+
primary:
|
863
|
+
background: '0xfdf6e3'
|
864
|
+
foreground: '0x586e75'
|
865
|
+
normal:
|
866
|
+
black: '0x073642'
|
867
|
+
red: '0xdc322f'
|
868
|
+
green: '0x859900'
|
869
|
+
yellow: '0xb58900'
|
870
|
+
blue: '0x268bd2'
|
871
|
+
magenta: '0xd33682'
|
872
|
+
cyan: '0x2aa198'
|
873
|
+
white: '0xeee8d5'
|
874
|
+
bright:
|
875
|
+
black: '0x002b36'
|
876
|
+
red: '0xcb4b16'
|
877
|
+
green: '0x586e75'
|
878
|
+
yellow: '0x657b83'
|
879
|
+
blue: '0x839496'
|
880
|
+
magenta: '0x6c71c4'
|
881
|
+
cyan: '0x93a1a1'
|
882
|
+
white: '0xfdf6e3'
|
883
|
+
|
884
|
+
taerminal: &taerminal
|
885
|
+
primary:
|
886
|
+
background: '0x26282a'
|
887
|
+
foreground: '0xf0f0f0'
|
888
|
+
cursor:
|
889
|
+
background: '0xf0f0f0'
|
890
|
+
foreground: '0x26282a'
|
891
|
+
normal:
|
892
|
+
black: '0x26282a'
|
893
|
+
red: '0xff8878'
|
894
|
+
green: '0xb4fb73'
|
895
|
+
yellow: '0xfffcb7'
|
896
|
+
blue: '0x8bbce5'
|
897
|
+
magenta: '0xffb2fe'
|
898
|
+
cyan: '0xa2e1f8'
|
899
|
+
white: '0xf1f1f1'
|
900
|
+
bright:
|
901
|
+
black: '0x6f6f6f'
|
902
|
+
red: '0xfe978b'
|
903
|
+
green: '0xd6fcba'
|
904
|
+
yellow: '0xfffed5'
|
905
|
+
blue: '0xc2e3ff'
|
906
|
+
magenta: '0xffc6ff'
|
907
|
+
cyan: '0xc0e9f8'
|
908
|
+
white: '0xffffff'
|
909
|
+
|
910
|
+
tango_dark: &tango_dark
|
911
|
+
primary:
|
912
|
+
background: '0x2e3436'
|
913
|
+
foreground: '0xd3d7cf'
|
914
|
+
normal:
|
915
|
+
black: '0x2e3436'
|
916
|
+
red: '0xcc0000'
|
917
|
+
green: '0x4e9a06'
|
918
|
+
yellow: '0xc4a000'
|
919
|
+
blue: '0x3465a4'
|
920
|
+
magenta: '0x75507b'
|
921
|
+
cyan: '0x06989a'
|
922
|
+
white: '0xd3d7cf'
|
923
|
+
bright:
|
924
|
+
black: '0x555753'
|
925
|
+
red: '0xef2929'
|
926
|
+
green: '0x8ae234'
|
927
|
+
yellow: '0xfce94f'
|
928
|
+
blue: '0x729fcf'
|
929
|
+
magenta: '0xad7fa8'
|
930
|
+
cyan: '0x34e2e2'
|
931
|
+
white: '0xeeeeec'
|
932
|
+
|
933
|
+
tender: &tender
|
934
|
+
primary:
|
935
|
+
background: '0x282828'
|
936
|
+
foreground: '0xeeeeee'
|
937
|
+
normal:
|
938
|
+
black: '0x282828'
|
939
|
+
red: '0xf43753'
|
940
|
+
green: '0xc9d05c'
|
941
|
+
yellow: '0xffc24b'
|
942
|
+
blue: '0xb3deef'
|
943
|
+
magenta: '0xd3b987'
|
944
|
+
cyan: '0x73cef4'
|
945
|
+
white: '0xeeeeee'
|
946
|
+
bright:
|
947
|
+
black: '0x4c4c4c'
|
948
|
+
red: '0xf43753'
|
949
|
+
green: '0xc9d05c'
|
950
|
+
yellow: '0xffc24b'
|
951
|
+
blue: '0xb3deef'
|
952
|
+
magenta: '0xd3b987'
|
953
|
+
cyan: '0x73cef4'
|
954
|
+
white: '0xfeffff'
|
955
|
+
|
956
|
+
terminal_app: &terminal_app
|
957
|
+
primary:
|
958
|
+
background: '0x000000'
|
959
|
+
foreground: '0xb6b6b6'
|
960
|
+
normal:
|
961
|
+
black: '0x000000'
|
962
|
+
red: '0x990000'
|
963
|
+
green: '0x00a600'
|
964
|
+
yellow: '0x999900'
|
965
|
+
blue: '0x0000b2'
|
966
|
+
magenta: '0xb200b2'
|
967
|
+
cyan: '0x00a6b2'
|
968
|
+
white: '0xbfbfbf'
|
969
|
+
bright:
|
970
|
+
black: '0x666666'
|
971
|
+
red: '0xe50000'
|
972
|
+
green: '0x00d900'
|
973
|
+
yellow: '0xe5e500'
|
974
|
+
blue: '0x0000ff'
|
975
|
+
magenta: '0xe500e5'
|
976
|
+
cyan: '0x00e5e5'
|
977
|
+
white: '0xe5e5e5'
|
978
|
+
|
979
|
+
thelovelace: &thelovelace
|
980
|
+
primary:
|
981
|
+
background: '0x1D1F28'
|
982
|
+
foreground: '0xFDFDFD'
|
983
|
+
normal:
|
984
|
+
black: '0x282A36'
|
985
|
+
red: '0xF37F97'
|
986
|
+
green: '0x5ADECD'
|
987
|
+
yellow: '0xF2A272'
|
988
|
+
blue: '0x8897F4'
|
989
|
+
magenta: '0xC574DD'
|
990
|
+
cyan: '0x79E6F3'
|
991
|
+
white: '0xFDFDFD'
|
992
|
+
bright:
|
993
|
+
black: '0x414458'
|
994
|
+
red: '0xFF4971'
|
995
|
+
green: '0x18E3C8'
|
996
|
+
yellow: '0xEBCB8B'
|
997
|
+
blue: '0xFF8037'
|
998
|
+
magenta: '0x556FFF'
|
999
|
+
cyan: '0x3FDCEE'
|
1000
|
+
white: '0xBEBEC1'
|
1001
|
+
|
1002
|
+
tokyo-night: &tokyo-night
|
1003
|
+
primary:
|
1004
|
+
background: '0x1a1b26'
|
1005
|
+
foreground: '0xa9b1d6'
|
1006
|
+
normal:
|
1007
|
+
black: '0x32344a'
|
1008
|
+
red: '0xf7768e'
|
1009
|
+
green: '0x9ece6a'
|
1010
|
+
yellow: '0xe0af68'
|
1011
|
+
blue: '0x7aa2f7'
|
1012
|
+
magenta: '0xad8ee6'
|
1013
|
+
cyan: '0x449dab'
|
1014
|
+
white: '0x787c99'
|
1015
|
+
bright:
|
1016
|
+
black: '0x444b6a'
|
1017
|
+
red: '0xff7a93'
|
1018
|
+
green: '0xb9f27c'
|
1019
|
+
yellow: '0xff9e64'
|
1020
|
+
blue: '0x7da6ff'
|
1021
|
+
magenta: '0xbb9af7'
|
1022
|
+
cyan: '0x0db9d7'
|
1023
|
+
white: '0xacb0d0'
|
1024
|
+
|
1025
|
+
tokyo-night-storm: &tokyo-night-storm
|
1026
|
+
primary:
|
1027
|
+
background: '0x24283b'
|
1028
|
+
foreground: '0xa9b1d6'
|
1029
|
+
normal:
|
1030
|
+
black: '0x32344a'
|
1031
|
+
red: '0xf7768e'
|
1032
|
+
green: '0x9ece6a'
|
1033
|
+
yellow: '0xe0af68'
|
1034
|
+
blue: '0x7aa2f7'
|
1035
|
+
magenta: '0xad8ee6'
|
1036
|
+
cyan: '0x449dab'
|
1037
|
+
white: '0x9699a8'
|
1038
|
+
bright:
|
1039
|
+
black: '0x444b6a'
|
1040
|
+
red: '0xff7a93'
|
1041
|
+
green: '0xb9f27c'
|
1042
|
+
yellow: '0xff9e64'
|
1043
|
+
blue: '0x7da6ff'
|
1044
|
+
magenta: '0xbb9af7'
|
1045
|
+
cyan: '0x0db9d7'
|
1046
|
+
white: '0xacb0d0'
|
1047
|
+
|
1048
|
+
tomorrow_night: &tomorrow_night
|
1049
|
+
primary:
|
1050
|
+
background: '0x1d1f21'
|
1051
|
+
foreground: '0xc5c8c6'
|
1052
|
+
cursor:
|
1053
|
+
text: '0x1d1f21'
|
1054
|
+
cursor: '0xffffff'
|
1055
|
+
normal:
|
1056
|
+
black: '0x1d1f21'
|
1057
|
+
red: '0xcc6666'
|
1058
|
+
green: '0xb5bd68'
|
1059
|
+
yellow: '0xe6c547'
|
1060
|
+
blue: '0x81a2be'
|
1061
|
+
magenta: '0xb294bb'
|
1062
|
+
cyan: '0x70c0ba'
|
1063
|
+
white: '0x373b41'
|
1064
|
+
bright:
|
1065
|
+
black: '0x666666'
|
1066
|
+
red: '0xff3334'
|
1067
|
+
green: '0x9ec400'
|
1068
|
+
yellow: '0xf0c674'
|
1069
|
+
blue: '0x81a2be'
|
1070
|
+
magenta: '0xb77ee0'
|
1071
|
+
cyan: '0x54ced6'
|
1072
|
+
white: '0x282a2e'
|
1073
|
+
|
1074
|
+
tomorrow_night_bright: &tomorrow_night_bright
|
1075
|
+
primary:
|
1076
|
+
background: '0x000000'
|
1077
|
+
foreground: '0xeaeaea'
|
1078
|
+
normal:
|
1079
|
+
black: '0x000000'
|
1080
|
+
red: '0xd54e53'
|
1081
|
+
green: '0xb9ca4a'
|
1082
|
+
yellow: '0xe6c547'
|
1083
|
+
blue: '0x7aa6da'
|
1084
|
+
magenta: '0xc397d8'
|
1085
|
+
cyan: '0x70c0ba'
|
1086
|
+
white: '0x424242'
|
1087
|
+
bright:
|
1088
|
+
black: '0x666666'
|
1089
|
+
red: '0xff3334'
|
1090
|
+
green: '0x9ec400'
|
1091
|
+
yellow: '0xe7c547'
|
1092
|
+
blue: '0x7aa6da'
|
1093
|
+
magenta: '0xb77ee0'
|
1094
|
+
cyan: '0x54ced6'
|
1095
|
+
white: '0x2a2a2a'
|
1096
|
+
|
1097
|
+
wombat: &wombat
|
1098
|
+
primary:
|
1099
|
+
background: '0x1f1f1f'
|
1100
|
+
foreground: '0xe5e1d8'
|
1101
|
+
normal:
|
1102
|
+
black: '0x000000'
|
1103
|
+
red: '0xf7786d'
|
1104
|
+
green: '0xbde97c'
|
1105
|
+
yellow: '0xefdfac'
|
1106
|
+
blue: '0x6ebaf8'
|
1107
|
+
magenta: '0xef88ff'
|
1108
|
+
cyan: '0x90fdf8'
|
1109
|
+
white: '0xe5e1d8'
|
1110
|
+
bright:
|
1111
|
+
black: '0xb4b4b4'
|
1112
|
+
red: '0xf99f92'
|
1113
|
+
green: '0xe3f7a1'
|
1114
|
+
yellow: '0xf2e9bf'
|
1115
|
+
blue: '0xb3d2ff'
|
1116
|
+
magenta: '0xe5bdff'
|
1117
|
+
cyan: '0xc2fefa'
|
1118
|
+
white: '0xffffff'
|
1119
|
+
|
1120
|
+
xterm: &xterm
|
1121
|
+
primary:
|
1122
|
+
background: '0x000000'
|
1123
|
+
foreground: '0xffffff'
|
1124
|
+
normal:
|
1125
|
+
black: '0x000000'
|
1126
|
+
red: '0xcd0000'
|
1127
|
+
green: '0x00cd00'
|
1128
|
+
yellow: '0xcdcd00'
|
1129
|
+
blue: '0x0000ee'
|
1130
|
+
magenta: '0xcd00cd'
|
1131
|
+
cyan: '0x00cdcd'
|
1132
|
+
white: '0xe5e5e5'
|
1133
|
+
bright:
|
1134
|
+
black: '0x7f7f7f'
|
1135
|
+
red: '0xff0000'
|
1136
|
+
green: '0x00ff00'
|
1137
|
+
yellow: '0xffff00'
|
1138
|
+
blue: '0x5c5cff'
|
1139
|
+
magenta: '0xff00ff'
|
1140
|
+
cyan: '0x00ffff'
|
1141
|
+
white: '0xffffff'
|
1142
|
+
|
1143
|
+
colors: *challenger_deep
|