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|
|
|nvim_tree_events_kind|
|
||||||
|
|
||||||
- Event.Ready
|
- 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.
|
• Note: Handler takes no parameter.
|
||||||
|
|
||||||
- Event.TreeOpen
|
- Event.TreeOpen
|
||||||
|
Invoked after the NvimTree is opened.
|
||||||
• Note: Handler takes no parameter.
|
• Note: Handler takes no parameter.
|
||||||
|
|
||||||
- Event.TreeClose
|
- 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.
|
• Note: Handler takes no parameter.
|
||||||
|
|
||||||
- Event.Resize - When NvimTree is resized.
|
- Event.Resize - When NvimTree is resized.
|
||||||
|
|||||||
@ -8,6 +8,7 @@ M.Event = {
|
|||||||
Ready = "Ready",
|
Ready = "Ready",
|
||||||
WillRenameNode = "WillRenameNode",
|
WillRenameNode = "WillRenameNode",
|
||||||
NodeRenamed = "NodeRenamed",
|
NodeRenamed = "NodeRenamed",
|
||||||
|
TreePreOpen = "TreePreOpen",
|
||||||
TreeOpen = "TreeOpen",
|
TreeOpen = "TreeOpen",
|
||||||
TreeClose = "TreeClose",
|
TreeClose = "TreeClose",
|
||||||
WillCreateFile = "WillCreateFile",
|
WillCreateFile = "WillCreateFile",
|
||||||
@ -91,6 +92,11 @@ function M._dispatch_folder_removed(folder_name)
|
|||||||
dispatch(M.Event.FolderRemoved, { folder_name = folder_name })
|
dispatch(M.Event.FolderRemoved, { folder_name = folder_name })
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--@private
|
||||||
|
function M._dispatch_on_tree_pre_open()
|
||||||
|
dispatch(M.Event.TreePreOpen, nil)
|
||||||
|
end
|
||||||
|
|
||||||
--@private
|
--@private
|
||||||
function M._dispatch_on_tree_open()
|
function M._dispatch_on_tree_open()
|
||||||
dispatch(M.Event.TreeOpen, nil)
|
dispatch(M.Event.TreeOpen, nil)
|
||||||
|
|||||||
@ -288,6 +288,7 @@ function M.open(options)
|
|||||||
|
|
||||||
local profile = log.profile_start("view open")
|
local profile = log.profile_start("view open")
|
||||||
|
|
||||||
|
events._dispatch_on_tree_pre_open()
|
||||||
create_buffer()
|
create_buffer()
|
||||||
open_window()
|
open_window()
|
||||||
M.resize()
|
M.resize()
|
||||||
@ -413,6 +414,7 @@ end
|
|||||||
---@param opts OpenInWinOpts|nil
|
---@param opts OpenInWinOpts|nil
|
||||||
function M.open_in_win(opts)
|
function M.open_in_win(opts)
|
||||||
opts = opts or { hijack_current_buf = true, resize = true }
|
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
|
if opts.winid and vim.api.nvim_win_is_valid(opts.winid) then
|
||||||
vim.api.nvim_set_current_win(opts.winid)
|
vim.api.nvim_set_current_win(opts.winid)
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user