1use crate::theme::Theme;
7
8pub fn one_dark() -> Theme {
10 Theme::from_toml_with_name(ONE_DARK_TOML, "one_dark").expect("Built-in theme should be valid")
11}
12
13pub fn github_light() -> Theme {
15 Theme::from_toml_with_name(GITHUB_LIGHT_TOML, "github_light")
16 .expect("Built-in theme should be valid")
17}
18
19const ONE_DARK_TOML: &str = r##"
21[palette]
22# One Dark color palette
23red = "#E06C75"
24green = "#98C379"
25yellow = "#E5C07B"
26blue = "#61AFEF"
27purple = "#C678DD"
28cyan = "#56B6C2"
29orange = "#D19A66"
30gray = "#5C6370"
31light_gray = "#ABB2BF"
32dark_gray = "#4B5263"
33white = "#DCDFE4"
34
35# Comments
36[comment]
37fg = "gray"
38modifiers = ["italic"]
39
40["comment.documentation"]
41fg = "gray"
42modifiers = ["italic"]
43
44# Strings
45[string]
46fg = "green"
47
48["string.escape"]
49fg = "cyan"
50
51["string.regexp"]
52fg = "orange"
53
54["string.special"]
55fg = "cyan"
56
57# Keywords
58[keyword]
59fg = "purple"
60
61["keyword.control"]
62fg = "purple"
63
64["keyword.control.conditional"]
65fg = "purple"
66
67["keyword.control.repeat"]
68fg = "purple"
69
70["keyword.control.import"]
71fg = "purple"
72
73["keyword.control.return"]
74fg = "purple"
75
76["keyword.function"]
77fg = "purple"
78
79["keyword.operator"]
80fg = "purple"
81
82["keyword.storage"]
83fg = "purple"
84
85["keyword.storage.type"]
86fg = "purple"
87
88["keyword.storage.modifier"]
89fg = "purple"
90
91["keyword.special"]
92fg = "cyan"
93
94# Functions
95[function]
96fg = "blue"
97
98["function.builtin"]
99fg = "cyan"
100
101["function.call"]
102fg = "blue"
103
104["function.method"]
105fg = "blue"
106
107["function.macro"]
108fg = "cyan"
109
110# Types
111[type]
112fg = "yellow"
113
114["type.builtin"]
115fg = "yellow"
116
117# Variables
118[variable]
119fg = "light_gray"
120
121["variable.builtin"]
122fg = "red"
123
124["variable.parameter"]
125fg = "orange"
126
127# Constants
128[constant]
129fg = "orange"
130
131["constant.builtin"]
132fg = "orange"
133
134# Numbers and booleans
135[number]
136fg = "orange"
137
138[boolean]
139fg = "orange"
140
141# Operators
142[operator]
143fg = "cyan"
144
145# Punctuation
146[punctuation]
147fg = "light_gray"
148
149["punctuation.bracket"]
150fg = "light_gray"
151
152["punctuation.delimiter"]
153fg = "light_gray"
154
155["punctuation.special"]
156fg = "cyan"
157
158# Attributes and properties
159[attribute]
160fg = "yellow"
161
162[property]
163fg = "red"
164
165# Namespaces and labels
166[namespace]
167fg = "yellow"
168
169[label]
170fg = "red"
171
172# Tags (for markup/HTML)
173[tag]
174fg = "red"
175
176# Constructor
177[constructor]
178fg = "yellow"
179
180# Special
181[special]
182fg = "cyan"
183
184# Embedded code
185[embedded]
186fg = "cyan"
187
188# Escape sequences
189[escape]
190fg = "cyan"
191"##;
192
193const GITHUB_LIGHT_TOML: &str = r##"
195[palette]
196# GitHub Light color palette
197red = "#CF222E"
198green = "#116329"
199yellow = "#4D2D00"
200blue = "#0550AE"
201purple = "#8250DF"
202cyan = "#1B7C83"
203orange = "#953800"
204gray = "#6E7781"
205light_gray = "#57606A"
206dark_gray = "#24292F"
207white = "#FFFFFF"
208
209# Comments
210[comment]
211fg = "gray"
212modifiers = ["italic"]
213
214["comment.documentation"]
215fg = "gray"
216modifiers = ["italic"]
217
218# Strings
219[string]
220fg = "blue"
221
222["string.escape"]
223fg = "cyan"
224
225["string.regexp"]
226fg = "cyan"
227
228["string.special"]
229fg = "cyan"
230
231# Keywords
232[keyword]
233fg = "red"
234
235["keyword.control"]
236fg = "red"
237
238["keyword.control.conditional"]
239fg = "red"
240
241["keyword.control.repeat"]
242fg = "red"
243
244["keyword.control.import"]
245fg = "red"
246
247["keyword.control.return"]
248fg = "red"
249
250["keyword.function"]
251fg = "red"
252
253["keyword.operator"]
254fg = "red"
255
256["keyword.storage"]
257fg = "red"
258
259["keyword.storage.type"]
260fg = "red"
261
262["keyword.storage.modifier"]
263fg = "red"
264
265["keyword.special"]
266fg = "red"
267
268# Functions
269[function]
270fg = "purple"
271
272["function.builtin"]
273fg = "purple"
274
275["function.call"]
276fg = "purple"
277
278["function.method"]
279fg = "purple"
280
281["function.macro"]
282fg = "purple"
283
284# Types
285[type]
286fg = "orange"
287
288["type.builtin"]
289fg = "orange"
290
291# Variables
292[variable]
293fg = "dark_gray"
294
295["variable.builtin"]
296fg = "orange"
297
298["variable.parameter"]
299fg = "dark_gray"
300
301# Constants
302[constant]
303fg = "blue"
304
305["constant.builtin"]
306fg = "blue"
307
308# Numbers and booleans
309[number]
310fg = "blue"
311
312[boolean]
313fg = "blue"
314
315# Operators
316[operator]
317fg = "red"
318
319# Punctuation
320[punctuation]
321fg = "dark_gray"
322
323["punctuation.bracket"]
324fg = "dark_gray"
325
326["punctuation.delimiter"]
327fg = "dark_gray"
328
329["punctuation.special"]
330fg = "red"
331
332# Attributes and properties
333[attribute]
334fg = "purple"
335
336[property]
337fg = "blue"
338
339# Namespaces and labels
340[namespace]
341fg = "orange"
342
343[label]
344fg = "dark_gray"
345
346# Tags (for markup/HTML)
347[tag]
348fg = "green"
349
350# Constructor
351[constructor]
352fg = "orange"
353
354# Special
355[special]
356fg = "red"
357
358# Embedded code
359[embedded]
360fg = "dark_gray"
361
362# Escape sequences
363[escape]
364fg = "cyan"
365"##;