From f0e61e6d92b5ce115388f8a03f8d34f00a3dea92 Mon Sep 17 00:00:00 2001 From: Tomasz N Date: Thu, 8 Feb 2024 22:06:54 +0100 Subject: [PATCH] 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. --- runtime/lua/vim/lsp/util.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index b5e15e135c..86bef1ac8a 100644 --- 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)