From 78b05f2f149267667412343bd5dc62f14547f33f Mon Sep 17 00:00:00 2001 From: Lorentz Lasson Date: Sat, 31 May 2025 16:23:14 +0200 Subject: [PATCH] adapt to feedback --- doc/nvim-tree-lua.txt | 20 ++++++++++------ .../{collapse-all.lua => collapse.lua} | 24 ++++++++++++------- lua/nvim-tree/actions/tree/modifiers/init.lua | 2 +- lua/nvim-tree/api.lua | 3 ++- lua/nvim-tree/commands.lua | 6 ++--- 5 files changed, 35 insertions(+), 20 deletions(-) rename lua/nvim-tree/actions/tree/modifiers/{collapse-all.lua => collapse.lua} (73%) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index b6e940d2..150a62f1 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -339,17 +339,17 @@ See |nvim-tree-highlight| for details. Collapses the nvim-tree recursively. - See |nvim-tree-api.tree.collapse_all()| + See |nvim-tree-api.tree.collapse()| - Calls: api.tree.collapse_all({ under_cursor = false, keep_buffers = false, }) + Calls: api.tree.collapse({ under_cursor = false, keep_buffers = false, }) *:NvimTreeCollapseFolder* Collapses the folder under cursor - See |nvim-tree-api.tree.collapse_all()| + See |nvim-tree-api.tree.collapse()| - Calls: api.tree.collapse_all({ under_cursor = true, keep_buffers = false, }) + Calls: api.tree.collapse({ under_cursor = true, keep_buffers = false, }) *:NvimTreeCollapseKeepBuffers* @@ -1837,16 +1837,22 @@ tree.find_file({opts}) *nvim-tree-api.tree.find_file()* tree.search_node() *nvim-tree-api.tree.search_node()* Open the search dialogue as per the search_node action. -tree.collapse_all({opts}) *nvim-tree-api.tree.collapse_all()* +tree.collapse({opts}) *nvim-tree-api.tree.collapse()* Collapse the tree. Parameters: ~ - • {opts} (table) optional parameters + • {opts} (table) parameters Parameters: ~ • {under_cursor} (boolean) only collapse the node under cursor • {keep_buffers} (boolean) do not collapse nodes with open buffers. +tree.collapse_all({keep_buffers}) *nvim-tree-api.tree.collapse_all()* + Collapse the tree. + + Parameters: ~ + • {keep_buffers} (boolean) do not collapse nodes with open buffers. + tree.expand_all({node}) *nvim-tree-api.tree.expand_all()* Recursively expand all nodes under the tree root or specified folder. @@ -3352,7 +3358,7 @@ highlight group is not, hard linking as follows: > |nvim-tree-api.tree.close_in_all_tabs()| |nvim-tree-api.tree.close_in_this_tab()| |nvim-tree-api.tree.collapse_all()| -|nvim-tree-api.tree.collapse +|nvim-tree-api.tree.collapse()| |nvim-tree-api.tree.expand_all()| |nvim-tree-api.tree.find_file()| |nvim-tree-api.tree.focus()| diff --git a/lua/nvim-tree/actions/tree/modifiers/collapse-all.lua b/lua/nvim-tree/actions/tree/modifiers/collapse.lua similarity index 73% rename from lua/nvim-tree/actions/tree/modifiers/collapse-all.lua rename to lua/nvim-tree/actions/tree/modifiers/collapse.lua index 5f917dc6..0f1d923e 100644 --- a/lua/nvim-tree/actions/tree/modifiers/collapse-all.lua +++ b/lua/nvim-tree/actions/tree/modifiers/collapse.lua @@ -23,12 +23,12 @@ local function buf_match() end end ----@param opts ApiTreeCollapseOpts|nil -function M.fn(opts) - opts = opts or {} - local keep_buffers = opts.keep_buffers or false - local under_cursor = opts.under_cursor or false - +---@param opts ApiTreeCollapseOpts | nil +function M.collapse(opts) + opts = opts or { + keep_buffers = false, + under_cursor = true + } local explorer = core.get_explorer() if not explorer then return @@ -42,11 +42,13 @@ function M.fn(opts) local matches = buf_match() local selected_nodes - if under_cursor then + if opts.under_cursor then + local dir = node:as(DirectoryNode) if not node or not node.nodes then return end selected_nodes = node.nodes + dir.open = false else selected_nodes = explorer.nodes end @@ -56,7 +58,7 @@ function M.fn(opts) :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) @@ -68,4 +70,10 @@ function M.fn(opts) utils.focus_node_or_parent(node) end +---@param keep_buffers boolean | nil +function M.collapse_all(keep_buffers) + keep_buffers = keep_buffers or false + M.collapse({ keep_buffers = keep_buffers, under_cursor = false }) +end + return M diff --git a/lua/nvim-tree/actions/tree/modifiers/init.lua b/lua/nvim-tree/actions/tree/modifiers/init.lua index f3ce27fc..8b66dd61 100644 --- a/lua/nvim-tree/actions/tree/modifiers/init.lua +++ b/lua/nvim-tree/actions/tree/modifiers/init.lua @@ -1,6 +1,6 @@ local M = {} -M.collapse_all = require("nvim-tree.actions.tree.modifiers.collapse-all") +M.collapse = require("nvim-tree.actions.tree.modifiers.collapse") M.expand_all = require("nvim-tree.actions.tree.modifiers.expand-all") function M.setup(opts) diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index 159c6110..2fe2bf9c 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -187,7 +187,8 @@ Api.tree.search_node = wrap(actions.finders.search_node.fn) ---@field under_cursor boolean ---@field keep_buffers boolean -Api.tree.collapse_all = wrap(actions.tree.modifiers.collapse_all.fn) +Api.tree.collapse = wrap(actions.tree.modifiers.collapse.collapse) +Api.tree.collapse_all = wrap(actions.tree.modifiers.collapse.collapse_all) Api.tree.expand_all = wrap_node(actions.tree.modifiers.expand_all.fn) Api.tree.toggle_enable_filters = wrap_explorer_member("filters", "toggle") Api.tree.toggle_gitignore_filter = wrap_explorer_member_args("filters", "toggle", "git_ignored") diff --git a/lua/nvim-tree/commands.lua b/lua/nvim-tree/commands.lua index 98f62987..ff08c041 100644 --- a/lua/nvim-tree/commands.lua +++ b/lua/nvim-tree/commands.lua @@ -121,7 +121,7 @@ local CMDS = { bar = true, }, command = function() - api.tree.collapse_all({ under_cursor = false, keep_buffers = false }) + api.tree.collapse({ under_cursor = false, keep_buffers = false }) end, }, { @@ -131,7 +131,7 @@ local CMDS = { bar = true, }, command = function() - api.tree.collapse_all({ under_cursor = true, keep_buffers = false }) + api.tree.collapse({ under_cursor = true, keep_buffers = false }) end, }, { @@ -141,7 +141,7 @@ local CMDS = { bar = true, }, command = function() - api.tree.collapse_all(true) + api.tree.collapse({ under_cursor = false, keep_buffers = true }) end, }, {