diff --git a/lua/nvim-tree/lib.lua b/lua/nvim-tree/lib.lua index f383e4c6..e4fefb6d 100644 --- a/lua/nvim-tree/lib.lua +++ b/lua/nvim-tree/lib.lua @@ -165,8 +165,13 @@ local function refresh_nodes(node) end end +-- this variable is used to bufferize the refresh actions +-- so only one happens every second at most +local refreshing = false + function M.refresh_tree() - if vim.v.exiting ~= vim.NIL then return end + if refreshing or vim.v.exiting ~= vim.NIL then return end + refreshing = true refresh_nodes(M.Tree) @@ -188,6 +193,8 @@ function M.refresh_tree() else M.Tree.loaded = false end + + vim.defer_fn(function() refreshing = false end, 1000) end function M.set_index_and_redraw(fname)