refactor: Move dfs to utils
This commit is contained in:
@@ -157,18 +157,6 @@ function M._set_all_folded(folded, nodes)
|
||||
_update_lines()
|
||||
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)
|
||||
local has_provider = providers.has_provider()
|
||||
|
||||
@@ -210,7 +198,7 @@ function M._highlight_current_item(winnr)
|
||||
end
|
||||
end
|
||||
|
||||
_items_dfs(cb)
|
||||
utils.items_dfs(cb, M.state.outline_items)
|
||||
|
||||
_update_lines()
|
||||
|
||||
|
||||
@@ -38,6 +38,16 @@ function M.debounce(f, delay)
|
||||
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
|
||||
---which have changed. This will maintain the folding
|
||||
---status of any unchanged nodes.
|
||||
@@ -53,17 +63,14 @@ M.merge_items_rec = function(new_node, old_node, index, parent)
|
||||
else
|
||||
for key, _ in pairs(new_node) do
|
||||
if
|
||||
vim.tbl_contains(
|
||||
{
|
||||
'parent',
|
||||
'children',
|
||||
'folded',
|
||||
'hovered',
|
||||
'line_in_outline',
|
||||
'hierarchy',
|
||||
},
|
||||
key
|
||||
)
|
||||
vim.tbl_contains({
|
||||
'parent',
|
||||
'children',
|
||||
'folded',
|
||||
'hovered',
|
||||
'line_in_outline',
|
||||
'hierarchy',
|
||||
}, key)
|
||||
then
|
||||
goto continue
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user