@@ -1679,10 +1679,8 @@ to avoid breaking configurations due to internal breaking changes.
1679
1679
The api is separated in multiple modules, which can be accessed with
1680
1680
`api.<module> .<function> `
1681
1681
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.
1686
1684
1687
1685
==============================================================================
1688
1686
6.1 API TREE *nvim-tree-api.tree*
@@ -1808,9 +1806,11 @@ tree.collapse_all({keep_buffers}) *nvim-tree-api.tree.collapse_all()*
1808
1806
Parameters: ~
1809
1807
• {keep_buffers} (boolean) do not collapse nodes with open buffers.
1810
1808
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
1814
1814
1815
1815
*nvim-tree-api.tree.toggle_enable_filters()*
1816
1816
tree.toggle_enable_filters()
@@ -1885,86 +1885,86 @@ fs.create({node}) *nvim-tree-api.fs.create()*
1885
1885
Multiple directories/files may be created e.g. `foo/bar/ baz`
1886
1886
1887
1887
Parameters: ~
1888
- • {node} (Node) parent, uses the parent of a file.
1888
+ • {node} (Node|nil ) parent, uses the parent of a file.
1889
1889
1890
1890
fs.remove({node} ) *nvim-tree-api.fs.remove()*
1891
1891
Delete a file or folder from the file system.
1892
1892
1893
1893
Parameters: ~
1894
- • {node} (Node) file or folder
1894
+ • {node} (Node|nil ) file or folder
1895
1895
1896
1896
fs.trash({node} ) *nvim-tree-api.fs.trash()*
1897
1897
Trash a file or folder as per | nvim-tree.trash |
1898
1898
1899
1899
Parameters: ~
1900
- • {node} (Node) file or folder
1900
+ • {node} (Node|nil ) file or folder
1901
1901
1902
1902
fs.rename_node({node} ) *nvim-tree-api.fs.rename_node()*
1903
1903
Prompt to rename a file or folder.
1904
1904
1905
1905
Parameters: ~
1906
- • {node} (Node) file or folder
1906
+ • {node} (Node|nil ) file or folder
1907
1907
1908
1908
fs.rename({node} ) *nvim-tree-api.fs.rename()*
1909
1909
Prompt to rename a file or folder by name.
1910
1910
1911
1911
Parameters: ~
1912
- • {node} (Node) file or folder
1912
+ • {node} (Node|nil ) file or folder
1913
1913
1914
1914
fs.rename_basename({node} ) *nvim-tree-api.fs.rename_basename()*
1915
1915
Prompt to rename a file or folder by name with extension omitted.
1916
1916
1917
1917
Parameters: ~
1918
- • {node} (Node) file or folder
1918
+ • {node} (Node|nil ) file or folder
1919
1919
1920
1920
fs.rename_sub({node} ) *nvim-tree-api.fs.rename_sub()*
1921
1921
Prompt to rename a file or folder by absolute path with name omitted.
1922
1922
1923
1923
Parameters: ~
1924
- • {node} (Node) file or folder
1924
+ • {node} (Node|nil ) file or folder
1925
1925
1926
1926
fs.rename_full({node} ) *nvim-tree-api.fs.rename_full()*
1927
1927
Prompt to rename a file or folder by absolute path.
1928
1928
1929
1929
Parameters: ~
1930
- • {node} (Node) file or folder
1930
+ • {node} (Node|nil ) file or folder
1931
1931
1932
1932
fs.cut({node} ) *nvim-tree-api.fs.cut()*
1933
1933
Cut a file or folder to the nvim-tree clipboard.
1934
1934
1935
1935
Parameters: ~
1936
- • {node} (Node) file or folder
1936
+ • {node} (Node|nil ) file or folder
1937
1937
1938
1938
fs.paste({node} ) *nvim-tree-api.fs.paste()*
1939
1939
Paste a file or folder from the nvim-tree clipboard.
1940
1940
1941
1941
Parameters: ~
1942
- • {node} (Node) destination folder, uses the parent of a file.
1942
+ • {node} (Node|nil ) destination folder, uses the parent of a file.
1943
1943
1944
1944
fs.copy.node({node} ) *nvim-tree-api.fs.copy.node()*
1945
1945
Copy a file or folder from the nvim-tree clipboard.
1946
1946
1947
1947
Parameters: ~
1948
- • {node} (Node) file or folder
1948
+ • {node} (Node|nil ) file or folder
1949
1949
1950
1950
fs.copy.absolute_path({node} ) *nvim-tree-api.fs.copy.absolute_path()*
1951
1951
Copy the absolute path of a file or folder to the system clipboard.
1952
1952
1953
1953
Parameters: ~
1954
- • {node} (Node) file or folder
1954
+ • {node} (Node|nil ) file or folder
1955
1955
1956
1956
fs.copy.filename({node} ) *nvim-tree-api.fs.copy.filename()*
1957
1957
Copy the name of a file or folder to the system clipboard.
1958
1958
1959
1959
Parameters: ~
1960
- • {node} (Node) file or folder
1960
+ • {node} (Node|nil ) file or folder
1961
1961
1962
1962
fs.copy.relative_path({node} ) *nvim-tree-api.fs.copy.relative_path()*
1963
1963
Copy the path of a file or folder relative to the tree root to the system
1964
1964
clipboard.
1965
1965
1966
1966
Parameters: ~
1967
- • {node} (Node) file or folder
1967
+ • {node} (Node|nil ) file or folder
1968
1968
1969
1969
fs.clear_clipboard() *nvim-tree-api.fs.clear_clipboard()*
1970
1970
Clear the nvim-tree clipboard.
@@ -1975,34 +1975,37 @@ fs.print_clipboard() *nvim-tree-api.fs.print_clipboard()*
1975
1975
==============================================================================
1976
1976
6.3 API NODE *nvim-tree-api.node*
1977
1977
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()*
1979
1982
File: open as per | nvim-tree.actions.open_file |
1980
1983
Folder: expand or collapse
1981
1984
Root: change directory up
1982
1985
1983
1986
*nvim-tree-api.node.open.replace_tree_buffer()*
1984
- node.open.replace_tree_buffer()
1987
+ node.open.replace_tree_buffer({node} )
1985
1988
| nvim-tree-api.node.edit() | , file will be opened in place: in the
1986
1989
nvim-tree window.
1987
1990
1988
1991
*nvim-tree-api.node.open.no_window_picker()*
1989
- node.open.no_window_picker()
1992
+ node.open.no_window_picker({node} )
1990
1993
| nvim-tree-api.node.edit() | , window picker will never be used as per
1991
1994
| nvim-tree.actions.open_file.window_picker.enable | `false`
1992
1995
1993
- node.open.vertical() *nvim-tree-api.node.open.vertical()*
1996
+ node.open.vertical({node} ) *nvim-tree-api.node.open.vertical()*
1994
1997
| nvim-tree-api.node.edit() | , file will be opened in a new vertical split.
1995
1998
1996
- node.open.horizontal() *nvim-tree-api.node.open.horizontal()*
1999
+ node.open.horizontal({node} ) *nvim-tree-api.node.open.horizontal()*
1997
2000
| nvim-tree-api.node.edit() | , file will be opened in a new horizontal split.
1998
2001
1999
2002
*nvim-tree-api.node.open.toggle_group_empty()*
2000
- node.open.toggle_group_empty()
2003
+ node.open.toggle_group_empty({node} )
2001
2004
Toggle | nvim-tree.renderer.group_empty | for a specific folder.
2002
2005
Does nothing on files.
2003
2006
Needs | nvim-tree.renderer.group_empty | set.
2004
2007
2005
- node.open.drop() *nvim-tree-api.node.open.drop()*
2008
+ node.open.drop({node} ) *nvim-tree-api.node.open.drop()*
2006
2009
Switch to window with selected file if it exists.
2007
2010
Open file otherwise.
2008
2011
See: `:h :drop`.
@@ -2011,114 +2014,115 @@ node.open.drop() *nvim-tree-api.node.open.drop()*
2011
2014
Folder: expand or collapse
2012
2015
Root: change directory up
2013
2016
2014
- node.open.tab() *nvim-tree-api.node.open.tab()*
2017
+ node.open.tab({node} ) *nvim-tree-api.node.open.tab()*
2015
2018
| nvim-tree-api.node.edit() | , file will be opened in a new tab.
2016
2019
2017
2020
*nvim-tree-api.node.open.tab_drop()*
2018
- node.open.tab_drop()
2021
+ node.open.tab_drop({node} )
2019
2022
Switch to tab containing window with selected file if it exists.
2020
2023
Open file in new tab otherwise.
2021
2024
2022
2025
File: open file using `tab :drop`
2023
2026
Folder: expand or collapse
2024
2027
Root: change directory up
2025
2028
2026
- node.open.preview() *nvim-tree-api.node.open.preview()*
2029
+ node.open.preview({node} ) *nvim-tree-api.node.open.preview()*
2027
2030
| nvim-tree-api.node.edit() | , file buffer will have | bufhidden | set to `delete ` .
2028
2031
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} )
2030
2034
| nvim-tree-api.node.edit() | , file buffer will have | bufhidden | set to `delete ` .
2031
2035
window picker will never be used as per
2032
2036
| nvim-tree.actions.open_file.window_picker.enable | `false`
2033
2037
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()*
2035
2039
Navigate to the next item showing git status.
2036
2040
2037
2041
*nvim-tree-api.node.navigate.git.next_recursive()*
2038
- node.navigate.git.next_recursive()
2042
+ node.navigate.git.next_recursive({node} )
2039
2043
Alternative to | nvim-tree-api.node.navigate.git.next() | that navigates to
2040
2044
the next file showing git status, recursively.
2041
2045
Needs | nvim-tree.git.show_on_dirs | set.
2042
2046
2043
2047
*nvim-tree-api.node.navigate.git.next_skip_gitignored()*
2044
- node.navigate.git.next_skip_gitignored()
2048
+ node.navigate.git.next_skip_gitignored({node} )
2045
2049
Same as | node.navigate.git.next() | , but skips gitignored files.
2046
2050
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()*
2048
2052
Navigate to the previous item showing git status.
2049
2053
2050
2054
*nvim-tree-api.node.navigate.git.prev_recursive()*
2051
- node.navigate.git.prev_recursive()
2055
+ node.navigate.git.prev_recursive({node} )
2052
2056
Alternative to | nvim-tree-api.node.navigate.git.prev() | that navigates to
2053
2057
the previous file showing git status, recursively.
2054
2058
Needs | nvim-tree.git.show_on_dirs | set.
2055
2059
2056
2060
*nvim-tree-api.node.navigate.git.prev_skip_gitignored()*
2057
- node.navigate.git.prev_skip_gitignored()
2061
+ node.navigate.git.prev_skip_gitignored({node} )
2058
2062
Same as | node.navigate.git.prev() | , but skips gitignored files.
2059
2063
2060
2064
*nvim-tree-api.node.navigate.diagnostics.next()*
2061
- node.navigate.diagnostics.next()
2065
+ node.navigate.diagnostics.next({node} )
2062
2066
Navigate to the next item showing diagnostic status.
2063
2067
2064
2068
*nvim-tree-api.node.navigate.diagnostics.next_recursive()*
2065
- node.navigate.diagnostics.next_recursive()
2069
+ node.navigate.diagnostics.next_recursive({node} )
2066
2070
Alternative to | nvim-tree-api.node.navigate.diagnostics.next() | that
2067
2071
navigates to the next file showing diagnostic status, recursively.
2068
2072
Needs | nvim-tree.diagnostics.show_on_dirs | set.
2069
2073
2070
2074
*nvim-tree-api.node.navigate.diagnostics.prev()*
2071
- node.navigate.diagnostics.prev()
2075
+ node.navigate.diagnostics.prev({node} )
2072
2076
Navigate to the next item showing diagnostic status.
2073
2077
2074
2078
*nvim-tree-api.node.navigate.diagnostics.prev_recursive()*
2075
- node.navigate.diagnostics.prev_recursive()
2079
+ node.navigate.diagnostics.prev_recursive({node} )
2076
2080
Alternative to | nvim-tree-api.node.navigate.diagnostics.prev() | that
2077
2081
navigates to the previous file showing diagnostic status, recursively.
2078
2082
Needs | nvim-tree.diagnostics.show_on_dirs | set.
2079
2083
2080
2084
*nvim-tree-api.node.navigate.opened.next()*
2081
- node.navigate.opened.next()
2085
+ node.navigate.opened.next({node} )
2082
2086
Navigate to the next | bufloaded() | item.
2083
2087
See | nvim-tree.renderer.highlight_opened_files |
2084
2088
2085
2089
*nvim-tree-api.node.navigate.opened.prev()*
2086
- node.navigate.opened.prev()
2090
+ node.navigate.opened.prev({node} )
2087
2091
Navigate to the previous | bufloaded() | item.
2088
2092
See | nvim-tree.renderer.highlight_opened_files |
2089
2093
2090
2094
*nvim-tree-api.node.navigate.sibling.next()*
2091
- node.navigate.sibling.next()
2095
+ node.navigate.sibling.next({node} )
2092
2096
Navigate to the next node in the current node's folder, wraps.
2093
2097
2094
2098
*nvim-tree-api.node.navigate.sibling.prev()*
2095
- node.navigate.sibling.prev()
2099
+ node.navigate.sibling.prev({node} )
2096
2100
Navigate to the previous node in the current node's folder, wraps.
2097
2101
2098
2102
*nvim-tree-api.node.navigate.sibling.first()*
2099
- node.navigate.sibling.first()
2103
+ node.navigate.sibling.first({node} )
2100
2104
Navigate to the first node in the current node's folder.
2101
2105
2102
2106
*nvim-tree-api.node.navigate.sibling.last()*
2103
- node.navigate.sibling.last()
2107
+ node.navigate.sibling.last({node} )
2104
2108
Navigate to the last node in the current node's folder.
2105
2109
2106
2110
*nvim-tree-api.node.navigate.parent()*
2107
- node.navigate.parent()
2111
+ node.navigate.parent({node} )
2108
2112
Navigate to the parent folder of the current node.
2109
2113
2110
2114
*nvim-tree-api.node.navigate.parent_close()*
2111
- node.navigate.parent_close()
2115
+ node.navigate.parent_close({node} )
2112
2116
| api.node.navigate.parent() | , closing that folder.
2113
2117
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()*
2115
2119
Open a popup window showing: fullpath, size, accessed, modified, created.
2116
2120
2117
- node.run.cmd() *nvim-tree-api.node.run.cmd()*
2121
+ node.run.cmd({node} ) *nvim-tree-api.node.run.cmd()*
2118
2122
Enter | cmdline | with the full path of the node and the cursor at the start
2119
2123
of the line.
2120
2124
2121
- node.run.system() *nvim-tree-api.node.run.system()*
2125
+ node.run.system({node} ) *nvim-tree-api.node.run.system()*
2122
2126
Execute | nvim-tree.system_open |
2123
2127
2124
2128
==============================================================================
@@ -2296,7 +2300,8 @@ Single left mouse mappings can be achieved via `<LeftRelease>`.
2296
2300
2297
2301
Single right / middle mouse mappings will require changes to | mousemodel | or | mouse | .
2298
2302
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. >
2300
2305
2301
2306
local function print_node_path()
2302
2307
local api = require('nvim-tree.api')
0 commit comments