commit f0e61e6d92b5ce115388f8a03f8d34f00a3dea92
parent 52b6a9a93b06bc897d9982139c143127003f42dc
Author: Tomasz N <przepompownia@users.noreply.github.com>
Date: Thu, 8 Feb 2024 22:06:54 +0100
fix(lsp): rename fails on missing parent directory #27291
Problem:
If a rename results in a path that has missing parent directory(s), it
will fail.
Solution:
Do a recursive mkdir before attempting the rename.
Diffstat:
1 file changed, 3 insertions(+), 0 deletions(-)
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
@@ -693,6 +693,9 @@ function M.rename(old_fname, new_fname, opts)
end)
end
+ local newdir = assert(vim.fs.dirname(new_fname))
+ vim.fn.mkdir(newdir, 'p')
+
local ok, err = os.rename(old_fname, new_fname)
assert(ok, err)