diff --git a/src/assets.rs b/src/assets.rs index 5272d499..1ce4bb04 100644 --- a/src/assets.rs +++ b/src/assets.rs @@ -15,8 +15,8 @@ pub const BAT_THEME_DEFAULT: &str = "Monokai Extended"; #[derive(Debug)] pub struct HighlightingAssets { - pub syntax_set: SyntaxSet, - pub theme_set: ThemeSet, + pub(crate) syntax_set: SyntaxSet, + pub(crate) theme_set: ThemeSet, } impl HighlightingAssets { @@ -138,6 +138,14 @@ impl HighlightingAssets { Ok(()) } + pub fn syntaxes(&self) -> &[SyntaxReference] { + self.syntax_set.syntaxes() + } + + pub fn themes(&self) -> &BTreeMap { + &self.theme_set.themes + } + pub fn get_theme(&self, theme: &str) -> &Theme { match self.theme_set.themes.get(theme) { Some(theme) => theme, diff --git a/src/bin/bat/main.rs b/src/bin/bat/main.rs index 1499495a..c71235b0 100644 --- a/src/bin/bat/main.rs +++ b/src/bin/bat/main.rs @@ -60,7 +60,6 @@ fn run_cache_subcommand(matches: &clap::ArgMatches) -> Result<()> { pub fn list_languages(config: &Config) -> Result<()> { let assets = assets_from_cache_or_binary(); let mut languages = assets - .syntax_set .syntaxes() .iter() .filter(|syntax| !syntax.hidden && !syntax.file_extensions.is_empty()) @@ -122,7 +121,7 @@ pub fn list_languages(config: &Config) -> Result<()> { pub fn list_themes(cfg: &Config) -> Result<()> { let assets = assets_from_cache_or_binary(); - let themes = &assets.theme_set.themes; + let themes = assets.themes(); let mut config = cfg.clone(); let mut style = HashSet::new(); style.insert(OutputComponent::Plain); diff --git a/tests/no_duplicate_extensions.rs b/tests/no_duplicate_extensions.rs index b87a1f9c..cdc96128 100644 --- a/tests/no_duplicate_extensions.rs +++ b/tests/no_duplicate_extensions.rs @@ -23,7 +23,7 @@ fn no_duplicate_extensions() { let mut extensions = HashSet::new(); - for syntax in assets.syntax_set.syntaxes() { + for syntax in assets.syntaxes() { for extension in &syntax.file_extensions { assert!( KNOWN_EXCEPTIONS.contains(&extension.as_str()) || extensions.insert(extension),