Skip to content

Commit 848267c

Browse files
authored
Merge branch 'master' into explore-reloaders-multiinstance
2 parents 8f67868 + cb57691 commit 848267c

File tree

3 files changed

+61
-56
lines changed

3 files changed

+61
-56
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
strategy:
6868
matrix:
6969
nvim_version: [ stable, nightly ]
70-
luals_version: [ 3.9.1 ]
70+
luals_version: [ 3.10.5 ]
7171

7272
steps:
7373
- uses: actions/checkout@v4

doc/nvim-tree-lua.txt

Lines changed: 59 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1679,10 +1679,8 @@ to avoid breaking configurations due to internal breaking changes.
16791679
The api is separated in multiple modules, which can be accessed with
16801680
`api.<module>.<function>`
16811681

1682-
Functions that needs a tree node parameter are exposed with an abstraction
1683-
that injects the node from the cursor position in the tree when calling
1684-
the function. It will use the node you pass as an argument in priority if it
1685-
exists.
1682+
Functions accepting {node} as their first argument will use the node under the
1683+
cursor when that argument is not present or nil.
16861684

16871685
==============================================================================
16881686
6.1 API TREE *nvim-tree-api.tree*
@@ -1808,9 +1806,11 @@ tree.collapse_all({keep_buffers}) *nvim-tree-api.tree.collapse_all()*
18081806
Parameters: ~
18091807
• {keep_buffers} (boolean) do not collapse nodes with open buffers.
18101808

1811-
tree.expand_all() *nvim-tree-api.tree.expand_all()*
1812-
Recursively expand all nodes in the tree.
1813-
Folder: only the nodes underneath that folder.
1809+
tree.expand_all({node}) *nvim-tree-api.tree.expand_all()*
1810+
Recursively expand all nodes under the tree root or specified folder.
1811+
1812+
Parameters: ~
1813+
{node} (Node|nil) folder
18141814

18151815
*nvim-tree-api.tree.toggle_enable_filters()*
18161816
tree.toggle_enable_filters()
@@ -1885,86 +1885,86 @@ fs.create({node}) *nvim-tree-api.fs.create()*
18851885
Multiple directories/files may be created e.g. `foo/bar/baz`
18861886

18871887
Parameters: ~
1888-
{node} (Node) parent, uses the parent of a file.
1888+
{node} (Node|nil) parent, uses the parent of a file.
18891889

18901890
fs.remove({node}) *nvim-tree-api.fs.remove()*
18911891
Delete a file or folder from the file system.
18921892

18931893
Parameters: ~
1894-
{node} (Node) file or folder
1894+
{node} (Node|nil) file or folder
18951895

18961896
fs.trash({node}) *nvim-tree-api.fs.trash()*
18971897
Trash a file or folder as per |nvim-tree.trash|
18981898

18991899
Parameters: ~
1900-
{node} (Node) file or folder
1900+
{node} (Node|nil) file or folder
19011901

19021902
fs.rename_node({node}) *nvim-tree-api.fs.rename_node()*
19031903
Prompt to rename a file or folder.
19041904

19051905
Parameters: ~
1906-
{node} (Node) file or folder
1906+
{node} (Node|nil) file or folder
19071907

19081908
fs.rename({node}) *nvim-tree-api.fs.rename()*
19091909
Prompt to rename a file or folder by name.
19101910

19111911
Parameters: ~
1912-
{node} (Node) file or folder
1912+
{node} (Node|nil) file or folder
19131913

19141914
fs.rename_basename({node}) *nvim-tree-api.fs.rename_basename()*
19151915
Prompt to rename a file or folder by name with extension omitted.
19161916

19171917
Parameters: ~
1918-
{node} (Node) file or folder
1918+
{node} (Node|nil) file or folder
19191919

19201920
fs.rename_sub({node}) *nvim-tree-api.fs.rename_sub()*
19211921
Prompt to rename a file or folder by absolute path with name omitted.
19221922

19231923
Parameters: ~
1924-
{node} (Node) file or folder
1924+
{node} (Node|nil) file or folder
19251925

19261926
fs.rename_full({node}) *nvim-tree-api.fs.rename_full()*
19271927
Prompt to rename a file or folder by absolute path.
19281928

19291929
Parameters: ~
1930-
{node} (Node) file or folder
1930+
{node} (Node|nil) file or folder
19311931

