From cf9582962f27e1cca5e17e8209d5ae9ed650b0ec Mon Sep 17 00:00:00 2001 From: kiyan Date: Tue, 20 Jul 2021 00:05:03 +0200 Subject: [PATCH] fix: add refresh guard mecanism to avoid doing too many updates --- lua/nvim-tree/lib.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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)