From 27fa55d2745e9be0f00a98b75d88f129f22e2c22 Mon Sep 17 00:00:00 2001 From: Martin Nordholts Date: Fri, 27 Aug 2021 09:56:20 +0200 Subject: [PATCH] src/build_assets.rs: Refactor into smaller functions (#1822) To make the code easier to work with. --- src/build_assets.rs | 45 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/src/build_assets.rs b/src/build_assets.rs index 06d796f6..1eb532e2 100644 --- a/src/build_assets.rs +++ b/src/build_assets.rs @@ -33,6 +33,24 @@ pub fn build_assets( target_dir: &Path, current_version: &str, ) -> Result<()> { + let theme_set = build_theme_set(source_dir, include_integrated_assets); + + let syntax_set_builder = build_syntax_set_builder(source_dir, include_integrated_assets)?; + + if std::env::var("BAT_PRINT_SYNTAX_DEPENDENCIES").is_ok() { + // To trigger this code, run: + // BAT_PRINT_SYNTAX_DEPENDENCIES=1 cargo run -- cache --build --source assets --blank --target /tmp + print_syntax_dependencies(&syntax_set_builder); + } + + let syntax_set = syntax_set_builder.build(); + + print_unlinked_contexts(&syntax_set); + + write_assets(&theme_set, &syntax_set, target_dir, current_version) +} + +fn build_theme_set(source_dir: &Path, include_integrated_assets: bool) -> ThemeSet { let mut theme_set = if include_integrated_assets { crate::assets::get_integrated_themeset() } else { @@ -56,6 +74,13 @@ pub fn build_assets( ); } + theme_set +} + +fn build_syntax_set_builder( + source_dir: &Path, + include_integrated_assets: bool, +) -> Result { let mut syntax_set_builder = if !include_integrated_assets { let mut builder = syntect::parsing::SyntaxSetBuilder::new(); builder.add_plain_text_syntax(); @@ -75,13 +100,10 @@ pub fn build_assets( ); } - if std::env::var("BAT_PRINT_SYNTAX_DEPENDENCIES").is_ok() { - // To trigger this code, run: - // BAT_PRINT_SYNTAX_DEPENDENCIES=1 cargo run -- cache --build --source assets --blank --target /tmp - print_syntax_dependencies(&syntax_set_builder); - } + Ok(syntax_set_builder) +} - let syntax_set = syntax_set_builder.build(); +fn print_unlinked_contexts(syntax_set: &SyntaxSet) { let missing_contexts = syntax_set.find_unlinked_contexts(); if !missing_contexts.is_empty() { println!("Some referenced contexts could not be found!"); @@ -89,10 +111,17 @@ pub fn build_assets( println!("- {}", context); } } +} +fn write_assets( + theme_set: &ThemeSet, + syntax_set: &SyntaxSet, + target_dir: &Path, + current_version: &str, +) -> Result<()> { let _ = std::fs::create_dir_all(target_dir); - asset_to_cache(&theme_set, &target_dir.join("themes.bin"), "theme set")?; - asset_to_cache(&syntax_set, &target_dir.join("syntaxes.bin"), "syntax set")?; + asset_to_cache(theme_set, &target_dir.join("themes.bin"), "theme set")?; + asset_to_cache(syntax_set, &target_dir.join("syntaxes.bin"), "syntax set")?; print!( "Writing metadata to folder {} ... ",