syntastica_themes/
lib.rs

1#![doc = include_str!("../README.md")]
2#![cfg_attr(
3    feature = "docs",
4    cfg_attr(doc, doc = ::document_features::document_features!(feature_label = r#"<span class="stab portability"><code>{feature}</code></span>"#))
5)]
6#![doc = include_str!("../theme_list.md")]
7#![cfg_attr(all(doc, CHANNEL_NIGHTLY), feature(doc_auto_cfg))]
8#![warn(rust_2018_idioms)]
9// #![deny(missing_docs)]
10
11use syntastica_core::theme::ResolvedTheme;
12
13pub mod abscs;
14pub mod aurora;
15pub mod blue_moon;
16pub mod boo;
17pub mod catppuccin;
18pub mod darcula;
19pub mod dracula;
20pub mod everblush;
21pub mod everforest;
22pub mod falcon;
23pub mod github;
24pub mod gruvbox;
25pub mod melange;
26pub mod minimal;
27pub mod monochrome;
28pub mod monokai;
29pub mod moonfly;
30pub mod moonlight;
31pub mod neon;
32pub mod nightfly;
33pub mod nord;
34pub mod oceanicnext;
35pub mod omni;
36pub mod one;
37pub mod oxocarbon;
38pub mod solarized;
39pub mod tokyo;
40pub mod vscode;
41pub mod zephyr;
42
43/////////////////////////////////////////////
44//// All following code is autogenerated ////
45//// by running `cargo xtask codegen` in ////
46//// the syntastica workspace. //////////////
47/////////////////////////////////////////////
48
49/// Try to get a theme given its path as a string.
50///
51/// For a list of all acceptable theme names see [`THEMES`].
52///
53/// # Example
54///
55/// ```
56/// assert_eq!(
57///     syntastica_themes::from_str("one::dark"),
58///     Some(syntastica_themes::one::dark()),
59/// );
60/// ```
61pub fn from_str(theme_name: impl AsRef<str>) -> Option<ResolvedTheme> {
62    match theme_name.as_ref() {
63        "abscs::abscs" => Some(abscs::abscs()),
64        "aurora::aurora" => Some(aurora::aurora()),
65        "blue_moon::blue_moon" => Some(blue_moon::blue_moon()),
66        "boo::boo" => Some(boo::boo()),
67        "catppuccin::frappe" => Some(catppuccin::frappe()),
68        "catppuccin::latte" => Some(catppuccin::latte()),
69        "catppuccin::macchiato" => Some(catppuccin::macchiato()),
70        "catppuccin::mocha" => Some(catppuccin::mocha()),
71        "darcula::darcula" => Some(darcula::darcula()),
72        "dracula::dracula" => Some(dracula::dracula()),
73        "everblush::everblush" => Some(everblush::everblush()),
74        "everforest::dark" => Some(everforest::dark()),
75        "everforest::light" => Some(everforest::light()),
76        "falcon::falcon" => Some(falcon::falcon()),
77        "github::dark" => Some(github::dark()),
78        "github::dark_colorblind" => Some(github::dark_colorblind()),
79        "github::dark_default" => Some(github::dark_default()),
80        "github::dark_dimmed" => Some(github::dark_dimmed()),
81        "github::dark_high_contrast" => Some(github::dark_high_contrast()),
82        "github::dark_tritanopia" => Some(github::dark_tritanopia()),
83        "github::light" => Some(github::light()),
84        "github::light_colorblind" => Some(github::light_colorblind()),
85        "github::light_default" => Some(github::light_default()),
86        "github::light_high_contrast" => Some(github::light_high_contrast()),
87        "github::light_tritanopia" => Some(github::light_tritanopia()),
88        "gruvbox::dark" => Some(gruvbox::dark()),
89        "gruvbox::light" => Some(gruvbox::light()),
90        "melange::melange" => Some(melange::melange()),
91        "minimal::minimal" => Some(minimal::minimal()),
92        "monochrome::monochrome" => Some(monochrome::monochrome()),
93        "monokai::monokai" => Some(monokai::monokai()),
94        "monokai::pro" => Some(monokai::pro()),
95        "monokai::ristretto" => Some(monokai::ristretto()),
96        "monokai::soda" => Some(monokai::soda()),
97        "moonfly::moonfly" => Some(moonfly::moonfly()),
98        "moonlight::moonlight" => Some(moonlight::moonlight()),
99        "neon::dark" => Some(neon::dark()),
100        "neon::default" => Some(neon::default()),
101        "neon::doom" => Some(neon::doom()),
102        "neon::light" => Some(neon::light()),
103        "nightfly::nightfly" => Some(nightfly::nightfly()),
104        "nord::nord" => Some(nord::nord()),
105        "oceanicnext::dark" => Some(oceanicnext::dark()),
106        "oceanicnext::light" => Some(oceanicnext::light()),
107        "omni::omni" => Some(omni::omni()),
108        "one::cool" => Some(one::cool()),
109        "one::dark" => Some(one::dark()),
110        "one::darker" => Some(one::darker()),
111        "one::deep" => Some(one::deep()),
112        "one::light" => Some(one::light()),
113        "one::warm" => Some(one::warm()),
114        "one::warmer" => Some(one::warmer()),
115        "oxocarbon::dark" => Some(oxocarbon::dark()),
116        "oxocarbon::light" => Some(oxocarbon::light()),
117        "solarized::dark" => Some(solarized::dark()),
118        "solarized::light" => Some(solarized::light()),
119        "tokyo::day" => Some(tokyo::day()),
120        "tokyo::moon" => Some(tokyo::moon()),
121        "tokyo::night" => Some(tokyo::night()),
122        "tokyo::storm" => Some(tokyo::storm()),
123        "vscode::dark" => Some(vscode::dark()),
124        "vscode::light" => Some(vscode::light()),
125        "zephyr::zephyr" => Some(zephyr::zephyr()),
126        _ => None,
127    }
128}
129
130/// A list of all theme names as they are accepted by [`from_str`].
131pub const THEMES: &[&str] = &[
132    "abscs::abscs",
133    "aurora::aurora",
134    "blue_moon::blue_moon",
135    "boo::boo",
136    "catppuccin::frappe",
137    "catppuccin::latte",
138    "catppuccin::macchiato",
139    "catppuccin::mocha",
140    "darcula::darcula",
141    "dracula::dracula",
142    "everblush::everblush",
143    "everforest::dark",
144    "everforest::light",
145    "falcon::falcon",
146    "github::dark",
147    "github::dark_colorblind",
148    "github::dark_default",
149    "github::dark_dimmed",
150    "github::dark_high_contrast",
151    "github::dark_tritanopia",
152    "github::light",
153    "github::light_colorblind",
154    "github::light_default",
155    "github::light_high_contrast",
156    "github::light_tritanopia",
157    "gruvbox::dark",
158    "gruvbox::light",
159    "melange::melange",
160    "minimal::minimal",
161    "monochrome::monochrome",
162    "monokai::monokai",
163    "monokai::pro",
164    "monokai::ristretto",
165    "monokai::soda",
166    "moonfly::moonfly",
167    "moonlight::moonlight",
168    "neon::dark",
169    "neon::default",
170    "neon::doom",
171    "neon::light",
172    "nightfly::nightfly",
173    "nord::nord",
174    "oceanicnext::dark",
175    "oceanicnext::light",
176    "omni::omni",
177    "one::cool",
178    "one::dark",
179    "one::darker",
180    "one::deep",
181    "one::light",
182    "one::warm",
183    "one::warmer",
184    "oxocarbon::dark",
185    "oxocarbon::light",
186    "solarized::dark",
187    "solarized::light",
188    "tokyo::day",
189    "tokyo::moon",
190    "tokyo::night",
191    "tokyo::storm",
192    "vscode::dark",
193    "vscode::light",
194    "zephyr::zephyr",
195];