From 5acd706ea5f1612faa78e7bb8c4d36422168bf50 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Thu, 14 May 2026 11:13:54 +1000 Subject: [PATCH 1/5] fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function --- doc/nvim-tree-lua.txt | 56 ++++++++++++++++++++---- lua/nvim-tree/_meta/api/node.lua | 24 ++++++---- lua/nvim-tree/actions/node/open-file.lua | 53 ++++++++++++---------- lua/nvim-tree/api/impl.lua | 18 ++++---- 4 files changed, 102 insertions(+), 49 deletions(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 223ca8b5be6..ffa0afaa16f 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -2778,39 +2778,64 @@ open.edit({node}, {opts}) *nvim_tree.api.node.open.edit()* • {focus}? (`boolean`, default: false) Keep focus in the tree when opening the file. -open.horizontal({node}) *nvim_tree.api.node.open.horizontal()* +open.horizontal({node}, {opts}) *nvim_tree.api.node.open.horizontal()* Open file in a new horizontal split. Parameters: ~ • {node} (`nvim_tree.api.Node?`) file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. *nvim_tree.api.node.open.horizontal_no_picker()* -open.horizontal_no_picker({node}) +open.horizontal_no_picker({node}, {opts}) Open file in a new horizontal split without using the window picker. Parameters: ~ • {node} (`nvim_tree.api.Node?`) file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. *nvim_tree.api.node.open.no_window_picker()* -open.no_window_picker({node}) +open.no_window_picker({node}, {opts}) Open file without using the window picker. Parameters: ~ • {node} (`nvim_tree.api.Node?`) file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. -open.preview({node}) *nvim_tree.api.node.open.preview()* +open.preview({node}, {opts}) *nvim_tree.api.node.open.preview()* Open file with |'bufhidden'| set to `delete`. Parameters: ~ • {node} (`nvim_tree.api.Node?`) directory or file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. *nvim_tree.api.node.open.preview_no_picker()* -open.preview_no_picker({node}) +open.preview_no_picker({node}, {opts}) Open file with |'bufhidden'| set to `delete` without using the window picker. Parameters: ~ • {node} (`nvim_tree.api.Node?`) directory or file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. *nvim_tree.api.node.open.replace_tree_buffer()* open.replace_tree_buffer({node}) @@ -2819,11 +2844,16 @@ open.replace_tree_buffer({node}) Parameters: ~ • {node} (`nvim_tree.api.Node?`) file -open.tab({node}) *nvim_tree.api.node.open.tab()* +open.tab({node}, {opts}) *nvim_tree.api.node.open.tab()* Open file in a new tab. Parameters: ~ • {node} (`nvim_tree.api.Node?`) directory or file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. open.tab_drop({node}) *nvim_tree.api.node.open.tab_drop()* Switch to tab containing window with selected file if it exists. Open file @@ -2840,18 +2870,28 @@ open.toggle_group_empty({node}) Parameters: ~ • {node} (`nvim_tree.api.Node?`) directory -open.vertical({node}) *nvim_tree.api.node.open.vertical()* +open.vertical({node}, {opts}) *nvim_tree.api.node.open.vertical()* Open file in a new vertical split. Parameters: ~ • {node} (`nvim_tree.api.Node?`) file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. *nvim_tree.api.node.open.vertical_no_picker()* -open.vertical_no_picker({node}) +open.vertical_no_picker({node}, {opts}) Open file in a new vertical split without using the window picker. Parameters: ~ • {node} (`nvim_tree.api.Node?`) file + • {opts} (`table?`) optional + • {quit_on_open}? (`boolean`, default: false) Quits the tree + when opening the file. + • {focus}? (`boolean`, default: false) Keep focus in the tree + when opening the file. run.cmd({node}) *nvim_tree.api.node.run.cmd()* Enter |cmdline| with the full path of the node and the cursor at the start diff --git a/lua/nvim-tree/_meta/api/node.lua b/lua/nvim-tree/_meta/api/node.lua index 79788a7e645..c1b0b69768d 100644 --- a/lua/nvim-tree/_meta/api/node.lua +++ b/lua/nvim-tree/_meta/api/node.lua @@ -29,31 +29,36 @@ function nvim_tree.api.node.open.edit(node, opts) end ---Open file in a new horizontal split. --- ---@param node? nvim_tree.api.Node file -function nvim_tree.api.node.open.horizontal(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.horizontal(node, opts) end --- ---Open file in a new horizontal split without using the window picker. --- ---@param node? nvim_tree.api.Node file -function nvim_tree.api.node.open.horizontal_no_picker(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.horizontal_no_picker(node, opts) end --- ---Open file without using the window picker. --- ---@param node? nvim_tree.api.Node file -function nvim_tree.api.node.open.no_window_picker(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.no_window_picker(node, opts) end --- ---Open file with ['bufhidden'] set to `delete`. --- ---@param node? nvim_tree.api.Node directory or file -function nvim_tree.api.node.open.preview(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.preview(node, opts) end --- ---Open file with ['bufhidden'] set to `delete` without using the window picker. --- ---@param node? nvim_tree.api.Node directory or file -function nvim_tree.api.node.open.preview_no_picker(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.preview_no_picker(node, opts) end --- ---Open file in place: in the nvim-tree window. @@ -65,7 +70,8 @@ function nvim_tree.api.node.open.replace_tree_buffer(node) end ---Open file in a new tab. --- ---@param node? nvim_tree.api.Node directory or file -function nvim_tree.api.node.open.tab(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.tab(node, opts) end --- ---Switch to tab containing window with selected file if it exists. Open file in new tab otherwise. @@ -83,13 +89,15 @@ function nvim_tree.api.node.open.toggle_group_empty(node) end ---Open file in a new vertical split. --- ---@param node? nvim_tree.api.Node file -function nvim_tree.api.node.open.vertical(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.vertical(node, opts) end --- ---Open file in a new vertical split without using the window picker. --- ---@param node? nvim_tree.api.Node file -function nvim_tree.api.node.open.vertical_no_picker(node) end +---@param opts? nvim_tree.api.node.open.Opts optional +function nvim_tree.api.node.open.vertical_no_picker(node, opts) end --- ---@class nvim_tree.api.node.buffer.RemoveOpts diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index 35e83e05db6..072f7ffba9a 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -10,10 +10,6 @@ local DirectoryNode = require("nvim-tree.node.directory") local FileLinkNode = require("nvim-tree.node.file-link") local RootNode = require("nvim-tree.node.root") ----@class NodeEditOpts ----@field quit_on_open boolean|nil default false ----@field focus boolean|nil default true - ---@alias NodeOpenFileMode ""|"change_dir"|"drop"|"edit"|"edit_in_place"|"edit_no_picker"|"preview"|"preview_no_picker"|"split"|"split_no_picker"|"tab_drop"|"tabnew"|"toggle_group_empty"|"vsplit"|"vsplit_no_picker" local M = {} @@ -416,7 +412,7 @@ end ---@param mode string ---@param node Node ----@param edit_opts NodeEditOpts? +---@param edit_opts nvim_tree.api.node.open.Opts? local function edit(mode, node, edit_opts) local file_link = node:as(FileLinkNode) local path = file_link and file_link.link_to or node.absolute_path @@ -445,7 +441,7 @@ end ---@param node Node ---@param mode NodeOpenFileMode ---@param toggle_group boolean? ----@param edit_opts NodeEditOpts? +---@param edit_opts nvim_tree.api.node.open.Opts? local function open_or_expand_or_dir_up(node, mode, toggle_group, edit_opts) local root = node:as(RootNode) local dir = node:as(DirectoryNode) @@ -468,18 +464,21 @@ function M.toggle_group_empty(node) end ---@param node Node -function M.preview(node) - open_or_expand_or_dir_up(node, "preview") +---@param opts nvim_tree.api.node.open.Opts? +function M.preview(node, opts) + open_or_expand_or_dir_up(node, "preview", false, opts) end ---@param node Node -function M.preview_no_picker(node) - open_or_expand_or_dir_up(node, "preview_no_picker") +---@param opts nvim_tree.api.node.open.Opts? +function M.preview_no_picker(node, opts) + open_or_expand_or_dir_up(node, "preview_no_picker", false, opts) end ---@param node Node -function M.edit(node) - open_or_expand_or_dir_up(node, "edit") +---@param opts nvim_tree.api.node.open.Opts? +function M.edit(node, opts) + open_or_expand_or_dir_up(node, "edit", false, opts) end ---@param node Node @@ -498,33 +497,39 @@ function M.replace_tree_buffer(node) end ---@param node Node -function M.no_window_picker(node) - open_or_expand_or_dir_up(node, "edit_no_picker") +---@param opts nvim_tree.api.node.open.Opts? +function M.no_window_picker(node, opts) + open_or_expand_or_dir_up(node, "edit_no_picker", false, opts) end ---@param node Node -function M.vertical(node) - open_or_expand_or_dir_up(node, "vsplit") +---@param opts nvim_tree.api.node.open.Opts? +function M.vertical(node, opts) + open_or_expand_or_dir_up(node, "vsplit", false, opts) end ---@param node Node -function M.vertical_no_picker(node) - open_or_expand_or_dir_up(node, "vsplit_no_picker") +---@param opts nvim_tree.api.node.open.Opts? +function M.vertical_no_picker(node, opts) + open_or_expand_or_dir_up(node, "vsplit_no_picker", false, opts) end ---@param node Node -function M.horizontal(node) - open_or_expand_or_dir_up(node, "split") +---@param opts nvim_tree.api.node.open.Opts? +function M.horizontal(node, opts) + open_or_expand_or_dir_up(node, "split", false, opts) end ---@param node Node -function M.horizontal_no_picker(node) - open_or_expand_or_dir_up(node, "split_no_picker") +---@param opts nvim_tree.api.node.open.Opts? +function M.horizontal_no_picker(node, opts) + open_or_expand_or_dir_up(node, "split_no_picker", false, opts) end ---@param node Node -function M.tab(node) - open_or_expand_or_dir_up(node, "tabnew") +---@param opts nvim_tree.api.node.open.Opts? +function M.tab(node, opts) + open_or_expand_or_dir_up(node, "tabnew", false, opts) end return M diff --git a/lua/nvim-tree/api/impl.lua b/lua/nvim-tree/api/impl.lua index 79e8c5c0e9f..a07524fb564 100644 --- a/lua/nvim-tree/api/impl.lua +++ b/lua/nvim-tree/api/impl.lua @@ -205,18 +205,18 @@ function M.hydrate_post_setup(api) api.node.navigate.sibling.next = _n(function(n) require("nvim-tree.actions.moves.sibling").next(n) end) api.node.navigate.sibling.prev = _n(function(n) require("nvim-tree.actions.moves.sibling").prev(n) end) api.node.open.drop = _n(function(n) require("nvim-tree.actions.node.open-file").drop(n) end) - api.node.open.edit = _n(function(n) require("nvim-tree.actions.node.open-file").edit(n) end) - api.node.open.horizontal = _n(function(n) require("nvim-tree.actions.node.open-file").horizontal(n) end) - api.node.open.horizontal_no_picker = _n(function(n) require("nvim-tree.actions.node.open-file").horizontal_no_picker(n) end) - api.node.open.no_window_picker = _n(function(n) require("nvim-tree.actions.node.open-file").no_window_picker(n) end) - api.node.open.preview = _n(function(n) require("nvim-tree.actions.node.open-file").preview(n) end) - api.node.open.preview_no_picker = _n(function(n) require("nvim-tree.actions.node.open-file").preview_no_picker(n) end) + api.node.open.edit = _n(function(n, opts) require("nvim-tree.actions.node.open-file").edit(n, opts) end) + api.node.open.horizontal = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal(n, opts) end) + api.node.open.horizontal_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal_no_picker(n, opts) end) + api.node.open.no_window_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").no_window_picker(n, opts) end) + api.node.open.preview = _n(function(n, opts) require("nvim-tree.actions.node.open-file").preview(n, opts) end) + api.node.open.preview_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").preview_no_picker(n, opts) end) api.node.open.replace_tree_buffer = _n(function(n) require("nvim-tree.actions.node.open-file").replace_tree_buffer(n) end) - api.node.open.tab = _n(function(n) require("nvim-tree.actions.node.open-file").tab(n) end) + api.node.open.tab = _n(function(n, opts) require("nvim-tree.actions.node.open-file").tab(n, opts) end) api.node.open.tab_drop = _n(function(n) require("nvim-tree.actions.node.open-file").tab_drop(n) end) api.node.open.toggle_group_empty = _n(function(n) require("nvim-tree.actions.node.open-file").toggle_group_empty(n) end) - api.node.open.vertical = _n(function(n) require("nvim-tree.actions.node.open-file").vertical(n) end) - api.node.open.vertical_no_picker = _n(function(n) require("nvim-tree.actions.node.open-file").vertical_no_picker(n) end) + api.node.open.vertical = _n(function(n, opts) require("nvim-tree.actions.node.open-file").vertical(n, opts) end) + api.node.open.vertical_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").vertical_no_picker(n, opts) end) api.node.run.cmd = _n(function(n) require("nvim-tree.actions.node.run-command").run_file_command(n) end) api.node.run.system = _n(function(n) require("nvim-tree.actions.node.system-open").fn(n) end) api.node.show_info_popup = _n(function(n) require("nvim-tree.actions.node.file-popup").toggle_file_info(n) end) From 2ef745d4d9cf7d79690aebfbd653963dc55aad5f Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Thu, 14 May 2026 11:24:58 +1000 Subject: [PATCH 2/5] fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function --- lua/nvim-tree/_meta/api/node.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lua/nvim-tree/_meta/api/node.lua b/lua/nvim-tree/_meta/api/node.lua index c1b0b69768d..93473d19536 100644 --- a/lua/nvim-tree/_meta/api/node.lua +++ b/lua/nvim-tree/_meta/api/node.lua @@ -16,6 +16,11 @@ nvim_tree.api.node.open = {} ---@field focus? boolean +--- +---Switch to window with selected file if it exists, otherwise open, see [:drop] +--- +---@param node? nvim_tree.api.Node directory or file +function nvim_tree.api.node.open.drop(node) end --- ---- file: open as per [nvim_tree.config.actions.open_file] ---- directory: expand or collapse @@ -74,7 +79,7 @@ function nvim_tree.api.node.open.replace_tree_buffer(node) end function nvim_tree.api.node.open.tab(node, opts) end --- ----Switch to tab containing window with selected file if it exists. Open file in new tab otherwise. +---Switch to tab containing window with selected file if it exists, otherwise open in new tab, see [:drop] --- ---@param node? nvim_tree.api.Node directory or file function nvim_tree.api.node.open.tab_drop(node) end From 9310cec4097b769387892a7fcfc5e7fb4761d250 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Thu, 14 May 2026 11:26:05 +1000 Subject: [PATCH 3/5] fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function --- doc/nvim-tree-lua.txt | 11 +++++++++-- lua/nvim-tree/_meta/api/node.lua | 1 + lua/nvim-tree/api/impl.lua | 3 ++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index ffa0afaa16f..81dc2385ba4 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -2765,6 +2765,13 @@ navigate.sibling.prev({node}) Parameters: ~ • {node} (`nvim_tree.api.Node?`) directory or file +open.drop({node}) *nvim_tree.api.node.open.drop()* + Switch to window with selected file if it exists, otherwise open, see + |:drop| + + Parameters: ~ + • {node} (`nvim_tree.api.Node?`) directory or file + open.edit({node}, {opts}) *nvim_tree.api.node.open.edit()* • file: open as per |nvim_tree.config.actions.open_file| • directory: expand or collapse @@ -2856,8 +2863,8 @@ open.tab({node}, {opts}) *nvim_tree.api.node.open.tab()* when opening the file. open.tab_drop({node}) *nvim_tree.api.node.open.tab_drop()* - Switch to tab containing window with selected file if it exists. Open file - in new tab otherwise. + Switch to tab containing window with selected file if it exists, otherwise + open in new tab, see |:drop| Parameters: ~ • {node} (`nvim_tree.api.Node?`) directory or file diff --git a/lua/nvim-tree/_meta/api/node.lua b/lua/nvim-tree/_meta/api/node.lua index 93473d19536..7292ac4eeae 100644 --- a/lua/nvim-tree/_meta/api/node.lua +++ b/lua/nvim-tree/_meta/api/node.lua @@ -21,6 +21,7 @@ nvim_tree.api.node.open = {} --- ---@param node? nvim_tree.api.Node directory or file function nvim_tree.api.node.open.drop(node) end + --- ---- file: open as per [nvim_tree.config.actions.open_file] ---- directory: expand or collapse diff --git a/lua/nvim-tree/api/impl.lua b/lua/nvim-tree/api/impl.lua index a07524fb564..f5cc4a822c5 100644 --- a/lua/nvim-tree/api/impl.lua +++ b/lua/nvim-tree/api/impl.lua @@ -207,7 +207,8 @@ function M.hydrate_post_setup(api) api.node.open.drop = _n(function(n) require("nvim-tree.actions.node.open-file").drop(n) end) api.node.open.edit = _n(function(n, opts) require("nvim-tree.actions.node.open-file").edit(n, opts) end) api.node.open.horizontal = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal(n, opts) end) - api.node.open.horizontal_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal_no_picker(n, opts) end) + api.node.open.horizontal_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal_no_picker(n, + opts) end) api.node.open.no_window_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").no_window_picker(n, opts) end) api.node.open.preview = _n(function(n, opts) require("nvim-tree.actions.node.open-file").preview(n, opts) end) api.node.open.preview_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").preview_no_picker(n, opts) end) From fc69cb3e09c07eea99906ce1d59d3fa53204204b Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Thu, 14 May 2026 11:30:32 +1000 Subject: [PATCH 4/5] fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function --- lua/nvim-tree/actions/node/open-file.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index 072f7ffba9a..afa3af96a69 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -428,7 +428,7 @@ local function edit(mode, node, edit_opts) end local mode_unsupported_focus = mode == "drop" or mode == "tab_drop" or mode == "edit_in_place" - local focus = edit_opts.focus == nil or edit_opts.focus == true + local focus = edit_opts.focus == nil or edit_opts.focus == false if not mode_unsupported_focus and not focus then -- if mode == "tabnew" a new tab will be opened and we need to focus back to the previous tab if mode == "tabnew" then From a256ac0805dfd80e260668180805c1f601d35bee Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Thu, 14 May 2026 11:36:19 +1000 Subject: [PATCH 5/5] fix(#3327): pass nvim_tree.api.node.open.Opts to all applicable nvim_tree.api.node.open function --- lua/nvim-tree/api/impl.lua | 53 +++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/lua/nvim-tree/api/impl.lua b/lua/nvim-tree/api/impl.lua index f5cc4a822c5..f17fa4ee825 100644 --- a/lua/nvim-tree/api/impl.lua +++ b/lua/nvim-tree/api/impl.lua @@ -136,6 +136,11 @@ end ---Called explicitly after nvim-tree setup ---@param api table not properly typed to prevent LSP from referencing implementations function M.hydrate_post_setup(api) + -- Parameter naming conventions: + -- `e` explorer + -- `n` node + -- `o` opts + api.config.global = __(function() return require("nvim-tree.config").g_clone() end) api.config.user = __(function() return require("nvim-tree.config").u_clone() end) @@ -182,10 +187,10 @@ function M.hydrate_post_setup(api) api.marks.navigate.select = e_(function(e) e.marks:navigate_select() end) api.marks.toggle = ev(function(e, n) e.marks:toggle(n) end) - api.node.buffer.delete = _n(function(n, opts) require("nvim-tree.actions.node.buffer").delete(n, opts) end) - api.node.buffer.wipe = _n(function(n, opts) require("nvim-tree.actions.node.buffer").wipe(n, opts) end) - api.node.collapse = _n(function(n, opts) require("nvim-tree.actions.tree.collapse").node(n, opts) end) - api.node.expand = en(function(e, n, opts) e:expand_node(n, opts) end) + api.node.buffer.delete = _n(function(n, o) require("nvim-tree.actions.node.buffer").delete(n, o) end) + api.node.buffer.wipe = _n(function(n, o) require("nvim-tree.actions.node.buffer").wipe(n, o) end) + api.node.collapse = _n(function(n, o) require("nvim-tree.actions.tree.collapse").node(n, o) end) + api.node.expand = en(function(e, n, o) e:expand_node(n, o) end) api.node.navigate.diagnostics.next = __(function() require("nvim-tree.actions.moves.item").diagnostics_next() end) api.node.navigate.diagnostics.next_recursive = __(function() require("nvim-tree.actions.moves.item").diagnostics_next_recursive() end) api.node.navigate.diagnostics.prev = __(function() require("nvim-tree.actions.moves.item").diagnostics_prev() end) @@ -205,19 +210,21 @@ function M.hydrate_post_setup(api) api.node.navigate.sibling.next = _n(function(n) require("nvim-tree.actions.moves.sibling").next(n) end) api.node.navigate.sibling.prev = _n(function(n) require("nvim-tree.actions.moves.sibling").prev(n) end) api.node.open.drop = _n(function(n) require("nvim-tree.actions.node.open-file").drop(n) end) - api.node.open.edit = _n(function(n, opts) require("nvim-tree.actions.node.open-file").edit(n, opts) end) - api.node.open.horizontal = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal(n, opts) end) - api.node.open.horizontal_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").horizontal_no_picker(n, - opts) end) - api.node.open.no_window_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").no_window_picker(n, opts) end) - api.node.open.preview = _n(function(n, opts) require("nvim-tree.actions.node.open-file").preview(n, opts) end) - api.node.open.preview_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").preview_no_picker(n, opts) end) + api.node.open.edit = _n(function(n, o) require("nvim-tree.actions.node.open-file").edit(n, o) end) + api.node.open.horizontal = _n(function(n, o) require("nvim-tree.actions.node.open-file").horizontal(n, o) end) + api.node.open.horizontal_no_picker = _n(function(n, o) + require("nvim-tree.actions.node.open-file").horizontal_no_picker(n, + o) + end) + api.node.open.no_window_picker = _n(function(n, o) require("nvim-tree.actions.node.open-file").no_window_picker(n, o) end) + api.node.open.preview = _n(function(n, o) require("nvim-tree.actions.node.open-file").preview(n, o) end) + api.node.open.preview_no_picker = _n(function(n, o) require("nvim-tree.actions.node.open-file").preview_no_picker(n, o) end) api.node.open.replace_tree_buffer = _n(function(n) require("nvim-tree.actions.node.open-file").replace_tree_buffer(n) end) - api.node.open.tab = _n(function(n, opts) require("nvim-tree.actions.node.open-file").tab(n, opts) end) + api.node.open.tab = _n(function(n, o) require("nvim-tree.actions.node.open-file").tab(n, o) end) api.node.open.tab_drop = _n(function(n) require("nvim-tree.actions.node.open-file").tab_drop(n) end) api.node.open.toggle_group_empty = _n(function(n) require("nvim-tree.actions.node.open-file").toggle_group_empty(n) end) - api.node.open.vertical = _n(function(n, opts) require("nvim-tree.actions.node.open-file").vertical(n, opts) end) - api.node.open.vertical_no_picker = _n(function(n, opts) require("nvim-tree.actions.node.open-file").vertical_no_picker(n, opts) end) + api.node.open.vertical = _n(function(n, o) require("nvim-tree.actions.node.open-file").vertical(n, o) end) + api.node.open.vertical_no_picker = _n(function(n, o) require("nvim-tree.actions.node.open-file").vertical_no_picker(n, o) end) api.node.run.cmd = _n(function(n) require("nvim-tree.actions.node.run-command").run_file_command(n) end) api.node.run.system = _n(function(n) require("nvim-tree.actions.node.system-open").fn(n) end) api.node.show_info_popup = _n(function(n) require("nvim-tree.actions.node.file-popup").toggle_file_info(n) end) @@ -228,22 +235,22 @@ function M.hydrate_post_setup(api) api.tree.close = __(function() require("nvim-tree.view").close() end) api.tree.close_in_all_tabs = __(function() require("nvim-tree.view").close_all_tabs() end) api.tree.close_in_this_tab = __(function() require("nvim-tree.view").close_this_tab_only() end) - api.tree.collapse_all = __(function(opts) require("nvim-tree.actions.tree.collapse").all(opts) end) - api.tree.expand_all = en(function(e, n, opts) e:expand_all(n, opts) end) - api.tree.find_file = __(function(opts) require("nvim-tree.actions.tree.find-file").fn(opts) end) - api.tree.focus = __(function(opts) require("nvim-tree.actions.tree.open").fn(opts) end) + api.tree.collapse_all = __(function(o) require("nvim-tree.actions.tree.collapse").all(o) end) + api.tree.expand_all = en(function(e, n, o) e:expand_all(n, o) end) + api.tree.find_file = __(function(o) require("nvim-tree.actions.tree.find-file").fn(o) end) + api.tree.focus = __(function(o) require("nvim-tree.actions.tree.open").fn(o) end) api.tree.get_node_under_cursor = en(function(e) return e:get_node_at_cursor() end) api.tree.get_nodes = en(function(e) return e:get_nodes() end) api.tree.is_tree_buf = __(function(bufnr) return require("nvim-tree.utils").is_nvim_tree_buf(bufnr) end) - api.tree.is_visible = __(function(opts) return require("nvim-tree.view").is_visible(opts) end) - api.tree.open = __(function(opts) require("nvim-tree.actions.tree.open").fn(opts) end) + api.tree.is_visible = __(function(o) return require("nvim-tree.view").is_visible(o) end) + api.tree.open = __(function(o) require("nvim-tree.actions.tree.open").fn(o) end) api.tree.reload = e_(function(e) e:reload_explorer() end) api.tree.reload_git = e_(function(e) e:reload_git() end) - api.tree.resize = __(function(opts) require("nvim-tree.actions.tree.resize").fn(opts) end) + api.tree.resize = __(function(o) require("nvim-tree.actions.tree.resize").fn(o) end) api.tree.search_node = __(function() require("nvim-tree.actions.finders.search-node").fn() end) - api.tree.toggle = __(function(opts) require("nvim-tree.actions.tree.toggle").fn(opts) end) + api.tree.toggle = __(function(o) require("nvim-tree.actions.tree.toggle").fn(o) end) api.tree.toggle_help = __(function() require("nvim-tree.help").toggle() end) - api.tree.winid = __(function(opts) return require("nvim-tree.view").winid(opts) end) + api.tree.winid = __(function(o) return require("nvim-tree.view").winid(o) end) -- Map all legacy functions to implementations require("nvim-tree.legacy").map_api(api)