19321932
fs.cut({node}) *nvim-tree-api.fs.cut()*
19331933
Cut a file or folder to the nvim-tree clipboard.
19341934

19351935
Parameters: ~
1936-
{node} (Node) file or folder
1936+
{node} (Node|nil) file or folder
19371937

19381938
fs.paste({node}) *nvim-tree-api.fs.paste()*
19391939
Paste a file or folder from the nvim-tree clipboard.
19401940

19411941
Parameters: ~
1942-
{node} (Node) destination folder, uses the parent of a file.
1942+
{node} (Node|nil) destination folder, uses the parent of a file.
19431943

19441944
fs.copy.node({node}) *nvim-tree-api.fs.copy.node()*
19451945
Copy a file or folder from the nvim-tree clipboard.
19461946

19471947
Parameters: ~
1948-
{node} (Node) file or folder
1948+
{node} (Node|nil) file or folder
19491949

19501950
fs.copy.absolute_path({node}) *nvim-tree-api.fs.copy.absolute_path()*
19511951
Copy the absolute path of a file or folder to the system clipboard.
19521952

19531953
Parameters: ~
1954-
{node} (Node) file or folder
1954+
{node} (Node|nil) file or folder
19551955

19561956
fs.copy.filename({node}) *nvim-tree-api.fs.copy.filename()*
19571957
Copy the name of a file or folder to the system clipboard.
19581958

19591959
Parameters: ~
1960-
{node} (Node) file or folder
1960+
{node} (Node|nil) file or folder
19611961

19621962
fs.copy.relative_path({node}) *nvim-tree-api.fs.copy.relative_path()*
19631963
Copy the path of a file or folder relative to the tree root to the system
19641964
clipboard.
19651965

19661966
Parameters: ~
1967-
{node} (Node) file or folder
1967+
{node} (Node|nil) file or folder
19681968

19691969
fs.clear_clipboard() *nvim-tree-api.fs.clear_clipboard()*
19701970
Clear the nvim-tree clipboard.
@@ -1975,34 +1975,37 @@ fs.print_clipboard() *nvim-tree-api.fs.print_clipboard()*
19751975
==============================================================================
19761976
6.3 API NODE *nvim-tree-api.node*
19771977

1978-
node.open.edit() *nvim-tree-api.node.open.edit()*
1978+
Parameters: ~
1979+
{node} (Node|nil) file or folder
1980+
1981+
node.open.edit({node}) *nvim-tree-api.node.open.edit()*
19791982
File: open as per |nvim-tree.actions.open_file|
19801983
Folder: expand or collapse
19811984
Root: change directory up
19821985

19831986
*nvim-tree-api.node.open.replace_tree_buffer()*
1984-
node.open.replace_tree_buffer()
1987+
node.open.replace_tree_buffer({node})
19851988
|nvim-tree-api.node.edit()|, file will be opened in place: in the
19861989
nvim-tree window.
19871990

19881991
*nvim-tree-api.node.open.no_window_picker()*
1989-
node.open.no_window_picker()
1992+
node.open.no_window_picker({node})
19901993
|nvim-tree-api.node.edit()|, window picker will never be used as per
19911994
|nvim-tree.actions.open_file.window_picker.enable| `false`
19921995

1993-
node.open.vertical() *nvim-tree-api.node.open.vertical()*
1996+
node.open.vertical({node}) *nvim-tree-api.node.open.vertical()*
19941997
|nvim-tree-api.node.edit()|, file will be opened in a new vertical split.
19951998

1996-
node.open.horizontal() *nvim-tree-api.node.open.horizontal()*
1999+
node.open.horizontal({node}) *nvim-tree-api.node.open.horizontal()*
19972000
|nvim-tree-api.node.edit()|, file will be opened in a new horizontal split.
19982001

19992002
*nvim-tree-api.node.open.toggle_group_empty()*
2000-
node.open.toggle_group_empty()
2003+
node.open.toggle_group_empty({node})
20012004
Toggle |nvim-tree.renderer.group_empty| for a specific folder.
20022005
Does nothing on files.
20032006
Needs |nvim-tree.renderer.group_empty| set.
20042007

