summaryrefslogtreecommitdiff
path: root/helix-term/src/main.rs
diff options
context:
space:
mode:
authorBjorn Ove Hay Andersen2023-10-09 16:38:09 +0000
committerGitHub2023-10-09 16:38:09 +0000
commita8574805617d86304232b47d84fd7c7f4f773520 (patch)
tree9769a097d881c4330a71e79bdcee0bb279b0fb9f /helix-term/src/main.rs
parent5cb76e74f9bd226f1b4757f478bf49873d9ecfe6 (diff)
Set the working directory before loading the config (#8498)
Diffstat (limited to 'helix-term/src/main.rs')
-rw-r--r--helix-term/src/main.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/helix-term/src/main.rs b/helix-term/src/main.rs
index 009cbf7f..ed3478ac 100644
--- a/helix-term/src/main.rs
+++ b/helix-term/src/main.rs
@@ -115,6 +115,14 @@ FLAGS:
setup_logging(args.verbosity).context("failed to initialize logging")?;
+ // NOTE: Set the working directory early so the correct configuration is loaded. Be aware that
+ // Application::new() depends on this logic so it must be updated if this changes.
+ if let Some((path, true)) = args.files.first().map(|(path, _)| (path, path.is_dir())) {
+ helix_loader::set_current_working_dir(path)?;
+ } else if let Some(path) = &args.working_directory {
+ helix_loader::set_current_working_dir(path)?;
+ }
+
let config = match Config::load_default() {
Ok(config) => config,
Err(ConfigLoadError::Error(err)) if err.kind() == std::io::ErrorKind::NotFound => {