From 45c8bd8585fd72a9f1913f545751b594b8cf0128 Mon Sep 17 00:00:00 2001 From: dogeggz Date: Wed, 11 Sep 2024 01:03:31 -0400 Subject: [PATCH 1/3] Fix Winodws path issue by replacing backslashes with forward slashes --- lua/nvim-tree/utils.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-tree/utils.lua b/lua/nvim-tree/utils.lua index 7da0a0c9cf5..b34518b14f8 100644 --- a/lua/nvim-tree/utils.lua +++ b/lua/nvim-tree/utils.lua @@ -290,7 +290,7 @@ function M.escape_special_chars(path) if path == nil then return path end - return M.is_windows and path:gsub("%(", "\\("):gsub("%)", "\\)") or path + return M.is_windows and path:gsub("\\", "/") or path end --- Create empty sub-tables if not present From c4ed8388dba97afe61d5049c523366d0474c845f Mon Sep 17 00:00:00 2001 From: dogeggz Date: Wed, 11 Sep 2024 01:37:24 -0400 Subject: [PATCH 2/3] Fix #2862 (handle all filename-related tasks) --- lua/nvim-tree/actions/node/open-file.lua | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index c9bea9e1fb8..cfc55f39a71 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -333,9 +333,9 @@ local function open_in_new_window(filename, mode) local fname if M.relative_path then - fname = utils.escape_special_chars(vim.fn.fnameescape(utils.path_relative(filename, vim.fn.getcwd()))) + fname = vim.fn.fnameescape(utils.path_relative(filename, vim.fn.getcwd())) else - fname = utils.escape_special_chars(vim.fn.fnameescape(filename)) + fname = vim.fn.fnameescape(filename) end local command @@ -372,35 +372,36 @@ end ---@param mode string ---@param filename string function M.fn(mode, filename) + local fname = utils.escape_special_chars(filename) if type(mode) ~= "string" then mode = "" end if mode == "tabnew" then - return open_file_in_tab(filename) + return open_file_in_tab(fname) end if mode == "drop" then - return drop(filename) + return drop(fname) end if mode == "tab_drop" then - return tab_drop(filename) + return tab_drop(fname) end if mode == "edit_in_place" then - return edit_in_current_buf(filename) + return edit_in_current_buf(fname) end - local buf_loaded = is_already_loaded(filename) + local buf_loaded = is_already_loaded(fname) - local found_win = utils.get_win_buf_from_path(filename) + local found_win = utils.get_win_buf_from_path(fname) if found_win and (mode == "preview" or mode == "preview_no_picker") then return end if not found_win then - open_in_new_window(filename, mode) + open_in_new_window(fname, mode) else vim.api.nvim_set_current_win(found_win) vim.bo.bufhidden = "" From 8d26f40412995d810f7ad6d423c93d79e04da6cd Mon Sep 17 00:00:00 2001 From: dogeggz Date: Fri, 13 Sep 2024 23:08:09 -0400 Subject: [PATCH 3/3] fix type mismatch --- lua/nvim-tree/actions/node/open-file.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index cfc55f39a71..cb72df3a20e 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -395,7 +395,7 @@ function M.fn(mode, filename) local buf_loaded = is_already_loaded(fname) - local found_win = utils.get_win_buf_from_path(fname) + local found_win = utils.get_win_buf_from_path(filename) if found_win and (mode == "preview" or mode == "preview_no_picker") then return end