diff options
author | Lewis Russell <lewis6991@gmail.com> | 2024-09-21 16:23:00 +0100 |
---|---|---|
committer | Lewis Russell <me@lewisr.dev> | 2024-09-22 15:05:24 +0100 |
commit | 511b991e66892b4bb8176ce64c0e8fefb300f638 (patch) | |
tree | af0524ac4a781c0e719d056502be19983403cb01 /runtime/lua/vim/lsp/util.lua | |
parent | 29bceb4f758097cc6b66726f1dcd3967ad170e35 (diff) | |
download | rneovim-511b991e66892b4bb8176ce64c0e8fefb300f638.tar.gz rneovim-511b991e66892b4bb8176ce64c0e8fefb300f638.tar.bz2 rneovim-511b991e66892b4bb8176ce64c0e8fefb300f638.zip |
feat(fs.lua): add vim.fs.rm()
Analogous to the shell `rm` command.
Diffstat (limited to 'runtime/lua/vim/lsp/util.lua')
-rw-r--r-- | runtime/lua/vim/lsp/util.lua | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua index 65f84e8f87..9ee7dc8df7 100644 --- a/runtime/lua/vim/lsp/util.lua +++ b/runtime/lua/vim/lsp/util.lua @@ -652,6 +652,7 @@ function M.rename(old_fname, new_fname, opts) end end +--- @param change lsp.CreateFile local function create_file(change) local opts = change.options or {} -- from spec: Overwrite wins over `ignoreIfExists` @@ -666,23 +667,15 @@ local function create_file(change) vim.fn.bufadd(fname) end +--- @param change lsp.DeleteFile local function delete_file(change) local opts = change.options or {} local fname = vim.uri_to_fname(change.uri) - local stat = uv.fs_stat(fname) - if opts.ignoreIfNotExists and not stat then - return - end - assert(stat, 'Cannot delete not existing file or folder ' .. fname) - local flags - if stat and stat.type == 'directory' then - flags = opts.recursive and 'rf' or 'd' - else - flags = '' - end local bufnr = vim.fn.bufadd(fname) - local result = tonumber(vim.fn.delete(fname, flags)) - assert(result == 0, 'Could not delete file: ' .. fname .. ', stat: ' .. vim.inspect(stat)) + vim.fs.rm(fname, { + force = opts.ignoreIfNotExists, + recursive = opts.recursive, + }) api.nvim_buf_delete(bufnr, { force = true }) end |