feat(event): add WillCreateFile, WillRemoveFile (#2273)
node. These are mostly going to be useful for implementing lsp file operation actions. Co-authored-by: Alexander Courtis <alex@courtis.org>
This commit is contained in:
parent
85ece277bc
commit
c3c6544ee0
@ -2186,10 +2186,20 @@ e.g. handler for node renamed: >
|
||||
handler parameters: ~
|
||||
{fname} `{string}` Absolute path to the created file
|
||||
|
||||
- Event.WillCreateFile
|
||||
handler parameters: ~
|
||||
{fname} `{string}` Absolute path to the file to be
|
||||
created
|
||||
|
||||
- Event.FileRemoved
|
||||
handler parameters: ~
|
||||
{fname} `{string}` Absolute path to the removed file.
|
||||
|
||||
- Event.WillRemoveFile
|
||||
handler parameters: ~
|
||||
{fname} `{string}` Absolute path to the file to be
|
||||
removed
|
||||
|
||||
- Event.FolderCreated
|
||||
handler parameters: ~
|
||||
{folder_name} `{string}` Absolute path to the created folder.
|
||||
|
||||
@ -9,6 +9,7 @@ local find_file = require("nvim-tree.actions.finders.find-file").fn
|
||||
local M = {}
|
||||
|
||||
local function create_and_notify(file)
|
||||
events._dispatch_will_create_file(file)
|
||||
local ok, fd = pcall(vim.loop.fs_open, file, "w", 420)
|
||||
if not ok then
|
||||
notify.error("Couldn't create file " .. file)
|
||||
|
||||
@ -81,6 +81,7 @@ function M.remove(node)
|
||||
end
|
||||
events._dispatch_folder_removed(node.absolute_path)
|
||||
else
|
||||
events._dispatch_will_remove_file(node.absolute_path)
|
||||
local success = vim.loop.fs_unlink(node.absolute_path)
|
||||
if not success then
|
||||
return notify.error("Could not remove " .. node.name)
|
||||
|
||||
@ -75,6 +75,7 @@ function M.fn(node)
|
||||
end
|
||||
end)
|
||||
else
|
||||
events._dispatch_will_remove_file(node.absolute_path)
|
||||
trash_path(function(_, rc)
|
||||
if rc ~= 0 then
|
||||
notify.warn("trash failed: " .. err_msg .. "; please see :help nvim-tree.trash")
|
||||
|
||||
@ -10,7 +10,9 @@ M.Event = {
|
||||
NodeRenamed = "NodeRenamed",
|
||||
TreeOpen = "TreeOpen",
|
||||
TreeClose = "TreeClose",
|
||||
WillCreateFile = "WillCreateFile",
|
||||
FileCreated = "FileCreated",
|
||||
WillRemoveFile = "WillRemoveFile",
|
||||
FileRemoved = "FileRemoved",
|
||||
FolderCreated = "FolderCreated",
|
||||
FolderRemoved = "FolderRemoved",
|
||||
@ -52,11 +54,21 @@ function M._dispatch_node_renamed(old_name, new_name)
|
||||
dispatch(M.Event.NodeRenamed, { old_name = old_name, new_name = new_name })
|
||||
end
|
||||
|
||||
--@private
|
||||
function M._dispatch_will_remove_file(fname)
|
||||
dispatch(M.Event.WillRemoveFile, { fname = fname })
|
||||
end
|
||||
|
||||
--@private
|
||||
function M._dispatch_file_removed(fname)
|
||||
dispatch(M.Event.FileRemoved, { fname = fname })
|
||||
end
|
||||
|
||||
--@private
|
||||
function M._dispatch_will_create_file(fname)
|
||||
dispatch(M.Event.WillCreateFile, { fname = fname })
|
||||
end
|
||||
|
||||
--@private
|
||||
function M._dispatch_file_created(fname)
|
||||
dispatch(M.Event.FileCreated, { fname = fname })
|
||||
|
||||
Loading…
Reference in New Issue
Block a user