mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 03:48:18 +00:00
fix(lsp): rename undofile when renaming (#27684)
Problem: After `rename()`, the undo information for the renamed file(s) are lost. Solution: Rename the undofile as well.
This commit is contained in:
@@ -724,6 +724,13 @@ function M.rename(old_fname, new_fname, opts)
|
||||
local ok, err = os.rename(old_fname_full, new_fname)
|
||||
assert(ok, err)
|
||||
|
||||
local old_undofile = vim.fn.undofile(old_fname_full)
|
||||
if uv.fs_stat(old_undofile) ~= nil then
|
||||
local new_undofile = vim.fn.undofile(new_fname)
|
||||
vim.fn.mkdir(assert(vim.fs.dirname(new_undofile)), 'p')
|
||||
os.rename(old_undofile, new_undofile)
|
||||
end
|
||||
|
||||
if vim.fn.isdirectory(new_fname) == 0 then
|
||||
local newbuf = vim.fn.bufadd(new_fname)
|
||||
if win then
|
||||
|
Reference in New Issue
Block a user