@@ -40,17 +40,26 @@ local function wrap(f)
40
40
end
41
41
end
42
42
43
- --- Inject the node as the first argument if absent.
44
- --- f function to invoke
45
- local function wrap_node (f )
43
+ --- Inject the node as the first argument if absent.
44
+ --- @param fn function function to invoke
45
+ local function wrap_node (fn )
46
46
return function (node , ...)
47
47
node = node or require (" nvim-tree.lib" ).get_node_at_cursor ()
48
48
if node then
49
- f (node , ... )
49
+ fn (node , ... )
50
50
end
51
51
end
52
52
end
53
53
54
+ --- Inject the node or nil as the first argument if absent.
55
+ --- @param fn function function to invoke
56
+ local function wrap_node_or_nil (fn )
57
+ return function (node , ...)
58
+ node = node or require (" nvim-tree.lib" ).get_node_at_cursor ()
59
+ fn (node , ... )
60
+ end
61
+ end
62
+
54
63
--- @class ApiTreeOpenOpts
55
64
--- @field path string | nil path
56
65
--- @field current_window boolean | nil default false
@@ -136,7 +145,7 @@ Api.tree.is_tree_buf = wrap(require("nvim-tree.utils").is_nvim_tree_buf)
136
145
137
146
Api .tree .is_visible = wrap (require (" nvim-tree.view" ).is_visible )
138
147
139
- Api .fs .create = wrap_node (require (" nvim-tree.actions.fs.create-file" ).fn )
148
+ Api .fs .create = wrap_node_or_nil (require (" nvim-tree.actions.fs.create-file" ).fn )
140
149
Api .fs .remove = wrap_node (require (" nvim-tree.actions.fs.remove-file" ).fn )
141
150
Api .fs .trash = wrap_node (require (" nvim-tree.actions.fs.trash" ).fn )
142
151
Api .fs .rename_node = wrap_node (require (" nvim-tree.actions.fs.rename-file" ).fn " :t" )
0 commit comments