From ef5599d6210a3bc3ffd3581cd94b54b093366eb1 Mon Sep 17 00:00:00 2001 From: JoeDaBu Date: Sat, 14 Dec 2024 20:12:12 -0800 Subject: [PATCH 1/5] test --- lua/nvim-tree/actions/node/open-file.lua | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index 1d1fc2ecc12..5c08b40d04a 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -48,6 +48,11 @@ end local function first_win_id() local selectable = usable_win_ids() if #selectable > 0 then + print("Select") + vim.notify("Select") + local strin = vim.inspect(selectable) + vim.notify(strin) + print(selectable) return selectable[1] else return -1 @@ -131,11 +136,11 @@ local function pick_win_id() win_map[char] = id if vim.fn.has("nvim-0.10") == 1 then - vim.api.nvim_set_option_value("statusline", "%=" .. char .. "%=", { win = id }) - vim.api.nvim_set_option_value("winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker", { win = id }) + vim.api.nvim_set_option_value("statusline", "%=" .. char .. "%=", { win = id }) + vim.api.nvim_set_option_value("winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker", { win = id }) else vim.api.nvim_win_set_option(id, "statusline", "%=" .. char .. "%=") ---@diagnostic disable-line: deprecated - vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker") ---@diagnostic disable-line: deprecated + vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker") ---@diagnostic disable-line: deprecated end i = i + 1 From f029876a2c07fe59fa703f2172b660c4620a020d Mon Sep 17 00:00:00 2001 From: JoeDaBu Date: Sat, 14 Dec 2024 23:24:30 -0800 Subject: [PATCH 2/5] add splits with no window pickers removed the 1 buffer per file limitation test test2 --- lua/nvim-tree/actions/node/open-file.lua | 25 +++++++----------------- lua/nvim-tree/api.lua | 2 ++ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index 5c08b40d04a..eb6503aa23f 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -48,11 +48,6 @@ end local function first_win_id() local selectable = usable_win_ids() if #selectable > 0 then - print("Select") - vim.notify("Select") - local strin = vim.inspect(selectable) - vim.notify(strin) - print(selectable) return selectable[1] else return -1 @@ -240,9 +235,8 @@ end local function get_target_winid(mode) local target_winid - if not M.window_picker.enable or mode == "edit_no_picker" or mode == "preview_no_picker" then + if not M.window_picker.enable or string.find(mode, "no_picker") then target_winid = lib.target_winid - -- first available window if not vim.tbl_contains(vim.api.nvim_tabpage_list_wins(0), target_winid) then target_winid = first_win_id() @@ -285,6 +279,11 @@ local function open_in_new_window(filename, mode) return end + local position = string.find(mode, "no_picker") + if position then + mode = string.sub(mode, 0, position - 2) + end + -- non-floating, non-nvim-tree windows local win_ids = vim.tbl_filter(function(id) local config = vim.api.nvim_win_get_config(id) @@ -398,17 +397,7 @@ function M.fn(mode, filename) local buf_loaded = is_already_loaded(filename) - local found_win = utils.get_win_buf_from_path(filename) - if found_win and (mode == "preview" or mode == "preview_no_picker") then - return - end - - if not found_win then - open_in_new_window(filename, mode) - else - vim.api.nvim_set_current_win(found_win) - vim.bo.bufhidden = "" - end + open_in_new_window(filename, mode) if M.resize_window then view.resize() diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index 455d4b0df08..e6c3d5b7cac 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -255,7 +255,9 @@ Api.node.open.tab_drop = wrap_node(open_or_expand_or_dir_up("tab_drop")) Api.node.open.replace_tree_buffer = wrap_node(open_or_expand_or_dir_up("edit_in_place")) Api.node.open.no_window_picker = wrap_node(open_or_expand_or_dir_up("edit_no_picker")) Api.node.open.vertical = wrap_node(open_or_expand_or_dir_up("vsplit")) +Api.node.open.vertical_no_picker = wrap_node(open_or_expand_or_dir_up("vsplit_no_picker")) Api.node.open.horizontal = wrap_node(open_or_expand_or_dir_up("split")) +Api.node.open.horizontal_no_picker = wrap_node(open_or_expand_or_dir_up("split_no_picker")) Api.node.open.tab = wrap_node(open_or_expand_or_dir_up("tabnew")) Api.node.open.toggle_group_empty = wrap_node(open_or_expand_or_dir_up("toggle_group_empty", true)) Api.node.open.preview = wrap_node(open_or_expand_or_dir_up("preview")) From c4a4c71530b530ae3ad2cd880068ff1f5c87f59c Mon Sep 17 00:00:00 2001 From: JoeDaBu Date: Mon, 16 Dec 2024 18:49:22 -0800 Subject: [PATCH 3/5] no-picker for splits --- lua/nvim-tree/actions/node/open-file.lua | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index eb6503aa23f..5be2550655c 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -397,7 +397,17 @@ function M.fn(mode, filename) local buf_loaded = is_already_loaded(filename) - open_in_new_window(filename, mode) + local found_win = utils.get_win_buf_from_path(filename) + if found_win and (mode == "preview" or mode == "preview_no_picker") then + return + end + + if not found_win then + open_in_new_window(filename, mode) + else + vim.api.nvim_set_current_win(found_win) + vim.bo.bufhidden = "" + end if M.resize_window then view.resize() From a9e8f821c878e1a0641dc60a9511c74d47062305 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Sun, 22 Dec 2024 09:31:01 +1100 Subject: [PATCH 4/5] help vertical/horizontal_no_picker --- doc/nvim-tree-lua.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/nvim-tree-lua.txt b/doc/nvim-tree-lua.txt index 7ab41bebff7..4ef9b1c340a 100644 --- a/doc/nvim-tree-lua.txt +++ b/doc/nvim-tree-lua.txt @@ -2025,9 +2025,19 @@ node.open.no_window_picker({node}) node.open.vertical({node}) *nvim-tree-api.node.open.vertical()* |nvim-tree-api.node.edit()|, file will be opened in a new vertical split. + *nvim-tree-api.node.open.vertical_no_picker()* +node.open.vertical_no_picker({node}) + |nvim-tree-api.node.vertical()|, window picker will never be used as per + |nvim-tree.actions.open_file.window_picker.enable| `false` + node.open.horizontal({node}) *nvim-tree-api.node.open.horizontal()* |nvim-tree-api.node.edit()|, file will be opened in a new horizontal split. + *nvim-tree-api.node.open.horizontal_no_picker()* +node.open.horizontal_no_picker({node}) + |nvim-tree-api.node.horizontal()|, window picker will never be used as per + |nvim-tree.actions.open_file.window_picker.enable| `false` + *nvim-tree-api.node.open.toggle_group_empty()* node.open.toggle_group_empty({node}) Toggle |nvim-tree.renderer.group_empty| for a specific folder. @@ -3189,6 +3199,7 @@ highlight group is not, hard linking as follows: > |nvim-tree-api.node.open.drop()| |nvim-tree-api.node.open.edit()| |nvim-tree-api.node.open.horizontal()| +|nvim-tree-api.node.open.horizontal_no_picker()| |nvim-tree-api.node.open.no_window_picker()| |nvim-tree-api.node.open.preview()| |nvim-tree-api.node.open.preview_no_picker()| @@ -3197,6 +3208,7 @@ highlight group is not, hard linking as follows: > |nvim-tree-api.node.open.tab_drop()| |nvim-tree-api.node.open.toggle_group_empty()| |nvim-tree-api.node.open.vertical()| +|nvim-tree-api.node.open.vertical_no_picker()| |nvim-tree-api.node.run.cmd()| |nvim-tree-api.node.run.system()| |nvim-tree-api.node.show_info_popup()| From 49b76a65f378d13cdd4d1462d9cf4a751cf8bd44 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Sun, 22 Dec 2024 09:33:41 +1100 Subject: [PATCH 5/5] revert whitespace changes --- lua/nvim-tree/actions/node/open-file.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index 5be2550655c..0f07c0c18b9 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -131,11 +131,11 @@ local function pick_win_id() win_map[char] = id if vim.fn.has("nvim-0.10") == 1 then - vim.api.nvim_set_option_value("statusline", "%=" .. char .. "%=", { win = id }) - vim.api.nvim_set_option_value("winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker", { win = id }) + vim.api.nvim_set_option_value("statusline", "%=" .. char .. "%=", { win = id }) + vim.api.nvim_set_option_value("winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker", { win = id }) else vim.api.nvim_win_set_option(id, "statusline", "%=" .. char .. "%=") ---@diagnostic disable-line: deprecated - vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker") ---@diagnostic disable-line: deprecated + vim.api.nvim_win_set_option(id, "winhl", "StatusLine:NvimTreeWindowPicker,StatusLineNC:NvimTreeWindowPicker") ---@diagnostic disable-line: deprecated end i = i + 1