@@ -243,46 +243,22 @@ function M.open(close, jumpCmd, qwinid, idx)
243243 end
244244 cmd ((' %s %s' ):format (jumpCmd , fname ))
245245 else
246- local winnr
247246 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
247+ local lastused
251248
252249 local bufInfos = fn .getbufinfo (bufnr )
253250 for key , buffinfo in pairs (bufInfos ) do
254251 for i = 1 , # buffinfo .windows do
255252 local wininfo = vim .fn .getwininfo (windows [i ])[1 ]
256253
257- local tabnr_ = wininfo .tabnr
258-
259- if tabnr and tabnr_ > tabnr then
260- do break end
261- end
262-
263- local winnr_ = wininfo .winnr
254+ local lastused_ = wininfo .lastused
264255 local winid_ = wininfo .winid
265256
266- if not (winid ) then
267- winnr = winnr_
268- winid = winid_
269- tabnr = tabnr_
270- elseif tabnr_ == current_tabnr then
271- if current_tab == false or winnr_ < winnr then
272- winnr = winnr_
273- if winnr == 1 then
274- goto finish
275- end
276- winid = winid_
277- tabnr = tabnr_
278- current_tab = true
279- end
280- elseif tabnr_ < tabnr then
281- winnr = winnr_
257+ if not lastused then
258+ lastused = lastused_
282259 winid = winid_
283- tabnr = tabnr_
284- elseif winnr_ < winnr then
285- winnr = winnr_
260+ elseif lastused_ > lastused then
261+ lastused = lastused_
286262 winid = winid_
287263 end
288264 end
@@ -292,7 +268,6 @@ function M.open(close, jumpCmd, qwinid, idx)
292268 local bufnr = vim .fn .winbufnr (1 )
293269 winid = vim .fn .bufwinid (bufnr )
294270 end
295- :: finish ::
296271 vim .api .nvim_set_current_win (winid )
297272 api .nvim_set_current_buf (bufnr )
298273 end
0 commit comments