From 0fdb626c2cc5518b10a9bfbedc8b78cff3d360c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Fri, 30 Jul 2021 16:27:22 +0900 Subject: [PATCH] Remove embed_runtime feature It's no longer practical to maintain. Closes #451 --- Cargo.lock | 34 ---------------------------------- README.md | 7 ------- book/src/install.md | 13 +++---------- helix-core/Cargo.toml | 2 -- helix-core/src/lib.rs | 1 - helix-core/src/syntax.rs | 29 ----------------------------- helix-term/Cargo.toml | 1 - 7 files changed, 3 insertions(+), 84 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0fa6ad14..6aa9830b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -317,7 +317,6 @@ dependencies = [ "quickcheck", "regex", "ropey", - "rust-embed", "serde", "similar", "smallvec", @@ -773,39 +772,6 @@ dependencies = [ "smallvec", ] -[[package]] -name = "rust-embed" -version = "5.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fe1fe6aac5d6bb9e1ffd81002340363272a7648234ec7bdfac5ee202cb65523" -dependencies = [ - "rust-embed-impl", - "rust-embed-utils", - "walkdir", -] - -[[package]] -name = "rust-embed-impl" -version = "5.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed91c41c42ef7bf687384439c312e75e0da9c149b0390889b94de3c7d9d9e66" -dependencies = [ - "proc-macro2", - "quote", - "rust-embed-utils", - "syn", - "walkdir", -] - -[[package]] -name = "rust-embed-utils" -version = "5.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a512219132473ab0a77b52077059f1c47ce4af7fbdc94503e9862a34422876d" -dependencies = [ - "walkdir", -] - [[package]] name = "ryu" version = "1.0.5" diff --git a/README.md b/README.md index b4f5b867..a16fc6eb 100644 --- a/README.md +++ b/README.md @@ -51,13 +51,6 @@ that sets the variable to the install dir. > NOTE: running via cargo also doesn't require setting explicit `HELIX_RUNTIME` path, it will automatically > detect the `runtime` directory in the project root. -Alternatively, if you want to embed the `runtime/` directory into the Helix binary you can build -it with: - -``` -cargo install --path helix-term --features "embed_runtime" -``` - [![Packaging status](https://repology.org/badge/vertical-allrepos/helix.svg)](https://repology.org/project/helix/versions) ## MacOS diff --git a/book/src/install.md b/book/src/install.md index 3fd0db4a..cd9c980e 100644 --- a/book/src/install.md +++ b/book/src/install.md @@ -37,13 +37,6 @@ cargo install --path helix-term This will install the `hx` binary to `$HOME/.cargo/bin`. -Now copy the `runtime/` directory somewhere. Helix will by default look for the -runtime inside the same folder as the executable, but that can be overriden via -the `HELIX_RUNTIME` environment variable. - -If you want to embed the `runtime/` directory into the Helix binary you can build -it with: - -``` -cargo install --path helix-term --features "embed_runtime" -``` +Helix also needs it's runtime files so make sure to copy/symlink the `runtime/` directory into the +config directory (for example `~/.config/helix/runtime` on Linux/macOS). This location can be overriden +via the `HELIX_RUNTIME` environment variable. diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml index 634c4d9f..4316dc2c 100644 --- a/helix-core/Cargo.toml +++ b/helix-core/Cargo.toml @@ -11,7 +11,6 @@ homepage = "https://helix-editor.com" include = ["src/**/*", "README.md"] [features] -embed_runtime = ["rust-embed"] [dependencies] helix-syntax = { version = "0.3", path = "../helix-syntax" } @@ -34,7 +33,6 @@ toml = "0.5" similar = "1.3" etcetera = "0.3" -rust-embed = { version = "5.9.0", optional = true } [dev-dependencies] quickcheck = { version = "1", default-features = false } diff --git a/helix-core/src/lib.rs b/helix-core/src/lib.rs index 3684a93e..2823959f 100644 --- a/helix-core/src/lib.rs +++ b/helix-core/src/lib.rs @@ -58,7 +58,6 @@ pub fn find_root(root: Option<&str>) -> Option { None } -#[cfg(not(embed_runtime))] pub fn runtime_dir() -> std::path::PathBuf { if let Ok(dir) = std::env::var("HELIX_RUNTIME") { return dir.into(); diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs index c8cb0557..60d44976 100644 --- a/helix-core/src/syntax.rs +++ b/helix-core/src/syntax.rs @@ -84,7 +84,6 @@ pub struct IndentQuery { pub outdent: HashSet, } -#[cfg(not(feature = "embed_runtime"))] fn load_runtime_file(language: &str, filename: &str) -> Result { let path = crate::RUNTIME_DIR .join("queries") @@ -93,34 +92,6 @@ fn load_runtime_file(language: &str, filename: &str) -> Result Result> { - use std::path::PathBuf; - - #[derive(rust_embed::RustEmbed)] - #[folder = "../runtime/"] - struct Runtime; - - #[derive(Debug)] - struct EmbeddedFileNotFoundError { - path: PathBuf, - } - impl std::error::Error for EmbeddedFileNotFoundError {} - impl fmt::Display for EmbeddedFileNotFoundError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "failed to load embedded file {}", self.path.display()) - } - } - - let path = PathBuf::from("queries").join(language).join(filename); - - if let Some(query_bytes) = Runtime::get(&path.display().to_string()) { - String::from_utf8(query_bytes.to_vec()).map_err(|err| err.into()) - } else { - Err(Box::new(EmbeddedFileNotFoundError { path })) - } -} - fn read_query(language: &str, filename: &str) -> String { static INHERITS_REGEX: Lazy = Lazy::new(|| Regex::new(r";+\s*inherits\s*:?\s*([a-z_,()]+)\s*").unwrap()); diff --git a/helix-term/Cargo.toml b/helix-term/Cargo.toml index 1ff32276..1fc14ad2 100644 --- a/helix-term/Cargo.toml +++ b/helix-term/Cargo.toml @@ -15,7 +15,6 @@ build = true app = true [features] -embed_runtime = ["helix-core/embed_runtime"] [[bin]] name = "hx"