Skip to content

Commit 1d05806

Browse files
committed
fix(core): Fixed delays of loading modules in new windows
refactor(tabline): Tabline events are now handled in their own autocmd
1 parent 6f37dfb commit 1d05806

File tree

1 file changed

+39
-14
lines changed

1 file changed

+39
-14
lines changed

plugin/bars.lua

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,43 @@ vim.api.nvim_create_autocmd({
3232
callback = function ()
3333
---|fS
3434

35-
require("bars.statusline").clean();
36-
require("bars.statuscolumn").clean();
37-
require("bars.winbar").clean();
38-
require("bars.tabline").clean();
35+
local function callback ()
36+
require("bars.statusline").clean();
37+
require("bars.statuscolumn").clean();
38+
require("bars.winbar").clean();
3939

40-
vim.schedule(function ()
4140
for _, win in ipairs(vim.api.nvim_list_wins()) do
4241
require("bars.statusline").attach(win);
4342
require("bars.statuscolumn").attach(win);
4443
require("bars.winbar").attach(win);
4544
end
45+
end
46+
47+
if vim.in_fast_event() then
48+
vim.schedule(callback);
49+
else
50+
callback();
51+
end
52+
53+
---|fE
54+
end
55+
});
56+
57+
--- Handle Tabline differently.
58+
vim.api.nvim_create_autocmd("TabNew", {
59+
callback = function ()
60+
---|fS
4661

62+
local function callback ()
63+
require("bars.tabline").clean();
4764
require("bars.tabline").attach();
48-
end);
65+
end
66+
67+
if vim.in_fast_event() then
68+
vim.schedule(callback);
69+
else
70+
callback();
71+
end
4972

5073
---|fE
5174
end
@@ -68,21 +91,23 @@ vim.api.nvim_create_autocmd({ "OptionSet" }, {
6891
return;
6992
end
7093

71-
--- Clean up invalid windows.
72-
require("bars.statusline").clean();
73-
require("bars.statuscolumn").clean();
74-
require("bars.winbar").clean();
75-
require("bars.tabline").clean();
94+
local function callback ()
95+
require("bars.statusline").clean();
96+
require("bars.statuscolumn").clean();
97+
require("bars.winbar").clean();
7698

77-
vim.schedule(function ()
7899
for _, win in ipairs(vim.api.nvim_list_wins()) do
79100
require("bars.statusline").attach(win);
80101
require("bars.statuscolumn").attach(win);
81102
require("bars.winbar").attach(win);
82103
end
104+
end
83105

84-
require("bars.tabline").attach();
85-
end);
106+
if vim.in_fast_event() then
107+
vim.schedule(callback);
108+
else
109+
callback();
110+
end
86111

87112
---|fE
88113
end

0 commit comments

Comments
 (0)