Skip to content

Commit 3c65e3f

Browse files
committed
docs(#3088): extract api/node.lua functions, doc TODO
1 parent 56e61c2 commit 3c65e3f

File tree

6 files changed

+312
-77
lines changed

6 files changed

+312
-77
lines changed

doc/nvim-tree-lua.txt

Lines changed: 161 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -158,36 +158,6 @@ Show the mappings: `g?`
158158
==============================================================================
159159
Quickstart: Custom Mappings *nvim-tree-quickstart-custom-mappings*
160160

161-
162-
163-
164-
TODO #3088 remove dummy tags once entire API has been migrated
165-
166-
*nvim_tree.api.node.navigate.diagnostics.next()*
167-
*nvim_tree.api.node.navigate.diagnostics.prev()*
168-
*nvim_tree.api.node.navigate.git.next()*
169-
*nvim_tree.api.node.navigate.git.prev()*
170-
*nvim_tree.api.node.navigate.parent()*
171-
*nvim_tree.api.node.navigate.parent_close()*
172-
*nvim_tree.api.node.navigate.sibling.first()*
173-
*nvim_tree.api.node.navigate.sibling.last()*
174-
*nvim_tree.api.node.navigate.sibling.next()*
175-
*nvim_tree.api.node.navigate.sibling.prev()*
176-
*nvim_tree.api.node.open.edit()*
177-
*nvim_tree.api.node.open.horizontal()*
178-
*nvim_tree.api.node.open.no_window_picker()*
179-
*nvim_tree.api.node.open.preview()*
180-
*nvim_tree.api.node.open.replace_tree_buffer()*
181-
*nvim_tree.api.node.open.tab()*
182-
*nvim_tree.api.node.open.toggle_group_empty()*
183-
*nvim_tree.api.node.open.vertical()*
184-
*nvim_tree.api.node.run.cmd()*
185-
*nvim_tree.api.node.run.system()*
186-
*nvim_tree.api.node.show_info_popup()*
187-
188-
189-
190-
191161
|nvim-tree-mappings-default| are applied by default however you may customise
192162
via |nvim_tree.Config| {on_attach} e.g. >lua
193163

@@ -2949,6 +2919,167 @@ toggle({node}) *nvim_tree.api.marks.toggle()*
29492919
{node} (`nvim_tree.api.Node`) file or directory
29502920

29512921

2922+
==============================================================================
2923+
Lua module: nvim_tree.api.node *nvim-tree-api-node*
2924+
2925+
*nvim_tree.api.DirectoryLinkNode*
2926+
Extends: |nvim_tree.api.DirectoryNode|
2927+
2928+
DirectoryLink
2929+
2930+
*nvim_tree.api.DirectoryNode*
2931+
Extends: |nvim_tree.api.Node|
2932+
2933+
Directory
2934+
2935+
Fields: ~
2936+
• {has_children} (`boolean`)
2937+
{nodes} (`nvim_tree.api.Node[]`)
2938+
{open} (`boolean`)
2939+
2940+
*nvim_tree.api.FileLinkNode*
2941+
Extends: |nvim_tree.api.FileNode|
2942+
2943+
File Link
2944+
2945+
*nvim_tree.api.FileNode*
2946+
Extends: |nvim_tree.api.Node|
2947+
2948+
File
2949+
2950+
Fields: ~
2951+
{extension} (`string`)
2952+
2953+
*nvim_tree.api.LinkNode*
2954+
Link mixin
2955+
2956+
Fields: ~
2957+
• {link_to} (`string`)
2958+
• {fs_stat_target} (`uv.fs_stat.result`)
2959+
2960+
*nvim_tree.api.Node*
2961+
Base Node, Abstract
2962+
2963+
Fields: ~
2964+
{type} (`"file"|"directory"|"link"`) uv.fs_stat.result.type
2965+
• {absolute_path} (`string`)
2966+
{executable} (`boolean`)
2967+
• {fs_stat} (`uv.fs_stat.result?`)
2968+
• {git_status} (`GitNodeStatus?`)
2969+
{hidden} (`boolean`)
2970+
{name} (`string`)
2971+
{parent} (`nvim_tree.api.DirectoryNode?`)
2972+
• {diag_severity} (`lsp.DiagnosticSeverity?`)
2973+
2974+
*nvim_tree.api.RootNode*
2975+
Extends: |nvim_tree.api.DirectoryNode|
2976+
2977+
Root Directory
2978+
2979+
2980+
nvim_tree.api.node.buffer.delete() *nvim_tree.api.node.buffer.delete()*
2981+
2982+
nvim_tree.api.node.buffer.wipe() *nvim_tree.api.node.buffer.wipe()*
2983+
2984+
nvim_tree.api.node.collapse() *nvim_tree.api.node.collapse()*
2985+
2986+
nvim_tree.api.node.expand() *nvim_tree.api.node.expand()*
2987+
2988+
*nvim_tree.api.node.navigate.diagnostics.next()*
2989+
nvim_tree.api.node.navigate.diagnostics.next()
2990+
2991+
*nvim_tree.api.node.navigate.diagnostics.next_recursive()*
2992+
nvim_tree.api.node.navigate.diagnostics.next_recursive()
2993+
2994+
*nvim_tree.api.node.navigate.diagnostics.prev()*
2995+
nvim_tree.api.node.navigate.diagnostics.prev()
2996+
2997+
*nvim_tree.api.node.navigate.diagnostics.prev_recursive()*
2998+
nvim_tree.api.node.navigate.diagnostics.prev_recursive()
2999+
3000+
*nvim_tree.api.node.navigate.git.next()*
3001+
nvim_tree.api.node.navigate.git.next()
3002+
3003+
*nvim_tree.api.node.navigate.git.next_recursive()*
3004+
nvim_tree.api.node.navigate.git.next_recursive()
3005+
3006+
*nvim_tree.api.node.navigate.git.next_skip_gitignored()*
3007+
nvim_tree.api.node.navigate.git.next_skip_gitignored()
3008+
3009+
*nvim_tree.api.node.navigate.git.prev()*
3010+
nvim_tree.api.node.navigate.git.prev()
3011+
3012+
*nvim_tree.api.node.navigate.git.prev_recursive()*
3013+
nvim_tree.api.node.navigate.git.prev_recursive()
3014+
3015+
*nvim_tree.api.node.navigate.git.prev_skip_gitignored()*
3016+
nvim_tree.api.node.navigate.git.prev_skip_gitignored()
3017+
3018+
*nvim_tree.api.node.navigate.opened.next()*
3019+
nvim_tree.api.node.navigate.opened.next()
3020+
3021+
*nvim_tree.api.node.navigate.opened.prev()*
3022+
nvim_tree.api.node.navigate.opened.prev()
3023+
3024+
*nvim_tree.api.node.navigate.parent()*
3025+
nvim_tree.api.node.navigate.parent()
3026+
3027+
*nvim_tree.api.node.navigate.parent_close()*
3028+
nvim_tree.api.node.navigate.parent_close()
3029+
3030+
*nvim_tree.api.node.navigate.sibling.first()*
3031+
nvim_tree.api.node.navigate.sibling.first()
3032+
3033+
*nvim_tree.api.node.navigate.sibling.last()*
3034+
nvim_tree.api.node.navigate.sibling.last()
3035+
3036+
*nvim_tree.api.node.navigate.sibling.next()*
3037+
nvim_tree.api.node.navigate.sibling.next()
3038+
3039+
*nvim_tree.api.node.navigate.sibling.prev()*
3040+
nvim_tree.api.node.navigate.sibling.prev()
3041+
3042+
nvim_tree.api.node.open.drop() *nvim_tree.api.node.open.drop()*
3043+
3044+
nvim_tree.api.node.open.edit() *nvim_tree.api.node.open.edit()*
3045+
3046+
*nvim_tree.api.node.open.horizontal()*
3047+
nvim_tree.api.node.open.horizontal()
3048+
3049+
*nvim_tree.api.node.open.horizontal_no_picker()*
3050+
nvim_tree.api.node.open.horizontal_no_picker()
3051+
3052+
*nvim_tree.api.node.open.no_window_picker()*
3053+
nvim_tree.api.node.open.no_window_picker()
3054+
3055+
nvim_tree.api.node.open.preview() *nvim_tree.api.node.open.preview()*
3056+
3057+
*nvim_tree.api.node.open.preview_no_picker()*
3058+
nvim_tree.api.node.open.preview_no_picker()
3059+
3060+
*nvim_tree.api.node.open.replace_tree_buffer()*
3061+
nvim_tree.api.node.open.replace_tree_buffer()
3062+
3063+
nvim_tree.api.node.open.tab() *nvim_tree.api.node.open.tab()*
3064+
3065+
nvim_tree.api.node.open.tab_drop() *nvim_tree.api.node.open.tab_drop()*
3066+
3067+
*nvim_tree.api.node.open.toggle_group_empty()*
3068+
nvim_tree.api.node.open.toggle_group_empty()
3069+
3070+
nvim_tree.api.node.open.vertical() *nvim_tree.api.node.open.vertical()*
3071+
3072+
*nvim_tree.api.node.open.vertical_no_picker()*
3073+
nvim_tree.api.node.open.vertical_no_picker()
3074+
3075+
nvim_tree.api.node.run.cmd() *nvim_tree.api.node.run.cmd()*
3076+
3077+
nvim_tree.api.node.run.system() *nvim_tree.api.node.run.system()*
3078+
3079+
*nvim_tree.api.node.show_info_popup()*
3080+
nvim_tree.api.node.show_info_popup()
3081+
3082+
29523083
==============================================================================
29533084
Lua module: nvim_tree.api.tree *nvim-tree-api-tree*
29543085

lua/nvim-tree/_meta/api.lua

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,6 @@ error("Cannot require a meta file")
55
-- Nodes
66
--
77

8-
---Base Node, Abstract
9-
---@class (exact) nvim_tree.api.Node
10-
---@field type "file" | "directory" | "link" uv.fs_stat.result.type
11-
---@field absolute_path string
12-
---@field executable boolean
13-
---@field fs_stat uv.fs_stat.result?
14-
---@field git_status GitNodeStatus?
15-
---@field hidden boolean
16-
---@field name string
17-
---@field parent nvim_tree.api.DirectoryNode?
18-
---@field diag_severity lsp.DiagnosticSeverity?
19-
20-
---File
21-
---@class (exact) nvim_tree.api.FileNode: nvim_tree.api.Node
22-
---@field extension string
23-
24-
---Directory
25-
---@class (exact) nvim_tree.api.DirectoryNode: nvim_tree.api.Node
26-
---@field has_children boolean
27-
---@field nodes nvim_tree.api.Node[]
28-
---@field open boolean
29-
30-
---Root Directory
31-
---@class (exact) nvim_tree.api.RootNode: nvim_tree.api.DirectoryNode
32-
33-
---Link mixin
34-
---@class (exact) nvim_tree.api.LinkNode
35-
---@field link_to string
36-
---@field fs_stat_target uv.fs_stat.result
37-
38-
---File Link
39-
---@class (exact) nvim_tree.api.FileLinkNode: nvim_tree.api.FileNode, nvim_tree.api.LinkNode
40-
41-
---DirectoryLink
42-
---@class (exact) nvim_tree.api.DirectoryLinkNode: nvim_tree.api.DirectoryNode, nvim_tree.api.LinkNode
438

449
--
4510
-- Various Types

lua/nvim-tree/api.lua

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ local UserDecorator = require("nvim-tree.renderer.decorator.user")
1616

1717
local Api = {
1818
-- tree = {},
19-
node = {
20-
navigate = {
21-
sibling = {},
22-
git = {},
23-
diagnostics = {},
24-
opened = {},
25-
},
26-
run = {},
27-
open = {},
28-
buffer = {},
29-
},
19+
-- node = {
20+
-- navigate = {
21+
-- sibling = {},
22+
-- git = {},
23+
-- diagnostics = {},
24+
-- opened = {},
25+
-- },
26+
-- run = {},
27+
-- open = {},
28+
-- buffer = {},
29+
-- },
3030
-- events = {},
3131
-- marks = {
3232
-- bulk = {},
@@ -40,7 +40,7 @@ local Api = {
4040
-- config = {
4141
-- mappings = {},
4242
-- },
43-
commands = {},
43+
-- commands = {},
4444
-- diagnostics = {},
4545
decorator = {},
4646
}
@@ -308,6 +308,9 @@ local function open_or_expand_or_dir_up(mode, toggle_group)
308308
end
309309
end
310310

311+
function Api.hydrate_node(n)
312+
Api.node = n
313+
311314
Api.node.open.edit = wrap_node(open_or_expand_or_dir_up("edit"))
312315
Api.node.open.drop = wrap_node(open_or_expand_or_dir_up("drop"))
313316
Api.node.open.tab_drop = wrap_node(open_or_expand_or_dir_up("tab_drop"))
@@ -358,6 +361,8 @@ Api.node.buffer.wipe = wrap_node(function(node, opts)
358361
actions.node.buffer.wipe(node, opts)
359362
end)
360363

364+
end
365+
361366
-- Api.git.reload = wrap_explorer("reload_git")
362367

363368
function Api.hydrate_events(ev)

lua/nvim-tree/api/init.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ return {
55
health = require("nvim-tree.api.health"),
66
map = require("nvim-tree.api.map"),
77
marks = require("nvim-tree.api.marks"),
8+
node = require("nvim-tree.api.node"),
89
tree = require("nvim-tree.api.tree"),
910
}

0 commit comments

Comments
 (0)