aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/util.lua
diff options
context:
space:
mode:
authorshaunsingh <shaunsingh0207@gmail.com>2022-09-24 06:46:21 -0400
committerGitHub <noreply@github.com>2022-09-24 12:46:21 +0200
commitcaf5738fa9cc12fd448a9c0787a3ebf0c8e696e9 (patch)
tree8c5758cc49f5a8a27547727e81ef25d46b4df028 /runtime/lua/vim/lsp/util.lua
parent24b5449b3d9b39a436bb8fe935116afa15a9473e (diff)
downloadrneovim-caf5738fa9cc12fd448a9c0787a3ebf0c8e696e9.tar.gz
rneovim-caf5738fa9cc12fd448a9c0787a3ebf0c8e696e9.tar.bz2
rneovim-caf5738fa9cc12fd448a9c0787a3ebf0c8e696e9.zip
fix(lsp): create missing directory before creating file (#19835)
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r--runtime/lua/vim/lsp/util.lua5
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 1909dbd4d1..64512a9739 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -772,8 +772,11 @@ local function create_file(change)
-- from spec: Overwrite wins over `ignoreIfExists`
local fname = vim.uri_to_fname(change.uri)
if not opts.ignoreIfExists or opts.overwrite then
+ vim.fn.mkdir(vim.fs.dirname(fname), 'p')
local file = io.open(fname, 'w')
- file:close()
+ if file then
+ file:close()
+ end
end
vim.fn.bufadd(fname)
end