fix(folding): optimize fold/unfold all

This commit is contained in:
Kevin Jeong
2023-05-22 03:14:43 -07:00
parent 512791925d
commit 0cb15e31ab

View File

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