fix(folding): optimize fold/unfold all
This commit is contained in:
@@ -145,12 +145,15 @@ function M._set_folded(folded, move_cursor, node_index)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function M._set_all_folded(folded, nodes)
|
function M._set_all_folded(folded, nodes)
|
||||||
nodes = nodes or M.state.outline_items
|
local stack = { nodes or M.state.outline_items }
|
||||||
|
|
||||||
for _, node in ipairs(nodes) do
|
while #stack > 0 do
|
||||||
node.folded = folded
|
local current_nodes = table.remove(stack, #stack)
|
||||||
if node.children then
|
for _, node in ipairs(current_nodes) do
|
||||||
M._set_all_folded(folded, node.children)
|
node.folded = folded
|
||||||
|
if node.children then
|
||||||
|
stack[#stack + 1] = node.children
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user