adapt to feedback

This commit is contained in:
Lorentz Lasson 2025-05-31 16:23:14 +02:00
parent 9e4ebe8dad
commit 78b05f2f14
5 changed files with 35 additions and 20 deletions

View File

@ -339,17 +339,17 @@ See |nvim-tree-highlight| for details.
Collapses the nvim-tree recursively. 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* *:NvimTreeCollapseFolder*
Collapses the folder under cursor 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* *:NvimTreeCollapseKeepBuffers*
@ -1837,16 +1837,22 @@ tree.find_file({opts}) *nvim-tree-api.tree.find_file()*
tree.search_node() *nvim-tree-api.tree.search_node()* tree.search_node() *nvim-tree-api.tree.search_node()*
Open the search dialogue as per the search_node action. 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. Collapse the tree.
Parameters: ~ Parameters: ~
• {opts} (table) optional parameters • {opts} (table) parameters
Parameters: ~ Parameters: ~
• {under_cursor} (boolean) only collapse the node under cursor • {under_cursor} (boolean) only collapse the node under cursor
• {keep_buffers} (boolean) do not collapse nodes with open buffers. • {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()* tree.expand_all({node}) *nvim-tree-api.tree.expand_all()*
Recursively expand all nodes under the tree root or specified folder. 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_all_tabs()|
|nvim-tree-api.tree.close_in_this_tab()| |nvim-tree-api.tree.close_in_this_tab()|
|nvim-tree-api.tree.collapse_all()| |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.expand_all()|
|nvim-tree-api.tree.find_file()| |nvim-tree-api.tree.find_file()|
|nvim-tree-api.tree.focus()| |nvim-tree-api.tree.focus()|

View File

@ -23,12 +23,12 @@ local function buf_match()
end end
end end
---@param opts ApiTreeCollapseOpts|nil ---@param opts ApiTreeCollapseOpts | nil
function M.fn(opts) function M.collapse(opts)
opts = opts or {} opts = opts or {
local keep_buffers = opts.keep_buffers or false keep_buffers = false,
local under_cursor = opts.under_cursor or false under_cursor = true
}
local explorer = core.get_explorer() local explorer = core.get_explorer()
if not explorer then if not explorer then
return return
@ -42,11 +42,13 @@ function M.fn(opts)
local matches = buf_match() local matches = buf_match()
local selected_nodes 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 if not node or not node.nodes then
return return
end end
selected_nodes = node.nodes selected_nodes = node.nodes
dir.open = false
else else
selected_nodes = explorer.nodes selected_nodes = explorer.nodes
end end
@ -56,7 +58,7 @@ function M.fn(opts)
:applier(function(n) :applier(function(n)
local dir = n:as(DirectoryNode) local dir = n:as(DirectoryNode)
if dir then if dir then
dir.open = keep_buffers and matches(dir.absolute_path) dir.open = opts.keep_buffers and matches(dir.absolute_path)
end end
end) end)
:recursor(function(n) :recursor(function(n)
@ -68,4 +70,10 @@ function M.fn(opts)
utils.focus_node_or_parent(node) utils.focus_node_or_parent(node)
end 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 return M

View File

@ -1,6 +1,6 @@
local M = {} 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") M.expand_all = require("nvim-tree.actions.tree.modifiers.expand-all")
function M.setup(opts) function M.setup(opts)

View File

@ -187,7 +187,8 @@ Api.tree.search_node = wrap(actions.finders.search_node.fn)
---@field under_cursor boolean ---@field under_cursor boolean
---@field keep_buffers 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.expand_all = wrap_node(actions.tree.modifiers.expand_all.fn)
Api.tree.toggle_enable_filters = wrap_explorer_member("filters", "toggle") Api.tree.toggle_enable_filters = wrap_explorer_member("filters", "toggle")
Api.tree.toggle_gitignore_filter = wrap_explorer_member_args("filters", "toggle", "git_ignored") Api.tree.toggle_gitignore_filter = wrap_explorer_member_args("filters", "toggle", "git_ignored")

View File

@ -121,7 +121,7 @@ local CMDS = {
bar = true, bar = true,
}, },
command = function() command = function()
api.tree.collapse_all({ under_cursor = false, keep_buffers = false }) api.tree.collapse({ under_cursor = false, keep_buffers = false })
end, end,
}, },
{ {
@ -131,7 +131,7 @@ local CMDS = {
bar = true, bar = true,
}, },
command = function() command = function()
api.tree.collapse_all({ under_cursor = true, keep_buffers = false }) api.tree.collapse({ under_cursor = true, keep_buffers = false })
end, end,
}, },
{ {
@ -141,7 +141,7 @@ local CMDS = {
bar = true, bar = true,
}, },
command = function() command = function()
api.tree.collapse_all(true) api.tree.collapse({ under_cursor = false, keep_buffers = true })
end, end,
}, },
{ {