diff --git a/lua/file-renamer/init.lua b/lua/file-renamer/init.lua index f86e9fc..bec8193 100644 --- a/lua/file-renamer/init.lua +++ b/lua/file-renamer/init.lua @@ -181,11 +181,6 @@ function M.perform_rename() end for _, op in ipairs(ops) do - local new_dir = vim.fn.fnamemodify(op.new_path, ":h") - if vim.fn.isdirectory(new_dir) == 0 then - vim.fn.mkdir(new_dir, "p") - end - op.tmp = cwd .. "/" .. op.index .. "_RENAMER_TMP_" local ok = os.rename(op.old_path, op.tmp) @@ -195,6 +190,15 @@ function M.perform_rename() end end + for _, op in ipairs(ops) do + if not op.failed then + local new_dir = vim.fn.fnamemodify(op.new_path, ":h") + if vim.fn.isdirectory(new_dir) == 0 then + vim.fn.mkdir(new_dir, "p") + end + end + end + for _, op in ipairs(ops) do if not op.failed then local ok = os.rename(op.tmp, op.new_path)