feat: add TreePreOpen event (#3105)
* feat: Add `TreePreOpen` and `TreePreClose` events * docs: Update docs for `TreePreOpen` and `TreePreClose` events * chore: remove `TreePreClose` event and update dispatch of `TreePreOpen` --------- Co-authored-by: Alexander Courtis <alex@courtis.org>
This commit is contained in:
parent
3a63717d3d
commit
c24c0470d9
@ -2769,13 +2769,21 @@ e.g. handler for node renamed: >lua
|
||||
|nvim_tree_events_kind|
|
||||
|
||||
- Event.Ready
|
||||
When NvimTree has been initialized
|
||||
When NvimTree has been initialized.
|
||||
• Note: Handler takes no parameter.
|
||||
|
||||
- Event.TreePreOpen
|
||||
Invoked before the window and buffer for NvimTree are created
|
||||
or opened. Before |Event.TreeOpen| event.
|
||||
• Note: Handler takes no parameter.
|
||||
|
||||
- Event.TreeOpen
|
||||
Invoked after the NvimTree is opened.
|
||||
• Note: Handler takes no parameter.
|
||||
|
||||
- Event.TreeClose
|
||||
Invoked after the NvimTree is closed, but before the window is
|
||||
closed. Dispatched on |WinClosed| event for NvimTree window.
|
||||
• Note: Handler takes no parameter.
|
||||
|
||||
- Event.Resize - When NvimTree is resized.
|
||||
|
||||
@ -8,6 +8,7 @@ M.Event = {
|
||||
Ready = "Ready",
|
||||
WillRenameNode = "WillRenameNode",
|
||||
NodeRenamed = "NodeRenamed",
|
||||
TreePreOpen = "TreePreOpen",
|
||||
TreeOpen = "TreeOpen",
|
||||
TreeClose = "TreeClose",
|
||||
WillCreateFile = "WillCreateFile",
|
||||
@ -91,6 +92,11 @@ 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)
|
||||
|
||||
@ -288,6 +288,7 @@ function M.open(options)
|
||||
|
||||
local profile = log.profile_start("view open")
|
||||
|
||||
events._dispatch_on_tree_pre_open()
|
||||
create_buffer()
|
||||
open_window()
|
||||
M.resize()
|
||||
@ -413,6 +414,7 @@ end
|
||||
---@param opts OpenInWinOpts|nil
|
||||
function M.open_in_win(opts)
|
||||
opts = opts or { hijack_current_buf = true, resize = true }
|
||||
events._dispatch_on_tree_pre_open()
|
||||
if opts.winid and vim.api.nvim_win_is_valid(opts.winid) then
|
||||
vim.api.nvim_set_current_win(opts.winid)
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user