on master help sign in
src/build_assets.rs: Refactor into smaller functions (#1822)

To make the code easier to work with.

commit27fa55d2745e9be0f00a98b75d88f129f22e2c22 authorMartin Nordholts <enselic@gmail.com> dateFri 27 Aug 2021, 09:56 (5 years ago) parent19c3e82
1 file changed+37−8
src/build_assets.rs+37−8
src/build_assets.rs+37−8
@@ -33,6 +33,24 @@ pub fn build_assets(
3333 target_dir: &Path,
3434 current_version: &str,
3535) -> Result<()> {
36+ let theme_set = build_theme_set(source_dir, include_integrated_assets);
37+
38+ let syntax_set_builder = build_syntax_set_builder(source_dir, include_integrated_assets)?;
39+
40+ if std::env::var("BAT_PRINT_SYNTAX_DEPENDENCIES").is_ok() {
41+ // To trigger this code, run:
42+ // BAT_PRINT_SYNTAX_DEPENDENCIES=1 cargo run -- cache --build --source assets --blank --target /tmp
43+ print_syntax_dependencies(&syntax_set_builder);
44+ }
45+
46+ let syntax_set = syntax_set_builder.build();
47+
48+ print_unlinked_contexts(&syntax_set);
49+
50+ write_assets(&theme_set, &syntax_set, target_dir, current_version)
51+}
52+
53+fn build_theme_set(source_dir: &Path, include_integrated_assets: bool) -> ThemeSet {
3654 let mut theme_set = if include_integrated_assets {
3755 crate::assets::get_integrated_themeset()
3856 } else {
@@ -56,6 +74,13 @@ pub fn build_assets(
5674 );
5775 }
5876
77+ theme_set
78+}
79+
80+fn build_syntax_set_builder(
81+ source_dir: &Path,
82+ include_integrated_assets: bool,
83+) -> Result<SyntaxSetBuilder> {
5984 let mut syntax_set_builder = if !include_integrated_assets {
6085 let mut builder = syntect::parsing::SyntaxSetBuilder::new();
6186 builder.add_plain_text_syntax();
@@ -75,13 +100,10 @@ pub fn build_assets(
75100 );
76101 }
77102
78− if std::env::var("BAT_PRINT_SYNTAX_DEPENDENCIES").is_ok() {
79− // To trigger this code, run:
80− // BAT_PRINT_SYNTAX_DEPENDENCIES=1 cargo run -- cache --build --source assets --blank --target /tmp
81− print_syntax_dependencies(&syntax_set_builder);
82− }
103+ Ok(syntax_set_builder)
104+}
83105
84− let syntax_set = syntax_set_builder.build();
106+fn print_unlinked_contexts(syntax_set: &SyntaxSet) {
85107 let missing_contexts = syntax_set.find_unlinked_contexts();
86108 if !missing_contexts.is_empty() {
87109 println!("Some referenced contexts could not be found!");
@@ -89,10 +111,17 @@ pub fn build_assets(
89111 println!("- {}", context);
90112 }
91113 }
114+}
92115
116+fn write_assets(
117+ theme_set: &ThemeSet,
118+ syntax_set: &SyntaxSet,
119+ target_dir: &Path,
120+ current_version: &str,
121+) -> Result<()> {
93122 let _ = std::fs::create_dir_all(target_dir);
94− asset_to_cache(&theme_set, &target_dir.join("themes.bin"), "theme set")?;
95− asset_to_cache(&syntax_set, &target_dir.join("syntaxes.bin"), "syntax set")?;
123+ asset_to_cache(theme_set, &target_dir.join("themes.bin"), "theme set")?;
124+ asset_to_cache(syntax_set, &target_dir.join("syntaxes.bin"), "syntax set")?;
96125
97126 print!(
98127 "Writing metadata to folder {} ... ",