feat: Add TreePreOpen and TreePreClose events

This commit is contained in:
Devansh Sharma 2025-04-12 07:54:11 +05:30
parent 5bea2b3752
commit e9372f3234
3 changed files with 15 additions and 0 deletions

View File

@ -8,7 +8,9 @@ M.Event = {
Ready = "Ready",
WillRenameNode = "WillRenameNode",
NodeRenamed = "NodeRenamed",
TreePreOpen = "TreePreOpen",
TreeOpen = "TreeOpen",
TreePreClose = "TreePreClose",
TreeClose = "TreeClose",
WillCreateFile = "WillCreateFile",
FileCreated = "FileCreated",
@ -91,11 +93,21 @@ function M._dispatch_folder_removed(folder_name)
dispatch(M.Event.FolderRemoved, { folder_name = folder_name })
end
--@private
function M._dispatch_on_tree_pre_open()
dispatch(M.Event.TreePreOpen, nil)
end
--@private
function M._dispatch_on_tree_open()
dispatch(M.Event.TreeOpen, nil)
end
--@private
function M._dispatch_on_tree_pre_close()
dispatch(M.Event.TreePreClose, nil)
end
--@private
function M._dispatch_on_tree_close()
dispatch(M.Event.TreeClose, nil)

View File

@ -110,6 +110,7 @@ function M.open(opts)
local explorer = core.get_explorer()
events._dispatch_on_tree_pre_open()
if should_hijack_current_buf() then
view.close_this_tab_only()
view.open_in_win()

View File

@ -238,6 +238,7 @@ local function close(tabpage)
return
end
save_tab_state(tabpage)
events._dispatch_on_tree_pre_close()
switch_buf_if_last_buf()
local tree_win = M.get_winnr(tabpage)
local current_win = vim.api.nvim_get_current_win()
@ -289,6 +290,7 @@ function M.open(options)
local profile = log.profile_start("view open")
events._dispatch_on_tree_pre_open()
create_buffer()
open_window()
M.resize()