feat: allow passing node to collapse all
This commit is contained in:
@@ -23,21 +23,30 @@ local function buf_match()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@param node Node
|
||||||
---@param keep_buffers boolean
|
---@param keep_buffers boolean
|
||||||
function M.fn(keep_buffers)
|
function M.fn(node, keep_buffers)
|
||||||
local explorer = core.get_explorer()
|
local explorer = core.get_explorer()
|
||||||
if not explorer then
|
if not explorer then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local node = explorer:get_node_at_cursor()
|
local nodeAtCursor = explorer:get_node_at_cursor()
|
||||||
if not node then
|
if not nodeAtCursor then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local matches = buf_match()
|
local matches = buf_match()
|
||||||
|
|
||||||
Iterator.builder(explorer.nodes)
|
local nodesToIterate = explorer.nodes
|
||||||
|
if node then
|
||||||
|
local dir = node:as(DirectoryNode)
|
||||||
|
if dir then
|
||||||
|
nodesToIterate = { dir }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
Iterator.builder(nodesToIterate)
|
||||||
:hidden()
|
:hidden()
|
||||||
:applier(function(n)
|
:applier(function(n)
|
||||||
local dir = n:as(DirectoryNode)
|
local dir = n:as(DirectoryNode)
|
||||||
@@ -51,7 +60,7 @@ function M.fn(keep_buffers)
|
|||||||
:iterate()
|
:iterate()
|
||||||
|
|
||||||
explorer.renderer:draw()
|
explorer.renderer:draw()
|
||||||
utils.focus_node_or_parent(node)
|
utils.focus_node_or_parent(nodeAtCursor)
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
Reference in New Issue
Block a user