Skip to content

Commit

Permalink
Use custom syntect packs to reduce binary size
Browse files Browse the repository at this point in the history
- Custom syntax set containing only C/C++
- Custom themeset containing only Solarized (Dark)
- Disable default syntect features
  • Loading branch information
encounter committed Nov 18, 2023
1 parent d7a3fd5 commit 363fa2a
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 104 deletions.
99 changes: 0 additions & 99 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ serde_yaml = "0.9.27"
sha-1 = "0.10.1"
smallvec = "1.11.2"
supports-color = "2.1.0"
syntect = "5.1.0"
syntect = { version = "5.1.0", features = ["parsing", "regex-onig", "dump-load"], default-features = false }
tracing = "0.1.40"
tracing-attributes = "0.1.27"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
Expand Down
11 changes: 11 additions & 0 deletions assets/syntax/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
syntect packs generated from:
https://github.com/braver/Solarized/blob/87e01090cf5fb821a234265b3138426ae84900e7/Solarized%20(dark).tmTheme
https://github.com/sublimehq/Packages/tree/fa6b8629c95041bf262d4c1dab95c456a0530122/C%2B%2B

// let mut theme_set = ThemeSet::load_from_folder("../Solarized")?;
// syntect::dumps::dump_to_file(&theme_set, "assets/syntax/default.themedump")?;
//
// let mut builder = SyntaxSetBuilder::new();
// builder.add_from_folder("../sublimehq-Packages/C++", true)?;
// let syntax_set = builder.build();
// syntect::dumps::dump_to_file(&syntax_set, "assets/syntax/default_newlines.packdump")?;
Binary file added assets/syntax/default.themedump
Binary file not shown.
Binary file added assets/syntax/default_newlines.packdump
Binary file not shown.
11 changes: 7 additions & 4 deletions src/cmd/dwarf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,14 @@ pub fn run(args: Args) -> Result<()> {
}

fn dump(args: DumpArgs) -> Result<()> {
let theme_set = ThemeSet::load_defaults();
// Load syntect
let theme_set: ThemeSet =
syntect::dumps::from_binary(include_bytes!("../../assets/syntax/default.themedump"));
let syntax_set: SyntaxSet = syntect::dumps::from_binary(include_bytes!(
"../../assets/syntax/default_newlines.packdump"
));
let theme = theme_set.themes.get("Solarized (dark)").context("Failed to load theme")?;
let syntax_set = SyntaxSet::load_defaults_newlines();
let syntax =
syntax_set.find_syntax_by_extension("cpp").context("Failed to find syntax")?.clone();
let syntax = syntax_set.find_syntax_by_name("C++").context("Failed to find syntax")?.clone();

let file = map_file(&args.in_file)?;
let buf = file.as_slice();
Expand Down

0 comments on commit 363fa2a

Please sign in to comment.