From f054a0240c1d8b9bf5b8cd5ef5925409d1d063de Mon Sep 17 00:00:00 2001 From: ian Date: Wed, 25 Mar 2026 14:33:28 +0800 Subject: [PATCH] Enhance bufpath for terminal paths and Windows support Refactor bufpath function to handle terminal window paths and fix duplicated driver letters on Windows. --- lua/lazyvim/util/root.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lua/lazyvim/util/root.lua b/lua/lazyvim/util/root.lua index 2afd5a86..09d2411d 100644 --- a/lua/lazyvim/util/root.lua +++ b/lua/lazyvim/util/root.lua @@ -67,9 +67,13 @@ function M.detectors.pattern(buf, patterns) end function M.bufpath(buf) - local path = LazyVim.norm(vim.api.nvim_buf_get_name(assert(buf))) - -- Use pattern to extract path for terminal windows - return M.realpath(path and path:match("^term:/([^:]+)") or path) + local name = LazyVim.norm(vim.api.nvim_buf_get_name(assert(buf))) + local path = name and name:match("^term:/(.+/%d+):") or name + -- fix duplicated driver letters for Windows + if vim.fn.has("win32") == 1 and path and path:find(":/.*:/") then + path = path:gsub("^.-%:/", "", 1) + end + return LazyVim.root.realpath(path) end function M.cwd()