From df1f535e20bb5cfea2a4c810febb9209a87698f8 Mon Sep 17 00:00:00 2001 From: Rami Elwan Date: Sun, 18 May 2025 09:43:44 +0200 Subject: [PATCH] feat: handle api legacy calls and update signature --- .../actions/tree/modifiers/collapse-all.lua | 17 +++++++++++++---- lua/nvim-tree/api.lua | 4 ++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/lua/nvim-tree/actions/tree/modifiers/collapse-all.lua b/lua/nvim-tree/actions/tree/modifiers/collapse-all.lua index e6f54673..244ddc5f 100644 --- a/lua/nvim-tree/actions/tree/modifiers/collapse-all.lua +++ b/lua/nvim-tree/actions/tree/modifiers/collapse-all.lua @@ -23,9 +23,18 @@ local function buf_match() end end ----@param node Node ----@param keep_buffers boolean -function M.fn(node, keep_buffers) +---@param node Node|boolean|nil legacy -> opts.keep_buffers +---@param opts ApiTreeCollapseAllOpts|nil +function M.fn(node, opts) + -- legacy arguments + if type(node) == "boolean" then + opts = { + keep_buffers = node, + } + node = nil + end + opts = opts or {} + local explorer = core.get_explorer() if not explorer then return @@ -51,7 +60,7 @@ function M.fn(node, keep_buffers) :applier(function(n) local dir = n:as(DirectoryNode) if dir then - dir.open = keep_buffers and matches(dir.absolute_path) + dir.open = opts.keep_buffers and matches(dir.absolute_path) end end) :recursor(function(n) diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index 822dbf20..d4820a7f 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -182,6 +182,10 @@ Api.tree.get_nodes = wrap_explorer("get_nodes") Api.tree.find_file = wrap(actions.tree.find_file.fn) Api.tree.search_node = wrap(actions.finders.search_node.fn) + +---@class ApiTreeCollapseAllOpts +---@field keep_buffers boolean|nil default false + Api.tree.collapse_all = wrap(actions.tree.modifiers.collapse_all.fn) Api.tree.expand_all = wrap_node(actions.tree.modifiers.expand_all.fn) Api.tree.toggle_enable_filters = wrap_explorer_member("filters", "toggle")