diff options
author | Blaž Hrastnik | 2022-03-27 02:23:58 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-05-01 02:39:07 +0000 |
commit | 9191af3f8d73d2101c46192a4a80c41a19012320 (patch) | |
tree | a5259e9a819868317096ab3ca322fed24c2e7b97 | |
parent | 8bb89dafa2f3bae8d2c7605b880973992b04480f (diff) |
helix-loader + helix-core now compile for WASM
-rw-r--r-- | helix-loader/Cargo.toml | 7 | ||||
-rw-r--r-- | helix-loader/src/grammar.rs | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/helix-loader/Cargo.toml b/helix-loader/Cargo.toml index 607d1a0a..c8cbf6d1 100644 --- a/helix-loader/Cargo.toml +++ b/helix-loader/Cargo.toml @@ -15,11 +15,16 @@ serde = { version = "1.0", features = ["derive"] } toml = "0.5" etcetera = "0.3" tree-sitter = "0.20" -libloading = "0.7" once_cell = "1.9" log = "0.4" +# TODO: these two should be on !wasm32 only + # cloning/compiling tree-sitter grammars cc = { version = "1" } threadpool = { version = "1.0" } + +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +libloading = "0.7" + diff --git a/helix-loader/src/grammar.rs b/helix-loader/src/grammar.rs index 9d63a2be..df88f24b 100644 --- a/helix-loader/src/grammar.rs +++ b/helix-loader/src/grammar.rs @@ -1,5 +1,4 @@ use anyhow::{anyhow, Context, Result}; -use libloading::{Library, Symbol}; use serde::{Deserialize, Serialize}; use std::fs; use std::time::SystemTime; @@ -17,6 +16,9 @@ const DYLIB_EXTENSION: &str = "so"; #[cfg(windows)] const DYLIB_EXTENSION: &str = "dll"; +#[cfg(target_arch = "wasm32")] +const DYLIB_EXTENSION: &str = "wasm"; + #[derive(Debug, Serialize, Deserialize)] struct Configuration { #[serde(rename = "use-grammars")] @@ -57,7 +59,14 @@ pub enum GrammarSource { const BUILD_TARGET: &str = env!("BUILD_TARGET"); const REMOTE_NAME: &str = "origin"; +#[cfg(target_arch = "wasm32")] +pub fn get_language(name: &str) -> Result<Language> { + unimplemented!() +} + +#[cfg(not(target_arch = "wasm32"))] pub fn get_language(name: &str) -> Result<Language> { + use libloading::{Library, Symbol}; let name = name.to_ascii_lowercase(); let mut library_path = crate::runtime_dir().join("grammars").join(&name); library_path.set_extension(DYLIB_EXTENSION); |