2005-
node.open.drop() *nvim-tree-api.node.open.drop()*
2008+
node.open.drop({node}) *nvim-tree-api.node.open.drop()*
20062009
Switch to window with selected file if it exists.
20072010
Open file otherwise.
20082011
See: `:h :drop`.
@@ -2011,114 +2014,115 @@ node.open.drop() *nvim-tree-api.node.open.drop()*
20112014
Folder: expand or collapse
20122015
Root: change directory up
20132016

2014-
node.open.tab() *nvim-tree-api.node.open.tab()*
2017+
node.open.tab({node}) *nvim-tree-api.node.open.tab()*
20152018
|nvim-tree-api.node.edit()|, file will be opened in a new tab.
20162019

20172020
*nvim-tree-api.node.open.tab_drop()*
2018-
node.open.tab_drop()
2021+
node.open.tab_drop({node})
20192022
Switch to tab containing window with selected file if it exists.
20202023
Open file in new tab otherwise.
20212024

20222025
File: open file using `tab :drop`
20232026
Folder: expand or collapse
20242027
Root: change directory up
20252028

2026-
node.open.preview() *nvim-tree-api.node.open.preview()*
2029+
node.open.preview({node}) *nvim-tree-api.node.open.preview()*
20272030
|nvim-tree-api.node.edit()|, file buffer will have |bufhidden| set to `delete`.
20282031

2029-
node.open.preview_no_picker() *nvim-tree-api.node.open.preview_no_picker()*
2032+
*nvim-tree-api.node.open.preview_no_picker()*
2033+
node.open.preview_no_picker({node})
20302034
|nvim-tree-api.node.edit()|, file buffer will have |bufhidden| set to `delete`.
20312035
window picker will never be used as per
20322036
|nvim-tree.actions.open_file.window_picker.enable| `false`
20332037

2034-
node.navigate.git.next() *nvim-tree-api.node.navigate.git.next()*
2038+
node.navigate.git.next({node}) *nvim-tree-api.node.navigate.git.next()*
20352039
Navigate to the next item showing git status.
20362040

20372041
*nvim-tree-api.node.navigate.git.next_recursive()*
2038-
node.navigate.git.next_recursive()
2042+
node.navigate.git.next_recursive({node})
20392043
Alternative to |nvim-tree-api.node.navigate.git.next()| that navigates to
20402044
the next file showing git status, recursively.
20412045
Needs |nvim-tree.git.show_on_dirs| set.
20422046

20432047
*nvim-tree-api.node.navigate.git.next_skip_gitignored()*
2044-
node.navigate.git.next_skip_gitignored()
2048+
node.navigate.git.next_skip_gitignored({node})
20452049
Same as |node.navigate.git.next()|, but skips gitignored files.
20462050

2047-
node.navigate.git.prev() *nvim-tree-api.node.navigate.git.prev()*
2051+
node.navigate.git.prev({node}) *nvim-tree-api.node.navigate.git.prev()*
20482052
Navigate to the previous item showing git status.
20492053

20502054
*nvim-tree-api.node.navigate.git.prev_recursive()*
2051-
node.navigate.git.prev_recursive()
2055+
node.navigate.git.prev_recursive({node})
20522056
Alternative to |nvim-tree-api.node.navigate.git.prev()| that navigates to
20532057
the previous file showing git status, recursively.
20542058
Needs |nvim-tree.git.show_on_dirs| set.
20552059

20562060
*nvim-tree-api.node.navigate.git.prev_skip_gitignored()*
2057-
node.navigate.git.prev_skip_gitignored()
2061+
node.navigate.git.prev_skip_gitignored({node})
20582062
Same as |node.navigate.git.prev()|, but skips gitignored files.
20592063

20602064
*nvim-tree-api.node.navigate.diagnostics.next()*
2061-
node.navigate.diagnostics.next()
2065+
node.navigate.diagnostics.next({node})
20622066
Navigate to the next item showing diagnostic status.
20632067

20642068
*nvim-tree-api.node.navigate.diagnostics.next_recursive()*
2065-
node.navigate.diagnostics.next_recursive()
2069+
node.navigate.diagnostics.next_recursive({node})
20662070
Alternative to |nvim-tree-api.node.navigate.diagnostics.next()| that
20672071
navigates to the next file showing diagnostic status, recursively.
20682072
Needs |nvim-tree.diagnostics.show_on_dirs| set.
20692073

