@@ -83,7 +83,33 @@ M.should_show_minimap_for_tab = function(tabid)
8383 logger .log (string.format (" Tab %d is not enabled. Skipping generation of minimap" , tabid ), vim .log .levels .TRACE )
8484 return false
8585 end
86+
87+ if config .split .close_if_last_window then
88+ logger .log (" Checking if tab has window" , vim .log .levels .TRACE )
89+ local win_list = api .nvim_tabpage_list_wins (tabid )
90+ local none_floating_count = 0
91+ for _ , winid in ipairs (win_list ) do
92+ if not require (" neominimap.util" ).is_floating (winid ) then
93+ none_floating_count = none_floating_count + 1
94+ end
95+ end
96+ local window_map = require (" neominimap.window.split.window_map" )
97+ if none_floating_count == 0 or (none_floating_count == 1 and window_map .get_minimap_winid (tabid ) ~= nil ) then
98+ logger .log (
99+ " Tab has no window, or only one non-floating window. Skipping generation of minimap" ,
100+ vim .log .levels .TRACE
101+ )
102+ return false
103+ end
104+ end
105+
106+ if not config .tab_filter (tabid ) then
107+ logger .log (string.format (" Tab %d should not be shown due to tab_filter" , tabid ), vim .log .levels .TRACE )
108+ return false
109+ end
110+
86111 logger .log (string.format (" Minimap can be shown for tab %d" , tabid ), vim .log .levels .TRACE )
112+
87113 return true
88114end
89115
@@ -158,7 +184,10 @@ M.close_minimap_window = function(tabid)
158184 logger .log (string.format (" No minimap window found for tab %d" , tabid ), vim .log .levels .TRACE )
159185 return nil
160186 end
161- api .nvim_win_close (mwinid , true )
187+ local ok , _ = pcall (require (" neominimap.util" ).noautocmd (api .nvim_win_close ), mwinid , true )
188+ if not ok then
189+ vim .cmd (" noau qa!" )
190+ end
162191 logger .log (string.format (" Minimap window %d closed" , mwinid ), vim .log .levels .TRACE )
163192 return mwinid
164193end
@@ -287,21 +316,6 @@ M.refresh_current_tab = function()
287316 local window_map = require (" neominimap.window.split.window_map" )
288317 local tabid = api .nvim_get_current_tabpage ()
289318
290- if config .split .close_if_last_window then
291- logger .log (" Checking if tab has window" , vim .log .levels .TRACE )
292- local win_list = api .nvim_tabpage_list_wins (tabid )
293- local none_floating_count = 0
294- for _ , winid in ipairs (win_list ) do
295- if not require (" neominimap.util" ).is_floating (winid ) then
296- none_floating_count = none_floating_count + 1
297- end
298- end
299- if none_floating_count == 0 or (none_floating_count == 1 and window_map .get_minimap_winid (tabid ) ~= nil ) then
300- logger .log (" Tab has no window" , vim .log .levels .TRACE )
301- vim .cmd (" noau quit" )
302- return
303- end
304- end
305319 if M .should_show_minimap_for_tab (tabid ) then
306320 local mwinid = window_map .get_minimap_winid (tabid )
307321 if mwinid == nil or not api .nvim_win_is_valid (mwinid ) then
0 commit comments