From 363fa2ac726fc219a0bb6e3d4d3db1a536c55f5d Mon Sep 17 00:00:00 2001 From: Luke Street Date: Sat, 18 Nov 2023 16:12:03 -0500 Subject: [PATCH] Use custom syntect packs to reduce binary size - Custom syntax set containing only C/C++ - Custom themeset containing only Solarized (Dark) - Disable default syntect features --- Cargo.lock | 99 ------------------------ Cargo.toml | 2 +- assets/syntax/README | 11 +++ assets/syntax/default.themedump | Bin 0 -> 1982 bytes assets/syntax/default_newlines.packdump | Bin 0 -> 19790 bytes src/cmd/dwarf.rs | 11 ++- 6 files changed, 19 insertions(+), 104 deletions(-) create mode 100644 assets/syntax/README create mode 100644 assets/syntax/default.themedump create mode 100644 assets/syntax/default_newlines.packdump diff --git a/Cargo.lock b/Cargo.lock index faa2496..02b5d04 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -343,15 +343,6 @@ dependencies = [ "xxhash-rust", ] -[[package]] -name = "deranged" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" -dependencies = [ - "powerfmt", -] - [[package]] name = "digest" version = "0.10.7" @@ -567,21 +558,6 @@ version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" -[[package]] -name = "line-wrap" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f30344350a2a51da54c1d53be93fade8a237e545dbcc4bdbe635413f2117cab9" -dependencies = [ - "safemem", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.11" @@ -778,26 +754,6 @@ version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" -[[package]] -name = "plist" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" -dependencies = [ - "base64", - "indexmap", - "line-wrap", - "quick-xml", - "serde", - "time", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - [[package]] name = "ppc750cl" version = "0.2.0" @@ -837,15 +793,6 @@ dependencies = [ "unicase", ] -[[package]] -name = "quick-xml" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" -dependencies = [ - "memchr", -] - [[package]] name = "quote" version = "1.0.33" @@ -965,12 +912,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - [[package]] name = "same-file" version = "1.0.6" @@ -1127,13 +1068,11 @@ dependencies = [ "fnv", "once_cell", "onig", - "plist", "regex-syntax 0.7.5", "serde", "serde_json", "thiserror", "walkdir", - "yaml-rust", ] [[package]] @@ -1175,35 +1114,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "time" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" -dependencies = [ - "deranged", - "itoa", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" -dependencies = [ - "time-core", -] - [[package]] name = "toml_datetime" version = "0.6.5" @@ -1512,15 +1422,6 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9828b178da53440fa9c766a3d2f73f7cf5d0ac1fe3980c1e5018d899fd19e07b" -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - [[package]] name = "zerocopy" version = "0.7.26" diff --git a/Cargo.toml b/Cargo.toml index d95bf59..a436183 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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"] } diff --git a/assets/syntax/README b/assets/syntax/README new file mode 100644 index 0000000..cf6da7e --- /dev/null +++ b/assets/syntax/README @@ -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")?; diff --git a/assets/syntax/default.themedump b/assets/syntax/default.themedump new file mode 100644 index 0000000000000000000000000000000000000000..f2a309bef3bfaa7f439379acbb14a49868db22d4 GIT binary patch literal 1982 zcmV;v2SNCF+O=9sZyQA%_a;$GY1*b~k~YnwErrsi^;RlUC9YiIhLDgrjdv&OZFXn2 zv%5_UH!2Q@BM8AUAA)bdjT0bld;m^-h43Hm!!zS~ITe;_yV?2u=l_1pI2bgqwf6H< znjw~ciQ~HuW5kXg1*Qjs;Pnqbo&|%)&(DH?|M}}I*!}%%J^1_C)3br}3NAkX=xh)? z`Q$Tr|D4qA<1gCBO9N$j`+2ebjA))?QVk5t*4xh!h>~=30DJw*(Fd8FdJ|t@iU37!{4O*{%=1`@;geuE4^>nnaSifBAN>2tGq3sZlc9|Ig=NTkxG* z9O20^WpV%bo1giv7ZgJN%MlT%0NinZ%bYlg0?G0vzCYnwPQtvhm7VX=!OEN z)fha(zTF+ecBmS%8g!hJD63;^g73TF(&oW$A8&!Gmpw(N1!kzC45;P>7`>diiZ>LM zWttFM8ZbjyT8+W%LR{dlUVAuL324zR8wYa*V~YxN8mEUTX8pSFPfr29Vt{WNED&WN zx=H5FsX;AiH3ztm29O9QATg@SU#`mRi*^<)C?X@%pVOv;{ic66jr1?hKG zS9mDO-ZHi9vTt43LTXiBHWhy0ss`;^SunffY-kj{U`p+xzu>TXTKmEnAEqRoew|D3 z4MWS0y3mysmrM2KM@{4=z%&OJ3>S<>xGX926!V5gQze!a)ubjW)}Dg&z{ zr?7HTCiu8t*wkv%&g-hO`kHUr@v4fLZm9@rQq?tG^rA$GwdM2q6A%i=Ri2qRzw3sN zaFP;NHL~C_nH7F}ceiFRxo32~qv55*P{!Jd2Kptn+-=&MwpFE0h-t-<0=G07Da0oc zE;J$FO3AV#mj#Yelno&?$29gN)g{uDyh2$zYoG!WK07l;!bY!vY3Ka1rcer?aj%68 z<%cQZyO7oFP4}MNsg&lQ4>smtmJ-4!W&a1(p{PZOyXF)Z9)A!G2_-{L3npf0c=(@(P2q~XyC})sN}Pd!JogCrM!FS; zNtI$CQZNOa3Mn-hb;K%Z&A`htDD8Vnvgx{7UOhq(gg5lQ^h#){ZW-v+oXrf!o(jDu zOQ-847ix3&J?Nz>b0%vYcn~W}T*q|SYS3iF(1Q{;svot7{(M;nizkb5rJE5h8a$@! zdMbQUH9j^%Wg6WOP{eNl!uAK^HL^l0lI-__>yuH%BpA40aRu|&g=-W?3y_3%WS+^ed}PV#K= zG1Zl%Y>isT>QQfKM}Sd0rrZqrTgK&h|8%&n@}0 z&C+Ec)F>t3My@t$2)phf(abpXa6^RM}^Ps;^vfMuVsta-;`J0 zUmzn|gz`(QJk;iGzT{ApI(lVjgfo4}+TCSA!#TA7$Q(I>d9@}H3w{O z6kP!;@DQOA51Ucb%EE0El*SV+4NiP{1V4ozxZQx}F~jAG$V$9|J>Z4S=h!p-;cpi9CzVn@*4 z#BkbE2?u6&O)Frik+8AvY1=g!oRShVacjGUl&y~uBjQ25ed|>jj2ROy8}0Q@*_T^N z*jHWcDBLYNTvveYrO`M|#u@zMZ4MIhrah5#cbd{MMw;RF3yFE5 z;(sVTwRxawv;84jBOm-{#0MBH;f7P!Pl=RT2nvgj`AqVO(+e^a#09=1KEN-#HH~;_u literal 0 HcmV?d00001 diff --git a/assets/syntax/default_newlines.packdump b/assets/syntax/default_newlines.packdump new file mode 100644 index 0000000000000000000000000000000000000000..890b8e4405fb74c2a80b9be787f265461abab915 GIT binary patch literal 19790 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

=b;J@rv@))U4T&=(yw3a;EX@op=WEC85Qk zbjp~tMNKdfJ|w1fb>W!m>BR}yl9stt;)8H@p@>dba?Sm_$|qhchxQBl*X<{=^*rF2 z;7mVa(whi7$qC2NgS!r@B)e7-MD%!Wg83Qprhkn`Bavq zBDiOz7MbhznnBm~$2TIp7#HK}4^sP%;pB%XL3MBLKe5U41SA@gHji1n_nl?yRYtQ+;EzPwD3`yJ_<%opkS&m~_%ml_7_*8*Q04-x2O8NOT4 z>Z{kuMnXNR&>uJXSToDOTqhq^%8z3%_>4Z}^Amj znKQMSKn}V~sqZZEuliD`O< 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();