fix: do not redraw git on each folder when updating

This commit is contained in:
kiyan
2021-07-19 22:26:08 +02:00
parent f178c8c8c5
commit 42b23246bc
3 changed files with 7 additions and 4 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -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