From abfd1d1b6772540364743531cc0331e08a0027a9 Mon Sep 17 00:00:00 2001 From: Samuel Durante <44513615+samueldurantes@users.noreply.github.com> Date: Thu, 11 Jul 2024 03:15:03 -0300 Subject: [PATCH] fix(#2813): macos: enable file renaming with changed capitalization (#2814) * fix(#2813): enable file renaming in `nvim-tree` with changed capitalization * fix(#2813): check if is macos --------- Co-authored-by: Alexander Courtis --- lua/nvim-tree/actions/fs/rename-file.lua | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/lua/nvim-tree/actions/fs/rename-file.lua b/lua/nvim-tree/actions/fs/rename-file.lua index d83f3f53..949d41fe 100644 --- a/lua/nvim-tree/actions/fs/rename-file.lua +++ b/lua/nvim-tree/actions/fs/rename-file.lua @@ -30,13 +30,25 @@ local function err_fmt(from, to, reason) return string.format("Cannot rename %s -> %s: %s", from, to, reason) end +local function rename_file_exists(node, to) + if not utils.is_macos then + return utils.file_exists(to) + end + + if string.lower(node) == string.lower(to) then + return false + end + + return utils.file_exists(to) +end + ---@param node Node ---@param to string function M.rename(node, to) local notify_from = notify.render_path(node.absolute_path) local notify_to = notify.render_path(to) - if utils.file_exists(to) then + if rename_file_exists(notify_from, notify_to) then notify.warn(err_fmt(notify_from, notify_to, "file already exists")) return end @@ -65,7 +77,7 @@ function M.rename(node, to) notify.warn(err_fmt(notify_from, notify_to, err)) return end - elseif not utils.file_exists(path_to_create) then + elseif not rename_file_exists(notify_from, path_to_create) then local success = vim.loop.fs_mkdir(path_to_create, 493) if not success then notify.error("Could not create folder " .. notify.render_path(path_to_create))