refactor: Move dfs to utils
This commit is contained in:
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user