helix-loader + helix-core now compile for WASM

pull/2357/head
Blaž Hrastnik 3 years ago
parent 8bb89dafa2
commit 9191af3f8d
No known key found for this signature in database
GPG Key ID: 1238B9C4AD889640

@ -15,11 +15,16 @@ serde = { version = "1.0", features = ["derive"] }
toml = "0.5" toml = "0.5"
etcetera = "0.3" etcetera = "0.3"
tree-sitter = "0.20" tree-sitter = "0.20"
libloading = "0.7"
once_cell = "1.9" once_cell = "1.9"
log = "0.4" log = "0.4"
# TODO: these two should be on !wasm32 only
# cloning/compiling tree-sitter grammars # cloning/compiling tree-sitter grammars
cc = { version = "1" } cc = { version = "1" }
threadpool = { version = "1.0" } threadpool = { version = "1.0" }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
libloading = "0.7"

@ -1,5 +1,4 @@
use anyhow::{anyhow, Context, Result}; use anyhow::{anyhow, Context, Result};
use libloading::{Library, Symbol};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::fs; use std::fs;
use std::time::SystemTime; use std::time::SystemTime;
@ -17,6 +16,9 @@ const DYLIB_EXTENSION: &str = "so";
#[cfg(windows)] #[cfg(windows)]
const DYLIB_EXTENSION: &str = "dll"; const DYLIB_EXTENSION: &str = "dll";
#[cfg(target_arch = "wasm32")]
const DYLIB_EXTENSION: &str = "wasm";
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize)]
struct Configuration { struct Configuration {
#[serde(rename = "use-grammars")] #[serde(rename = "use-grammars")]
@ -57,7 +59,14 @@ pub enum GrammarSource {
const BUILD_TARGET: &str = env!("BUILD_TARGET"); const BUILD_TARGET: &str = env!("BUILD_TARGET");
const REMOTE_NAME: &str = "origin"; 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> { pub fn get_language(name: &str) -> Result<Language> {
use libloading::{Library, Symbol};
let name = name.to_ascii_lowercase(); let name = name.to_ascii_lowercase();
let mut library_path = crate::runtime_dir().join("grammars").join(&name); let mut library_path = crate::runtime_dir().join("grammars").join(&name);
library_path.set_extension(DYLIB_EXTENSION); library_path.set_extension(DYLIB_EXTENSION);

Loading…
Cancel
Save