Skip to content

Commit c847354

Browse files
committed
feat: add on_tree_resize event
1 parent eb6dde4 commit c847354

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

doc/nvim-tree-lua.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,4 +1233,12 @@ on_tree_close({handler})
12331233
{handler} `{function}` Handler function, with the
12341234
signature `function()`.
12351235

1236+
*nvim-tree.events.on_tree_resize()*
1237+
on_tree_resize({handler})
1238+
Registers a handler for when NvimTree is resized.
1239+
1240+
Parameters: ~
1241+
{handler} `{function}` Handler function, with the
1242+
signature `function(size)`.
1243+
12361244
vim:tw=78:ts=4:sw=4:et:ft=help:norl:

lua/nvim-tree/events.lua

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ local Event = {
1111
FileRemoved = "FileRemoved",
1212
FolderCreated = "FolderCreated",
1313
FolderRemoved = "FolderRemoved",
14+
Resize = "Resize",
1415
}
1516

1617
local function get_handlers(event_name)
@@ -72,6 +73,11 @@ function M._dispatch_on_tree_close()
7273
dispatch(Event.TreeClose, nil)
7374
end
7475

76+
--@private
77+
function M._dispatch_on_tree_resize(size)
78+
dispatch(Event.Resize, size)
79+
end
80+
7581
--Registers a handler for the Ready event.
7682
--@param handler (function) Handler with the signature `function()`
7783
function M.on_nvim_tree_ready(handler)
@@ -126,4 +132,10 @@ function M.on_tree_close(handler)
126132
register_handler(Event.TreeClose, handler)
127133
end
128134

135+
--Registers a handler for the Resize event.
136+
--@param handler (function) Handler with the signature function(size)
137+
function M.on_tree_resize(handler)
138+
register_handler(Event.Resize, handler)
139+
end
140+
129141
return M

lua/nvim-tree/view.lua

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,12 +244,15 @@ function M.resize(size)
244244
return
245245
end
246246

247+
local new_size = get_size()
247248
if M.is_vertical() then
248-
a.nvim_win_set_width(M.get_winnr(), get_size())
249+
a.nvim_win_set_width(M.get_winnr(), new_size)
249250
else
250-
a.nvim_win_set_height(M.get_winnr(), get_size())
251+
a.nvim_win_set_height(M.get_winnr(), new_size)
251252
end
252253

254+
events._dispatch_on_tree_resize(new_size)
255+
253256
if not M.View.preserve_window_proportions then
254257
vim.cmd ":wincmd ="
255258
end

0 commit comments

Comments
 (0)