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.
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()|

View File

@ -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

View File

@ -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)

View File

@ -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")

View File

@ -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,
},
{