Skip to content

Commit c24c047

Browse files
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 <[email protected]>
1 parent 3a63717 commit c24c047

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

Diff for: doc/nvim-tree-lua.txt

+9-1
Original file line numberDiff line numberDiff line change
@@ -2769,13 +2769,21 @@ e.g. handler for node renamed: >lua
27692769
|nvim_tree_events_kind|
27702770

27712771
- Event.Ready
2772-
When NvimTree has been initialized
2772+
When NvimTree has been initialized.
2773+
• Note: Handler takes no parameter.
2774+
2775+
- Event.TreePreOpen
2776+
Invoked before the window and buffer for NvimTree are created
2777+
or opened. Before |Event.TreeOpen| event.
27732778
• Note: Handler takes no parameter.
27742779

27752780
- Event.TreeOpen
2781+
Invoked after the NvimTree is opened.
27762782
• Note: Handler takes no parameter.
27772783

27782784
- Event.TreeClose
2785+
Invoked after the NvimTree is closed, but before the window is
2786+
closed. Dispatched on |WinClosed| event for NvimTree window.
27792787
• Note: Handler takes no parameter.
27802788

27812789
- Event.Resize - When NvimTree is resized.

Diff for: lua/nvim-tree/events.lua

+6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ M.Event = {
88
Ready = "Ready",
99
WillRenameNode = "WillRenameNode",
1010
NodeRenamed = "NodeRenamed",
11+
TreePreOpen = "TreePreOpen",
1112
TreeOpen = "TreeOpen",
1213
TreeClose = "TreeClose",
1314
WillCreateFile = "WillCreateFile",
@@ -91,6 +92,11 @@ function M._dispatch_folder_removed(folder_name)
9192
dispatch(M.Event.FolderRemoved, { folder_name = folder_name })
9293
end
9394

95+
--@private
96+
function M._dispatch_on_tree_pre_open()
97+
dispatch(M.Event.TreePreOpen, nil)
98+
end
99+
94100
--@private
95101
function M._dispatch_on_tree_open()
96102
dispatch(M.Event.TreeOpen, nil)

Diff for: lua/nvim-tree/view.lua

+2
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ function M.open(options)
288288

289289
local profile = log.profile_start("view open")
290290

291+
events._dispatch_on_tree_pre_open()
291292
create_buffer()
292293
open_window()
293294
M.resize()
@@ -413,6 +414,7 @@ end
413414
---@param opts OpenInWinOpts|nil
414415
function M.open_in_win(opts)
415416
opts = opts or { hijack_current_buf = true, resize = true }
417+
events._dispatch_on_tree_pre_open()
416418
if opts.winid and vim.api.nvim_win_is_valid(opts.winid) then
417419
vim.api.nvim_set_current_win(opts.winid)
418420
end

0 commit comments

Comments
 (0)