20702074
*nvim-tree-api.node.navigate.diagnostics.prev()*
2071-
node.navigate.diagnostics.prev()
2075+
node.navigate.diagnostics.prev({node})
20722076
Navigate to the next item showing diagnostic status.
20732077

20742078
*nvim-tree-api.node.navigate.diagnostics.prev_recursive()*
2075-
node.navigate.diagnostics.prev_recursive()
2079+
node.navigate.diagnostics.prev_recursive({node})
20762080
Alternative to |nvim-tree-api.node.navigate.diagnostics.prev()| that
20772081
navigates to the previous file showing diagnostic status, recursively.
20782082
Needs |nvim-tree.diagnostics.show_on_dirs| set.
20792083

20802084
*nvim-tree-api.node.navigate.opened.next()*
2081-
node.navigate.opened.next()
2085+
node.navigate.opened.next({node})
20822086
Navigate to the next |bufloaded()| item.
20832087
See |nvim-tree.renderer.highlight_opened_files|
20842088

20852089
*nvim-tree-api.node.navigate.opened.prev()*
2086-
node.navigate.opened.prev()
2090+
node.navigate.opened.prev({node})
20872091
Navigate to the previous |bufloaded()| item.
20882092
See |nvim-tree.renderer.highlight_opened_files|
20892093

20902094
*nvim-tree-api.node.navigate.sibling.next()*
2091-
node.navigate.sibling.next()
2095+
node.navigate.sibling.next({node})
20922096
Navigate to the next node in the current node's folder, wraps.
20932097

20942098
*nvim-tree-api.node.navigate.sibling.prev()*
2095-
node.navigate.sibling.prev()
2099+
node.navigate.sibling.prev({node})
20962100
Navigate to the previous node in the current node's folder, wraps.
20972101

20982102
*nvim-tree-api.node.navigate.sibling.first()*
2099-
node.navigate.sibling.first()
2103+
node.navigate.sibling.first({node})
21002104
Navigate to the first node in the current node's folder.
21012105

21022106
*nvim-tree-api.node.navigate.sibling.last()*
2103-
node.navigate.sibling.last()
2107+
node.navigate.sibling.last({node})
21042108
Navigate to the last node in the current node's folder.
21052109

21062110
*nvim-tree-api.node.navigate.parent()*
2107-
node.navigate.parent()
2111+
node.navigate.parent({node})
21082112
Navigate to the parent folder of the current node.
21092113

21102114
*nvim-tree-api.node.navigate.parent_close()*
2111-
node.navigate.parent_close()
2115+
node.navigate.parent_close({node})
21122116
|api.node.navigate.parent()|, closing that folder.
21132117

2114-
node.show_info_popup() *nvim-tree-api.node.show_info_popup()*
2118+
node.show_info_popup({node}) *nvim-tree-api.node.show_info_popup()*
21152119
Open a popup window showing: fullpath, size, accessed, modified, created.
21162120

2117-
node.run.cmd() *nvim-tree-api.node.run.cmd()*
2121+
node.run.cmd({node}) *nvim-tree-api.node.run.cmd()*
21182122
Enter |cmdline| with the full path of the node and the cursor at the start
21192123
of the line.
21202124

2121-
node.run.system() *nvim-tree-api.node.run.system()*
2125+
node.run.system({node}) *nvim-tree-api.node.run.system()*
21222126
Execute |nvim-tree.system_open|
21232127

21242128
==============================================================================
@@ -2296,7 +2300,8 @@ Single left mouse mappings can be achieved via `<LeftRelease>`.
22962300

22972301
Single right / middle mouse mappings will require changes to |mousemodel| or |mouse|.
22982302

2299-
You may execute your own functions as well as |nvim-tree-api| functions e.g. >
2303+
|vim.keymap.set()| {rhs} is a `(function|string)` thus it may be necessary to
2304+
define your own function to map complex functionality e.g. >
23002305
23012306
local function print_node_path()
23022307
local api = require('nvim-tree.api')

lua/nvim-tree/marks/init.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ function Marks:navigate_select()
261261
if not choice or choice == "" then
262262
return
263263
end
264-
local node = self:get { absolute_path = choice }
264+
local node = self.marks[choice]
265265
if node and not node.nodes and not utils.get_win_buf_from_path(node.absolute_path) then
266266
open_file.fn("edit", node.absolute_path)
267267
elseif node then

0 commit comments

Comments
 (0)