summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock19
-rw-r--r--helix-core/Cargo.toml2
-rw-r--r--helix-core/src/lib.rs8
3 files changed, 18 insertions, 11 deletions
diff --git a/Cargo.lock b/Cargo.lock
index d1bb9374..e090ec82 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -151,6 +151,17 @@ dependencies = [
]
[[package]]
+name = "etcetera"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "016b04fd1e94fb833d432634245c9bb61cf1c7409668a0e7d4c3ab00c5172dec"
+dependencies = [
+ "cfg-if",
+ "dirs-next",
+ "thiserror",
+]
+
+[[package]]
name = "fern"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -271,6 +282,7 @@ name = "helix-core"
version = "0.1.0"
dependencies = [
"anyhow",
+ "etcetera",
"helix-syntax",
"once_cell",
"regex",
@@ -281,7 +293,6 @@ dependencies = [
"tree-sitter",
"unicode-segmentation",
"unicode-width",
- "xdg",
]
[[package]]
@@ -1090,9 +1101,3 @@ name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "xdg"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/helix-core/Cargo.toml b/helix-core/Cargo.toml
index 4e07712b..0bcdac67 100644
--- a/helix-core/Cargo.toml
+++ b/helix-core/Cargo.toml
@@ -22,4 +22,4 @@ regex = "1"
serde = { version = "1.0", features = ["derive"] }
-xdg = "2.0"
+etcetera = "0.3"
diff --git a/helix-core/src/lib.rs b/helix-core/src/lib.rs
index e68dc186..5ce6a63f 100644
--- a/helix-core/src/lib.rs
+++ b/helix-core/src/lib.rs
@@ -58,9 +58,11 @@ pub fn runtime_dir() -> std::path::PathBuf {
pub fn config_dir() -> std::path::PathBuf {
// TODO: allow env var override
- let xdg_dirs =
- xdg::BaseDirectories::with_prefix("helix").expect("Unable to find XDG directories!");
- xdg_dirs.get_config_home()
+ use etcetera::base_strategy::{choose_base_strategy, BaseStrategy};
+ let strategy = choose_base_strategy().expect("Unable to find the config directory!");
+ let mut path = strategy.config_dir();
+ path.push("helix");
+ path
}
pub use ropey::{Rope, RopeSlice};