Skip to content

Commit 68fc4c2

Browse files
fdgdgergJoeDaBualex-courtis
authored
feat(api): add node.open.vertical_no_picker, node.open.horizontal_no_picker (#3031)
* test * add splits with no window pickers removed the 1 buffer per file limitation test test2 * no-picker for splits * help vertical/horizontal_no_picker * revert whitespace changes --------- Co-authored-by: JoeDaBu <[email protected]> Co-authored-by: Alexander Courtis <[email protected]>
1 parent f7b76cd commit 68fc4c2

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

Diff for: doc/nvim-tree-lua.txt

+12
Original file line numberDiff line numberDiff line change
@@ -2025,9 +2025,19 @@ node.open.no_window_picker({node})
20252025
node.open.vertical({node}) *nvim-tree-api.node.open.vertical()*
20262026
|nvim-tree-api.node.edit()|, file will be opened in a new vertical split.
20272027

2028+
*nvim-tree-api.node.open.vertical_no_picker()*
2029+
node.open.vertical_no_picker({node})
2030+
|nvim-tree-api.node.vertical()|, window picker will never be used as per
2031+
|nvim-tree.actions.open_file.window_picker.enable| `false`
2032+
20282033
node.open.horizontal({node}) *nvim-tree-api.node.open.horizontal()*
20292034
|nvim-tree-api.node.edit()|, file will be opened in a new horizontal split.
20302035

2036+
*nvim-tree-api.node.open.horizontal_no_picker()*
2037+
node.open.horizontal_no_picker({node})
2038+
|nvim-tree-api.node.horizontal()|, window picker will never be used as per
2039+
|nvim-tree.actions.open_file.window_picker.enable| `false`
2040+
20312041
*nvim-tree-api.node.open.toggle_group_empty()*
20322042
node.open.toggle_group_empty({node})
20332043
Toggle |nvim-tree.renderer.group_empty| for a specific folder.
@@ -3189,6 +3199,7 @@ highlight group is not, hard linking as follows: >
31893199
|nvim-tree-api.node.open.drop()|
31903200
|nvim-tree-api.node.open.edit()|
31913201
|nvim-tree-api.node.open.horizontal()|
3202+
|nvim-tree-api.node.open.horizontal_no_picker()|
31923203
|nvim-tree-api.node.open.no_window_picker()|
31933204
|nvim-tree-api.node.open.preview()|
31943205
|nvim-tree-api.node.open.preview_no_picker()|
@@ -3197,6 +3208,7 @@ highlight group is not, hard linking as follows: >
31973208
|nvim-tree-api.node.open.tab_drop()|
31983209
|nvim-tree-api.node.open.toggle_group_empty()|
31993210
|nvim-tree-api.node.open.vertical()|
3211+
|nvim-tree-api.node.open.vertical_no_picker()|
32003212
|nvim-tree-api.node.run.cmd()|
32013213
|nvim-tree-api.node.run.system()|
32023214
|nvim-tree-api.node.show_info_popup()|

Diff for: lua/nvim-tree/actions/node/open-file.lua

+6-2
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,8 @@ end
235235

236236
local function get_target_winid(mode)
237237
local target_winid
238-
if not M.window_picker.enable or mode == "edit_no_picker" or mode == "preview_no_picker" then
238+
if not M.window_picker.enable or string.find(mode, "no_picker") then
239239
target_winid = lib.target_winid
240-
241240
-- first available window
242241
if not vim.tbl_contains(vim.api.nvim_tabpage_list_wins(0), target_winid) then
243242
target_winid = first_win_id()
@@ -280,6 +279,11 @@ local function open_in_new_window(filename, mode)
280279
return
281280
end
282281

282+
local position = string.find(mode, "no_picker")
283+
if position then
284+
mode = string.sub(mode, 0, position - 2)
285+
end
286+
283287
-- non-floating, non-nvim-tree windows
284288
local win_ids = vim.tbl_filter(function(id)
285289
local config = vim.api.nvim_win_get_config(id)

Diff for: lua/nvim-tree/api.lua

+2
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,9 @@ Api.node.open.tab_drop = wrap_node(open_or_expand_or_dir_up("tab_drop"))
255255
Api.node.open.replace_tree_buffer = wrap_node(open_or_expand_or_dir_up("edit_in_place"))
256256
Api.node.open.no_window_picker = wrap_node(open_or_expand_or_dir_up("edit_no_picker"))
257257
Api.node.open.vertical = wrap_node(open_or_expand_or_dir_up("vsplit"))
258+
Api.node.open.vertical_no_picker = wrap_node(open_or_expand_or_dir_up("vsplit_no_picker"))
258259
Api.node.open.horizontal = wrap_node(open_or_expand_or_dir_up("split"))
260+
Api.node.open.horizontal_no_picker = wrap_node(open_or_expand_or_dir_up("split_no_picker"))
259261
Api.node.open.tab = wrap_node(open_or_expand_or_dir_up("tabnew"))
260262
Api.node.open.toggle_group_empty = wrap_node(open_or_expand_or_dir_up("toggle_group_empty", true))
261263
Api.node.open.preview = wrap_node(open_or_expand_or_dir_up("preview"))

0 commit comments

Comments
 (0)