Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'xtask/src/theme_check.rs')
-rw-r--r--xtask/src/theme_check.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/xtask/src/theme_check.rs b/xtask/src/theme_check.rs
new file mode 100644
index 00000000..a2719ede
--- /dev/null
+++ b/xtask/src/theme_check.rs
@@ -0,0 +1,33 @@
+use helix_view::theme::Loader;
+
+use crate::{path, DynError};
+
+pub fn theme_check() -> Result<(), DynError> {
+ let theme_names = [
+ vec!["default".to_string(), "base16_default".to_string()],
+ Loader::read_names(&path::themes()),
+ ]
+ .concat();
+ let loader = Loader::new(&[path::runtime()]);
+ let mut errors_present = false;
+
+ for name in theme_names {
+ let (_, warnings) = loader.load_with_warnings(&name).unwrap();
+
+ if !warnings.is_empty() {
+ errors_present = true;
+ println!("Theme '{name}' loaded with errors:");
+ for warning in warnings {
+ println!("\t* {}", warning);
+ }
+ }
+ }
+
+ match errors_present {
+ true => Err("Errors found when loading bundled themes".into()),
+ false => {
+ println!("Theme check successful!");
+ Ok(())
+ }
+ }
+}