File tree 3 files changed +21
-0
lines changed
3 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -1546,6 +1546,15 @@ node.open.horizontal() *nvim-tree-api.node.open.horizontal()*
1546
1546
node.open.tab() *nvim-tree-api.node.open.tab()*
1547
1547
| nvim-tree-api.node.edit() | , file will be opened in a new tab.
1548
1548
1549
+ *nvim-tree-api.node.open.tab_drop()*
1550
+ node.open.tab_drop()
1551
+ Switch to tab containing window with selected file if it exists.
1552
+ Open file in new tab otherwise.
1553
+
1554
+ File: open file using `tab :drop`
1555
+ Folder: expand or collapse
1556
+ Root: change directory up
1557
+
1549
1558
node.open.preview() *nvim-tree-api.node.open.preview()*
1550
1559
| nvim-tree-api.node.edit() | , file buffer will have | bufhidden | set to `delete ` .
1551
1560
Original file line number Diff line number Diff line change @@ -148,6 +148,13 @@ local function open_file_in_tab(filename)
148
148
vim .cmd (" tabe " .. vim .fn .fnameescape (filename ))
149
149
end
150
150
151
+ local function tab_drop (filename )
152
+ if M .quit_on_open then
153
+ view .close ()
154
+ end
155
+ vim .cmd (" tab :drop " .. vim .fn .fnameescape (filename ))
156
+ end
157
+
151
158
local function on_preview (buf_loaded )
152
159
if not buf_loaded then
153
160
vim .bo .bufhidden = " delete"
@@ -284,6 +291,10 @@ function M.fn(mode, filename)
284
291
return open_file_in_tab (filename )
285
292
end
286
293
294
+ if mode == " tab_drop" then
295
+ return tab_drop (filename )
296
+ end
297
+
287
298
if mode == " edit_in_place" then
288
299
return edit_in_current_buf (filename )
289
300
end
Original file line number Diff line number Diff line change @@ -162,6 +162,7 @@ local function open_preview(node)
162
162
end
163
163
164
164
Api .node .open .edit = wrap_node (open_or_expand_or_dir_up " edit" )
165
+ Api .node .open .tab_drop = wrap_node (open_or_expand_or_dir_up " tab_drop" )
165
166
Api .node .open .replace_tree_buffer = wrap_node (open_or_expand_or_dir_up " edit_in_place" )
166
167
Api .node .open .no_window_picker = wrap_node (open_or_expand_or_dir_up " edit_no_picker" )
167
168
Api .node .open .vertical = wrap_node (open_or_expand_or_dir_up " vsplit" )
You can’t perform that action at this time.
0 commit comments