refactor: Move dfs to utils

This commit is contained in:
Simrat Grewal
2022-08-17 16:45:04 -07:00
parent 7c78007f25
commit f57d70ac33
2 changed files with 19 additions and 24 deletions

View File

@@ -157,18 +157,6 @@ function M._set_all_folded(folded, nodes)
_update_lines() _update_lines()
end end
local function _items_dfs(callback, children)
children = children or M.state.outline_items
for _, val in ipairs(children) do
callback(val)
if val.children then
_items_dfs(callback, val.children)
end
end
end
function M._highlight_current_item(winnr) function M._highlight_current_item(winnr)
local has_provider = providers.has_provider() local has_provider = providers.has_provider()
@@ -210,7 +198,7 @@ function M._highlight_current_item(winnr)
end end
end end
_items_dfs(cb) utils.items_dfs(cb, M.state.outline_items)
_update_lines() _update_lines()

View File

@@ -38,6 +38,16 @@ function M.debounce(f, delay)
end end
end end
function M.items_dfs(callback, children)
for _, val in ipairs(children) do
callback(val)
if val.children then
M.items_dfs(callback, val.children)
end
end
end
---Merges a symbol tree recursively, only replacing nodes ---Merges a symbol tree recursively, only replacing nodes
---which have changed. This will maintain the folding ---which have changed. This will maintain the folding
---status of any unchanged nodes. ---status of any unchanged nodes.
@@ -53,17 +63,14 @@ M.merge_items_rec = function(new_node, old_node, index, parent)
else else
for key, _ in pairs(new_node) do for key, _ in pairs(new_node) do
if if
vim.tbl_contains( vim.tbl_contains({
{
'parent', 'parent',
'children', 'children',
'folded', 'folded',
'hovered', 'hovered',
'line_in_outline', 'line_in_outline',
'hierarchy', 'hierarchy',
}, }, key)
key
)
then then
goto continue goto continue
end end