From 5b9d387ef33be95c7ca82156b9f976257c78c2a1 Mon Sep 17 00:00:00 2001 From: SteveCoding125 <43781517+SteveCoding125@users.noreply.github.com> Date: Thu, 6 Nov 2025 11:07:19 +0100 Subject: [PATCH] fix(vim): change nvimrc base_dir for windows (#1433) --- locales/app.yml | 8 ++++++++ src/steps/vim.rs | 29 +++++++++++++++++++++++------ 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/locales/app.yml b/locales/app.yml index 5f6b4618..06ca70d9 100644 --- a/locales/app.yml +++ b/locales/app.yml @@ -958,6 +958,14 @@ _version: 2 zh_CN: "拉取 %{repo}" zh_TW: "拉取 %{repo}" de: "Würde %{repo} abrufen" +"No Neovim config found": + en: "No Neovim config found" + lt: "Neovim konfigūracija nerasta" + es: "No se encontró ninguna configuración de Neovim" + fr: "Aucune configuration Neovim trouvée" + zh_CN: "未找到 Neovim 配置" + zh_TW: "未找到 Neovim 配置" + de: "Keine Neovim-Konfiguration gefunden" "Node Package Manager": en: "Node Package Manager" lt: "Node paketų tvarkyklė (npm)" diff --git a/src/steps/vim.rs b/src/steps/vim.rs index d0b33ed4..daf5976e 100644 --- a/src/steps/vim.rs +++ b/src/steps/vim.rs @@ -29,15 +29,32 @@ pub fn vimrc() -> Result { fn nvimrc() -> Result { #[cfg(unix)] - let base_dir = crate::XDG_DIRS.config_dir(); + let bases: Vec = vec![crate::XDG_DIRS.config_dir()]; #[cfg(windows)] - let base_dir = crate::WINDOWS_DIRS.cache_dir(); + let mut bases: Vec = vec![crate::WINDOWS_DIRS.cache_dir()]; - base_dir - .join("nvim/init.vim") - .require() - .or_else(|_| base_dir.join("nvim/init.lua").require()) + #[cfg(windows)] + { + if let Some(xdg) = std::env::var_os("XDG_CONFIG_HOME") + .map(PathBuf::from) + .filter(|path| path.is_absolute()) + { + bases.insert(0, xdg); + } + } + + for base_dir in bases { + if let Ok(p) = base_dir + .join("nvim/init.vim") + .require() + .or_else(|_| base_dir.join("nvim/init.lua").require()) + { + return Ok(p); + } + } + + Err(SkipStep(format!("{}", t!("No Neovim config found"))).into()) } fn upgrade_script() -> Result {