From 7c78007f25959a6fcf44633ccfa289ac03400229 Mon Sep 17 00:00:00 2001 From: Simrat Grewal Date: Wed, 17 Aug 2022 16:40:31 -0700 Subject: [PATCH] refactor: Cleanup how parent_node is found when folding items --- lua/symbols-outline.lua | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lua/symbols-outline.lua b/lua/symbols-outline.lua index f01a3ca..89dee7b 100644 --- a/lua/symbols-outline.lua +++ b/lua/symbols-outline.lua @@ -131,16 +131,20 @@ function M._set_folded(folded, move_cursor, node_index) _update_lines() elseif node.parent then - for i, n in ipairs(M.state.flattened_outline_items) do - if n == node.parent then - M._set_folded(folded, not node.parent.folded and folded, i) - end + local parent_node = + M.state.flattened_outline_items[node.parent.line_in_outline] + + if parent_node then + M._set_folded( + folded, + not parent_node.folded and folded, + parent_node.line_in_outline + ) end end end function M._set_all_folded(folded, nodes) - local is_root_exec = not nodes nodes = nodes or M.state.outline_items for _, node in ipairs(nodes) do