Skip to content

Commit 3b62c6b

Browse files
feat(event): add TreeRendered (#2324)
* add TreeRendered event * pass bufnr and winnr to TreeRendered event --------- Co-authored-by: Alexander Courtis <[email protected]>
1 parent 697bfac commit 3b62c6b

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

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

+9
Original file line numberDiff line numberDiff line change
@@ -2235,6 +2235,15 @@ e.g. handler for node renamed: >
22352235
handler parameters: ~
22362236
{buf} `{number} `API buffer handle (buffer number)
22372237

2238+
- Event.TreeRendered
2239+
Invoked every time the tree is redrawn. Normally this event
2240+
happens after |Event.TreeOpen| except that handlers of this
2241+
one will have access to the tree buffer populated with the
2242+
final content.
2243+
handler parameters: ~
2244+
{bufnr} `{number} `API buffer handle (buffer number)
2245+
{winnr} `{number} `API window handle (window number)
2246+
22382247
|nvim_tree_events_startup|
22392248

22402249
There are two special startup events in the form of User autocommands:

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

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ M.Event = {
1818
FolderRemoved = "FolderRemoved",
1919
Resize = "Resize",
2020
TreeAttachedPost = "TreeAttachedPost",
21+
TreeRendered = "TreeRendered",
2122
}
2223

2324
local function get_handlers(event_name)
@@ -104,4 +105,9 @@ function M._dispatch_tree_attached_post(buf)
104105
dispatch(M.Event.TreeAttachedPost, buf)
105106
end
106107

108+
--@private
109+
function M._dispatch_on_tree_rendered(bufnr, winnr)
110+
dispatch(M.Event.TreeRendered, { bufnr = bufnr, winnr = winnr })
111+
end
112+
107113
return M

Diff for: lua/nvim-tree/renderer/init.lua

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ local core = require "nvim-tree.core"
22
local diagnostics = require "nvim-tree.diagnostics"
33
local log = require "nvim-tree.log"
44
local view = require "nvim-tree.view"
5+
local events = require "nvim-tree.events"
56
local modified = require "nvim-tree.renderer.components.modified"
67

78
local _padding = require "nvim-tree.renderer.components.padding"
@@ -89,6 +90,8 @@ function M.draw(unloaded_bufnr)
8990
view.grow_from_content()
9091

9192
log.profile_end(profile)
93+
94+
events._dispatch_on_tree_rendered(bufnr, view.get_winnr())
9295
end
9396

9497
function M.setup(opts)

0 commit comments

Comments
 (0)