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.rs | 33 |
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(()) + } + } +} |