1
- -- TODO #2826 wrap all the view methods in explorer
2
-
3
1
local core = require (" nvim-tree.core" )
4
- local view = require (" nvim-tree.view" )
5
2
local utils = require (" nvim-tree.utils" )
6
3
local actions = require (" nvim-tree.actions" )
7
4
local appearance_hi_test = require (" nvim-tree.appearance.hi-test" )
@@ -143,9 +140,9 @@ Api.tree.focus = Api.tree.open
143
140
--- @field focus boolean | nil default true
144
141
145
142
Api .tree .toggle = wrap (actions .tree .toggle .fn )
146
- Api .tree .close = wrap ( view . close )
147
- Api .tree .close_in_this_tab = wrap ( view . close_this_tab_only )
148
- Api .tree .close_in_all_tabs = wrap ( view . close_all_tabs )
143
+ Api .tree .close = wrap_explorer_member ( " view" , " close" )
144
+ Api .tree .close_in_this_tab = wrap_explorer_member ( " view" , " close_this_tab_only" )
145
+ Api .tree .close_in_all_tabs = wrap_explorer_member ( " view" , " close_all_tabs" )
149
146
Api .tree .reload = wrap_explorer (" reload_explorer" )
150
147
151
148
--- @class ApiTreeResizeOpts
@@ -200,12 +197,12 @@ Api.tree.is_tree_buf = wrap(utils.is_nvim_tree_buf)
200
197
--- @field tabpage number | nil
201
198
--- @field any_tabpage boolean | nil default false
202
199
203
- Api .tree .is_visible = wrap ( view . is_visible )
200
+ Api .tree .is_visible = wrap_explorer_member ( " view" , " is_visible" )
204
201
205
202
--- @class ApiTreeWinIdOpts
206
203
--- @field tabpage number | nil default nil
207
204
208
- Api .tree .winid = wrap ( view . winid )
205
+ Api .tree .winid = wrap_explorer_member ( " view" , " winid" )
209
206
210
207
Api .fs .create = wrap_node_or_nil (actions .fs .create_file .fn )
211
208
Api .fs .remove = wrap_node (actions .fs .remove_file .fn )
@@ -237,13 +234,17 @@ local function edit(mode, node, edit_opts)
237
234
local path = file_link and file_link .link_to or node .absolute_path
238
235
local cur_tabpage = vim .api .nvim_get_current_tabpage ()
239
236
237
+ local explorer = core .get_explorer ()
238
+
240
239
actions .node .open_file .fn (mode , path )
241
240
242
241
edit_opts = edit_opts or {}
243
242
244
243
local mode_unsupported_quit_on_open = mode == " drop" or mode == " tab_drop" or mode == " edit_in_place"
245
244
if not mode_unsupported_quit_on_open and edit_opts .quit_on_open then
246
- view .View :close (cur_tabpage )
245
+ if explorer then
246
+ explorer .view :close (cur_tabpage )
247
+ end
247
248
end
248
249
249
250
local mode_unsupported_focus = mode == " drop" or mode == " tab_drop" or mode == " edit_in_place"
@@ -253,7 +254,9 @@ local function edit(mode, node, edit_opts)
253
254
if mode == " tabnew" then
254
255
vim .cmd (" :tabprev" )
255
256
end
256
- view .View :focus ()
257
+ if explorer then
258
+ explorer .view :focus ()
259
+ end
257
260
end
258
261
end
259
262
0 commit comments