* add todo * refactor(#2886): multi instance: node class refactoring: extract links, *_git_status (#2944) * extract DirectoryLinkNode and FileLinkNode, move Node methods to children * temporarily move DirectoryNode methods into BaseNode for easier reviewing * move mostly unchanged DirectoryNode methods back to BaseNode * tidy * git.git_status_file takes an array * update git status of links * luacheck hack * safer git_status_dir * refactor(#2886): multi instance: node class refactoring: DirectoryNode:expand_or_collapse (#2957) move expand_or_collapse to DirectoryNode * refactor(#2886): multi instance: node group functions refactoring (#2959) * move last_group_node to DirectoryNode * move add BaseNode:as and more doc * revert parameter name changes * revert parameter name changes * add Class * move group methods into DN * tidy group methods * tidy group methods * tidy group methods * tidy group methods * parent is DirectoryNode * tidy expand all * BaseNode -> Node * move watcher to DirectoryNode * last_group_node is DirectoryNode only * simplify create-file * simplify parent * simplify collapse-all * simplify live-filter * style * more type safety
This commit is contained in:
committed by
GitHub
parent
63c7ad9037
commit
68be6df2fc
@@ -9,6 +9,9 @@ local help = require("nvim-tree.help")
|
||||
local keymap = require("nvim-tree.keymap")
|
||||
local notify = require("nvim-tree.notify")
|
||||
|
||||
local DirectoryNode = require("nvim-tree.node.directory")
|
||||
local RootNode = require("nvim-tree.node.root")
|
||||
|
||||
local Api = {
|
||||
tree = {},
|
||||
node = {
|
||||
@@ -135,9 +138,9 @@ Api.tree.change_root = wrap(function(...)
|
||||
end)
|
||||
|
||||
Api.tree.change_root_to_node = wrap_node(function(node)
|
||||
if node.name == ".." then
|
||||
if node.name == ".." or node:is(RootNode) then
|
||||
actions.root.change_dir.fn("..")
|
||||
elseif node.nodes ~= nil then
|
||||
elseif node:is(DirectoryNode) then
|
||||
actions.root.change_dir.fn(node:last_group_node().absolute_path)
|
||||
end
|
||||
end)
|
||||
@@ -208,12 +211,13 @@ local function edit(mode, node)
|
||||
end
|
||||
|
||||
---@param mode string
|
||||
---@return fun(node: table)
|
||||
---@return fun(node: Node)
|
||||
local function open_or_expand_or_dir_up(mode, toggle_group)
|
||||
---@param node Node
|
||||
return function(node)
|
||||
if node.name == ".." then
|
||||
actions.root.change_dir.fn("..")
|
||||
elseif node.nodes then
|
||||
elseif node:is(DirectoryNode) then
|
||||
node:expand_or_collapse(toggle_group)
|
||||
elseif not toggle_group then
|
||||
edit(mode, node)
|
||||
|
||||
Reference in New Issue
Block a user