Skip to content

Commit

Permalink
Prioritize focused window in switchbuf useopen/usetab
Browse files Browse the repository at this point in the history
If the same buffer is open in multiple windows and one of them is
focused, use the focused window.
  • Loading branch information
mfussenegger committed Aug 1, 2023
1 parent 5a39d1f commit 1c63f37
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions lua/dap/session.lua
Original file line number Diff line number Diff line change
Expand Up @@ -425,14 +425,20 @@ local function jump_to_location(bufnr, line, column, switchbuf, filetype)
set_cursor(cur_win, line, column)
else
local win = vim.fn.win_getid(vim.fn.winnr('#'))
api.nvim_win_set_buf(win, bufnr)
set_cursor(win, line, column)
if win then
api.nvim_win_set_buf(win, bufnr)
set_cursor(win, line, column)
end
end
return true
end

function switchbuf_fn.useopen()
for _, win in pairs(api.nvim_tabpage_list_wins(0)) do
if api.nvim_win_get_buf(cur_win) == bufnr then
set_cursor(cur_win, line, column)
return true
end
for _, win in ipairs(api.nvim_tabpage_list_wins(0)) do
if api.nvim_win_get_buf(win) == bufnr then
set_cursor(win, line, column)
return true
Expand All @@ -442,10 +448,14 @@ local function jump_to_location(bufnr, line, column, switchbuf, filetype)
end

function switchbuf_fn.usetab()
if api.nvim_win_get_buf(cur_win) == bufnr then
set_cursor(cur_win, line, column)
return true
end
local tabs = {0,}
vim.list_extend(tabs, api.nvim_list_tabpages())
for _, tabpage in pairs(tabs) do
for _, win in pairs(api.nvim_tabpage_list_wins(tabpage)) do
for _, tabpage in ipairs(tabs) do
for _, win in ipairs(api.nvim_tabpage_list_wins(tabpage)) do
if api.nvim_win_get_buf(win) == bufnr then
api.nvim_set_current_tabpage(tabpage)
set_cursor(win, line, column)
Expand Down

0 comments on commit 1c63f37

Please sign in to comment.