Skip to content

Commit cbc97fe

Browse files
committed
docs(#3088): extract api/node.lua functions, doc WIP
1 parent e9b5ca6 commit cbc97fe

File tree

6 files changed

+819
-137
lines changed

6 files changed

+819
-137
lines changed

doc/nvim-tree-lua.txt

Lines changed: 183 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2647,119 +2647,251 @@ toggle({node}) *nvim_tree.api.marks.toggle()*
26472647
==============================================================================
26482648
Lua module: nvim_tree.api.node *nvim-tree-api-node*
26492649

2650-
*ApiNodeDeleteWipeBufferOpts*
2650+
buffer.delete({node}, {opts}) *nvim_tree.api.node.buffer.delete()*
2651+
Deletes node's related buffer, if one exists. Executes |:bdelete| or
2652+
|:bdelete|!
26512653

2652-
Fields: ~
2653-
{force} (`boolean?`) default false
2654-
2655-
*NodeEditOpts*
2654+
Parameters: ~
2655+
{node} (`nvim_tree.api.Node`) file
2656+
{opts} (`table?`) A table with the following fields:
2657+
{force}? (`boolean`, default: false) Delete even if buffer
2658+
is modified.
26562659

2657-
Fields: ~
2658-
• {quit_on_open} (`boolean?`) default false
2659-
{focus} (`boolean?`) default true
2660+
buffer.wipe({node}, {opts}) *nvim_tree.api.node.buffer.wipe()*
2661+
Wipes node's related buffer, if one exists. Executes |:bwipe| or |:bwipe|!
26602662

2663+
Parameters: ~
2664+
{node} (`nvim_tree.api.Node?`) file
2665+
{opts} (`table?`) optional
2666+
{force}? (`boolean`, default: false) Wipe even if buffer is
2667+
modified.
26612668

2662-
nvim_tree.api.node.buffer.delete() *nvim_tree.api.node.buffer.delete()*
2669+
collapse({node}, {opts}) *nvim_tree.api.node.collapse()*
2670+
Collapse the tree under a directory or a file's parent directory.
26632671

2664-
nvim_tree.api.node.buffer.wipe() *nvim_tree.api.node.buffer.wipe()*
2672+
Parameters: ~
2673+
{node} (`nvim_tree.api.Node?`) directory or file
2674+
{opts} (`table?`) optional
2675+
• {keep_buffers}? (`boolean`, default: false) Do not collapse
2676+
nodes with open buffers.
26652677

2666-
nvim_tree.api.node.collapse() *nvim_tree.api.node.collapse()*
2678+
expand({node}, {opts}) *nvim_tree.api.node.expand()*
26672679

2668-
nvim_tree.api.node.expand() *nvim_tree.api.node.expand()*
2680+
Parameters: ~
2681+
{node} (`nvim_tree.api.Node?`) directory or file
2682+
{opts} (`table?`) optional
2683+
{foo}? (`boolean`) (default: false)
26692684

26702685
*nvim_tree.api.node.navigate.diagnostics.next()*
2671-
nvim_tree.api.node.navigate.diagnostics.next()
2686+
navigate.diagnostics.next({node})
2687+
2688+
Parameters: ~
2689+
{node} (`nvim_tree.api.Node?`) directory or file
26722690

26732691
*nvim_tree.api.node.navigate.diagnostics.next_recursive()*
2674-
nvim_tree.api.node.navigate.diagnostics.next_recursive()
2692+
navigate.diagnostics.next_recursive({node})
2693+
2694+
Parameters: ~
2695+
{node} (`nvim_tree.api.Node?`) directory or file
26752696

26762697
*nvim_tree.api.node.navigate.diagnostics.prev()*
2677-
nvim_tree.api.node.navigate.diagnostics.prev()
2698+
navigate.diagnostics.prev({node})
2699+
2700+
Parameters: ~
2701+
{node} (`nvim_tree.api.Node?`) directory or file
26782702

26792703
*nvim_tree.api.node.navigate.diagnostics.prev_recursive()*
2680-
nvim_tree.api.node.navigate.diagnostics.prev_recursive()
2704+
navigate.diagnostics.prev_recursive({node})
26812705

2682-
*nvim_tree.api.node.navigate.git.next()*
2683-
nvim_tree.api.node.navigate.git.next()
2706+
Parameters: ~
2707+
{node} (`nvim_tree.api.Node?`) directory or file
2708+
2709+
navigate.git.next({node}) *nvim_tree.api.node.navigate.git.next()*
2710+
2711+
Parameters: ~
2712+
{node} (`nvim_tree.api.Node?`) directory or file
26842713

26852714
*nvim_tree.api.node.navigate.git.next_recursive()*
2686-
nvim_tree.api.node.navigate.git.next_recursive()
2715+
navigate.git.next_recursive({node})
2716+
2717+
Parameters: ~
2718+
{node} (`nvim_tree.api.Node?`) directory or file
26872719

26882720
*nvim_tree.api.node.navigate.git.next_skip_gitignored()*
2689-
nvim_tree.api.node.navigate.git.next_skip_gitignored()
2721+
navigate.git.next_skip_gitignored({node})
2722+
2723+
Parameters: ~
2724+
{node} (`nvim_tree.api.Node?`) directory or file
26902725

2691-
*nvim_tree.api.node.navigate.git.prev()*
2692-
nvim_tree.api.node.navigate.git.prev()
2726+
navigate.git.prev({node}) *nvim_tree.api.node.navigate.git.prev()*
2727+
2728+
Parameters: ~
2729+
{node} (`nvim_tree.api.Node?`) directory or file
26932730

26942731
*nvim_tree.api.node.navigate.git.prev_recursive()*
2695-
nvim_tree.api.node.navigate.git.prev_recursive()
2732+
navigate.git.prev_recursive({node})
2733+
2734+
Parameters: ~
2735+
{node} (`nvim_tree.api.Node?`) directory or file
26962736

26972737
*nvim_tree.api.node.navigate.git.prev_skip_gitignored()*
2698-
nvim_tree.api.node.navigate.git.prev_skip_gitignored()
2738+
navigate.git.prev_skip_gitignored({node})
2739+
2740+
Parameters: ~
2741+
{node} (`nvim_tree.api.Node?`) directory or file
26992742

27002743
*nvim_tree.api.node.navigate.opened.next()*
2701-
nvim_tree.api.node.navigate.opened.next()
2744+
navigate.opened.next({node})
2745+
2746+
Parameters: ~
2747+
{node} (`nvim_tree.api.Node?`) directory or file
27022748

27032749
*nvim_tree.api.node.navigate.opened.prev()*
2704-
nvim_tree.api.node.navigate.opened.prev()
2750+
navigate.opened.prev({node})
27052751

2706-
*nvim_tree.api.node.navigate.parent()*
2707-
nvim_tree.api.node.navigate.parent()
2752+
Parameters: ~
2753+
{node} (`nvim_tree.api.Node?`) directory or file
2754+
2755+
navigate.parent({node}) *nvim_tree.api.node.navigate.parent()*
2756+
2757+
Parameters: ~
2758+
{node} (`nvim_tree.api.Node?`) directory or file
27082759

27092760
*nvim_tree.api.node.navigate.parent_close()*
2710-
nvim_tree.api.node.navigate.parent_close()
2761+
navigate.parent_close({node})
2762+
2763+
Parameters: ~
2764+
{node} (`nvim_tree.api.Node?`) directory or file
27112765

27122766
*nvim_tree.api.node.navigate.sibling.first()*
2713-
nvim_tree.api.node.navigate.sibling.first()
2767+
navigate.sibling.first({node})
2768+
2769+
Parameters: ~
2770+
{node} (`nvim_tree.api.Node?`) directory or file
27142771

27152772
*nvim_tree.api.node.navigate.sibling.last()*
2716-
nvim_tree.api.node.navigate.sibling.last()
2773+
navigate.sibling.last({node})
2774+
2775+
Parameters: ~
2776+
{node} (`nvim_tree.api.Node?`) directory or file
27172777

27182778
*nvim_tree.api.node.navigate.sibling.next()*
2719-
nvim_tree.api.node.navigate.sibling.next()
2779+
navigate.sibling.next({node})
2780+
2781+
Parameters: ~
2782+
{node} (`nvim_tree.api.Node?`) directory or file
27202783

27212784
*nvim_tree.api.node.navigate.sibling.prev()*
2722-
nvim_tree.api.node.navigate.sibling.prev()
2785+
navigate.sibling.prev({node})
2786+
2787+
Parameters: ~
2788+
{node} (`nvim_tree.api.Node?`) directory or file
2789+
2790+
open.drop({node}) *nvim_tree.api.node.open.drop()*
2791+
2792+
Parameters: ~
2793+
{node} (`nvim_tree.api.Node?`) directory or file
27232794

2724-
nvim_tree.api.node.open.drop() *nvim_tree.api.node.open.drop()*
2795+
open.edit({node}, {opts}) *nvim_tree.api.node.open.edit()*
27252796

2726-
nvim_tree.api.node.open.edit() *nvim_tree.api.node.open.edit()*
2797+
Parameters: ~
2798+
{node} (`nvim_tree.api.Node?`) directory or file
2799+
{opts} (`table?`) optional
2800+
{foo}? (`boolean`) (default: false)
2801+
2802+
open.horizontal({node}, {opts}) *nvim_tree.api.node.open.horizontal()*
27272803

2728-
*nvim_tree.api.node.open.horizontal()*
2729-
nvim_tree.api.node.open.horizontal()
2804+
Parameters: ~
2805+
{node} (`nvim_tree.api.Node?`) directory or file
2806+
{opts} (`table?`) optional
2807+
{foo}? (`boolean`) (default: false)
27302808

27312809
*nvim_tree.api.node.open.horizontal_no_picker()*
2732-
nvim_tree.api.node.open.horizontal_no_picker()
2810+
open.horizontal_no_picker({node}, {opts})
2811+
2812+
Parameters: ~
2813+
{node} (`nvim_tree.api.Node?`) directory or file
2814+
{opts} (`table?`) optional
2815+
{foo}? (`boolean`) (default: false)
27332816

27342817
*nvim_tree.api.node.open.no_window_picker()*
2735-
nvim_tree.api.node.open.no_window_picker()
2818+
open.no_window_picker({node}, {opts})
2819+
2820+
Parameters: ~
2821+
{node} (`nvim_tree.api.Node?`) directory or file
2822+
{opts} (`table?`) optional
2823+
{foo}? (`boolean`) (default: false)
27362824

2737-
nvim_tree.api.node.open.preview() *nvim_tree.api.node.open.preview()*
2825+
open.preview({node}, {opts}) *nvim_tree.api.node.open.preview()*
2826+
2827+
Parameters: ~
2828+
{node} (`nvim_tree.api.Node?`) directory or file
2829+
{opts} (`table?`) optional
2830+
{foo}? (`boolean`) (default: false)
27382831

27392832
*nvim_tree.api.node.open.preview_no_picker()*
2740-
nvim_tree.api.node.open.preview_no_picker()
2833+
open.preview_no_picker({node}, {opts})
2834+
2835+
Parameters: ~
2836+
{node} (`nvim_tree.api.Node?`) directory or file
2837+
{opts} (`table?`) optional
2838+
{foo}? (`boolean`) (default: false)
27412839

27422840
*nvim_tree.api.node.open.replace_tree_buffer()*
2743-
nvim_tree.api.node.open.replace_tree_buffer()
2841+
open.replace_tree_buffer({node})
27442842

2745-
nvim_tree.api.node.open.tab() *nvim_tree.api.node.open.tab()*
2843+
Parameters: ~
2844+
{node} (`nvim_tree.api.Node?`) directory or file
2845+
2846+
open.tab({node}, {opts}) *nvim_tree.api.node.open.tab()*
2847+
2848+
Parameters: ~
2849+
{node} (`nvim_tree.api.Node?`) directory or file
2850+
{opts} (`table?`) optional
2851+
{foo}? (`boolean`) (default: false)
27462852

2747-
nvim_tree.api.node.open.tab_drop() *nvim_tree.api.node.open.tab_drop()*
2853+
open.tab_drop({node}) *nvim_tree.api.node.open.tab_drop()*
2854+
2855+
Parameters: ~
2856+
{node} (`nvim_tree.api.Node?`) directory or file
27482857

27492858
*nvim_tree.api.node.open.toggle_group_empty()*
2750-
nvim_tree.api.node.open.toggle_group_empty()
2859+
open.toggle_group_empty({node}, {opts})
2860+
2861+
Parameters: ~
2862+
{node} (`nvim_tree.api.Node?`) directory or file
2863+
{opts} (`table?`) optional
2864+
{foo}? (`boolean`) (default: false)
2865+
2866+
open.vertical({node}, {opts}) *nvim_tree.api.node.open.vertical()*
27512867

2752-
nvim_tree.api.node.open.vertical() *nvim_tree.api.node.open.vertical()*
2868+
Parameters: ~
2869+
{node} (`nvim_tree.api.Node?`) directory or file
2870+
{opts} (`table?`) optional
2871+
{foo}? (`boolean`) (default: false)
27532872

27542873
*nvim_tree.api.node.open.vertical_no_picker()*
2755-
nvim_tree.api.node.open.vertical_no_picker()
2874+
open.vertical_no_picker({node}, {opts})
2875+
2876+
Parameters: ~
2877+
{node} (`nvim_tree.api.Node?`) directory or file
2878+
{opts} (`table?`) optional
2879+
{foo}? (`boolean`) (default: false)
27562880

2757-
nvim_tree.api.node.run.cmd() *nvim_tree.api.node.run.cmd()*
2881+
run.cmd({node}) *nvim_tree.api.node.run.cmd()*
27582882

2759-
nvim_tree.api.node.run.system() *nvim_tree.api.node.run.system()*
2883+
Parameters: ~
2884+
{node} (`nvim_tree.api.Node?`) directory or file
27602885

2761-
*nvim_tree.api.node.show_info_popup()*
2762-
nvim_tree.api.node.show_info_popup()
2886+
run.system({node}) *nvim_tree.api.node.run.system()*
2887+
2888+
Parameters: ~
2889+
{node} (`nvim_tree.api.Node?`) directory or file
2890+
2891+
show_info_popup({node}) *nvim_tree.api.node.show_info_popup()*
2892+
2893+
Parameters: ~
2894+
{node} (`nvim_tree.api.Node?`) directory or file
27632895

27642896

27652897
==============================================================================

lua/nvim-tree/api.lua

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
-- TODO #3088 rename this to nvim-tree/api.lua
2-
31
---@brief
42
---nvim-tree exposes a public API. This is non breaking, with additions made as necessary.
53
---
@@ -73,6 +71,10 @@
7371
---
7472
---@class nvim_tree.api.DirectoryLinkNode: nvim_tree.api.DirectoryNode, nvim_tree.api.LinkNode
7573

74+
75+
--
76+
--Load and hydrate all
77+
--
7678
local api = {
7779
events = require("nvim-tree.api.events"),
7880
filter = require("nvim-tree.api.filter"),

lua/nvim-tree/api/impl.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,10 @@ local function wrap_explorer_member(explorer_member, member_method)
9292
end)
9393
end
9494

95+
---@class NodeEditOpts
96+
---@field quit_on_open boolean|nil default false
97+
---@field focus boolean|nil default true
98+
9599
---@param mode string
96100
---@param node Node
97101
---@param edit_opts NodeEditOpts?

0 commit comments

Comments
 (0)