@@ -243,48 +243,56 @@ function M.open(close, jumpCmd, qwinid, idx)
243243 end
244244 cmd(('%s %s'):format(jumpCmd, fname))
245245 else
246- local current_tabnr = vim.api.nvim_win_get_tabpage(vim.api.nvim_get_current_win())
247246 local winnr
248247 local winid
248+ local tabnr
249+ local current_tabnr = vim.api.nvim_win_get_tabpage(vim.api.nvim_get_current_win())
250+ local current_tab = false
249251 local bufInfos = fn.getbufinfo(bufnr)
250252 for key, buffinfo in pairs(bufInfos) do
251- local windows = buffinfo.windows
252- for i = 1, #windows do
253- local window = windows[i]
254- local wininfo = vim.fn.getwininfo(window)[1]
253+ for i = 1, #buffinfo.windows do
254+ local wininfo = vim.fn.getwininfo(windows[i])[1]
255255
256- -- if wininfo.tabnr ~= current_tabnr then
257- -- print('break')
258- -- -- continue
259- -- do break end
260- -- end
256+ local tabnr_ = wininfo.tabnr
257+
258+ if tabnr and tabnr_ > tabnr then
259+ do break end
260+ end
261261
262262 local winnr_ = wininfo.winnr
263263 local winid_ = wininfo.winid
264264
265265 if not (winid) then
266266 winnr = winnr_
267267 winid = winid_
268- else
269- if winnr_ < winnr then
268+ tabnr = tabnr_
269+ elseif tabnr_ == current_tabnr then
270+ if current_tab == false or winnr_ < winnr then
270271 winnr = winnr_
272+ if winnr == 1 then
273+ goto finish
274+ end
271275 winid = winid_
276+ tabnr = tabnr_
277+ current_tab = true
272278 end
273- end
274-
275- if winnr == 1 then
276- break
279+ elseif tabnr_ < tabnr then
280+ winnr = winnr_
281+ winid = winid_
282+ tabnr = tabnr_
283+ elseif winnr_ < winnr then
284+ winnr = winnr_
285+ winid = winid_
277286 end
278287 end
279288 end
280289
281290 if not (winid) then
282- local buffnr = vim.fn.winbufnr(1)
283- local winid = vim.fn.bufwinid(buffnr)
284- vim.api.nvim_set_current_win(winid)
285- else
286- vim.api.nvim_set_current_win(winid)
291+ local bufnr = vim.fn.winbufnr(1)
292+ winid = vim.fn.bufwinid(bufnr)
287293 end
294+ :: finish ::
295+ vim.api.nvim_set_current_win(winid)
288296 api.nvim_set_current_buf(bufnr)
289297 end
290298 end)
0 commit comments