@@ -55,84 +55,6 @@ function M.get_nodes()
5555 return explorer and explorer :clone ()
5656end
5757
58- --- TODO move to node
59- --- Group empty folders
60- -- Recursively group nodes
61- --- @param node Node
62- --- @return Node[]
63- function M .group_empty_folders (node )
64- local is_root = not node .parent
65- local child_folder_only = node :has_one_child_folder () and node .nodes [1 ]
66- if M .group_empty and not is_root and child_folder_only then
67- node .group_next = child_folder_only
68- local ns = M .group_empty_folders (child_folder_only )
69- node .nodes = ns or {}
70- return ns
71- end
72- return node .nodes
73- end
74-
75- --- TODO move to node
76- --- Ungroup empty folders
77- -- If a node is grouped, ungroup it: put node.group_next to the node.nodes and set node.group_next to nil
78- --- @param node Node
79- function M .ungroup_empty_folders (node )
80- local cur = node
81- while cur and cur .group_next do
82- cur .nodes = { cur .group_next }
83- cur .group_next = nil
84- cur = cur .nodes [1 ]
85- end
86- end
87-
88- --- TODO move to node
89- -- Toggle group empty folders
90- --- @param head_node Node
91- local function toggle_group_folders (head_node )
92- local is_grouped = head_node .group_next ~= nil
93-
94- if is_grouped then
95- M .ungroup_empty_folders (head_node )
96- else
97- M .group_empty_folders (head_node )
98- end
99- end
100-
101- --- TODO move to node
102- --- @param node Node
103- function M .expand_or_collapse (node , toggle_group )
104- local explorer = core .get_explorer ()
105-
106- toggle_group = toggle_group or false
107- if node .has_children then
108- node .has_children = false
109- end
110-
111- if # node .nodes == 0 and explorer then
112- explorer :expand (node )
113- end
114-
115- local head_node = node :get_parent_of_group ()
116- if toggle_group then
117- toggle_group_folders (head_node )
118- end
119-
120- local open = node :last_group_node ().open
121- local next_open
122- if toggle_group then
123- next_open = open
124- else
125- next_open = not open
126- end
127- for _ , n in ipairs (head_node :get_all_nodes_in_group ()) do
128- n .open = next_open
129- end
130-
131- if explorer then
132- explorer .renderer :draw ()
133- end
134- end
135-
13658function M .set_target_win ()
13759 local id = vim .api .nvim_get_current_win ()
13860 local tree_id = view .get_winnr ()
0 commit comments