Skip to content

Commit e97943b

Browse files
committed
Feat: switch to wasm
1 parent a09a423 commit e97943b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+255
-120714
lines changed

Cargo.lock

Lines changed: 181 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,15 @@ crate-type = ["cdylib", "rlib"]
88
path = "src/main.rs"
99

1010
[dependencies]
11-
tree-sitter-sourcepawn = { path = "tree-sitter-sourcepawn" }
12-
tree-sitter = "0.20.8"
13-
wasm-bindgen = "0.2.63"
11+
anyhow = "1.0"
12+
futures = "0.3"
13+
thiserror = "1.0"
14+
js-sys = "0.3.57"
15+
tree-sitter = { version = "*", package = "tree-sitter-facade" }
16+
wasm-bindgen = { version = "=0.2.80", features = ["strict-macro"] }
17+
wasm-bindgen-futures = "0.4"
18+
web-sys = "0.3.57"
19+
web-tree-sitter-sys = "*"
1420

1521
[build-dependencies]
1622
cc = "1.0"

src/language.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
use anyhow::anyhow;
2+
pub async fn sourcepawn() -> anyhow::Result<tree_sitter::Language> {
3+
use wasm_bindgen::JsCast;
4+
use wasm_bindgen_futures::JsFuture;
5+
let bytes: &[u8] = include_bytes!("../bins/tree-sitter-sourcepawn.wasm");
6+
let promise = web_tree_sitter_sys::Language::load_bytes(&bytes.into());
7+
let future = JsFuture::from(promise);
8+
let value = future
9+
.await
10+
.map_err(|_| anyhow!("failed to load tree-sitter-sourcepawn.wasm"))?;
11+
let inner = value.unchecked_into::<web_tree_sitter_sys::Language>();
12+
let result = inner.into();
13+
Ok(result)
14+
}
15+
16+
pub static ID: &str = "sourcepawn";

0 commit comments

Comments
 (0)