diff --git a/lua/nvim-tree/git.lua b/lua/nvim-tree/git.lua index ebf86040..95642779 100644 --- a/lua/nvim-tree/git.lua +++ b/lua/nvim-tree/git.lua @@ -103,7 +103,7 @@ function M.git_root(path) return git_root end -function M.update_status(entries, cwd, parent_node) +function M.update_status(entries, cwd, parent_node, with_redraw) local git_root, git_status = get_git_root(cwd) if not git_root then if not create_root(cwd) then @@ -148,7 +148,9 @@ function M.update_status(entries, cwd, parent_node) end end end - require'nvim-tree.lib'.redraw() + if with_redraw then + require'nvim-tree.lib'.redraw() + end end ---Check if the given path is ignored by git. diff --git a/lua/nvim-tree/lib.lua b/lua/nvim-tree/lib.lua index d3b9a0dc..f383e4c6 100644 --- a/lua/nvim-tree/lib.lua +++ b/lua/nvim-tree/lib.lua @@ -147,7 +147,7 @@ end local function refresh_git(node) if not node then node = M.Tree end - git.update_status(node.entries, node.absolute_path or node.cwd, node) + git.update_status(node.entries, node.absolute_path or node.cwd, node, false) for _, entry in pairs(node.entries) do if entry.entries and #entry.entries > 0 then refresh_git(entry) @@ -175,6 +175,7 @@ function M.refresh_tree() vim.schedule(function() git.reload_roots() refresh_git(M.Tree) + M.redraw() end) end diff --git a/lua/nvim-tree/populate.lua b/lua/nvim-tree/populate.lua index 21f96e9f..8126c8ba 100644 --- a/lua/nvim-tree/populate.lua +++ b/lua/nvim-tree/populate.lua @@ -355,7 +355,7 @@ function M.populate(entries, cwd, parent_node) end if config.use_git() then - vim.schedule(function() git.update_status(entries, cwd, parent_node) end) + vim.schedule(function() git.update_status(entries, cwd, parent_node, true) end) end end