use std::io::{BufReader, Cursor};
use syntect::highlighting::{Theme, ThemeSet};
pub fn try_load_r3bl_theme() -> std::io::Result<Theme> {
let theme_bytes = include_bytes!("assets/r3bl.tmTheme");
let cursor = Cursor::new(theme_bytes);
let mut buf_reader = BufReader::new(cursor);
let Ok(theme) = ThemeSet::load_from_reader(&mut buf_reader) else {
return Err(std::io::Error::new(
std::io::ErrorKind::InvalidData,
"Failed to load theme",
));
};
Ok(theme)
}
#[must_use]
pub fn load_default_theme() -> Theme {
let theme_set = ThemeSet::load_defaults();
theme_set.themes["base16-ocean.dark"].clone()
}
#[cfg(test)]
mod tests {
use crate::{throws, try_load_r3bl_theme};
#[test]
fn load_theme() -> std::io::Result<()> {
throws!({
let theme = try_load_r3bl_theme()?;
dbg!(&theme);
});
}
}