From e1dc6b3bddd0d16d0faa5d6802a975f7a7165b2a Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 25 Oct 2025 16:22:38 -0700 Subject: [PATCH] fix(explorer): windows path fixes --- lua/snacks/explorer/tree.lua | 2 +- lua/snacks/picker/config/init.lua | 2 +- lua/snacks/picker/format.lua | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lua/snacks/explorer/tree.lua b/lua/snacks/explorer/tree.lua index 6341a12c..357d92e5 100644 --- a/lua/snacks/explorer/tree.lua +++ b/lua/snacks/explorer/tree.lua @@ -26,7 +26,7 @@ local uv = vim.uv or vim.loop local function norm(path) - return svim.fs.normalize(path) + return svim.fs.normalize(path):gsub("/$", "") end local function assert_dir(path) diff --git a/lua/snacks/picker/config/init.lua b/lua/snacks/picker/config/init.lua index 1c834af7..2a91de21 100644 --- a/lua/snacks/picker/config/init.lua +++ b/lua/snacks/picker/config/init.lua @@ -82,7 +82,7 @@ function M.get(opts) if opts.cwd == true or opts.cwd == "" then opts.cwd = nil elseif opts.cwd then - opts.cwd = svim.fs.normalize(vim.fn.fnamemodify(opts.cwd, ":p")) + opts.cwd = svim.fs.normalize(vim.fn.fnamemodify(opts.cwd:gsub("[\\/]?$", "/"), ":p")) end for _, t in ipairs(todo) do if t.config then diff --git a/lua/snacks/picker/format.lua b/lua/snacks/picker/format.lua index 13437b8f..c16e5bd3 100644 --- a/lua/snacks/picker/format.lua +++ b/lua/snacks/picker/format.lua @@ -87,6 +87,7 @@ function M.filename(item, picker) if picker.opts.formatters.file.filename_only then path = vim.fn.fnamemodify(item.file, ":t") + path = path == "" and item.file or path ret[#ret + 1] = { path, base_hl, field = "file" } else ret[#ret + 1] = {