From 2a5bae925481f999263d6f5ed8361baef8df4f83 Mon Sep 17 00:00:00 2001 From: shadmansaleh <13149513+shadmansaleh@users.noreply.github.com> Date: Fri, 8 Nov 2024 13:15:26 +0600 Subject: [PATCH] fix: first render not accounting for filetype and others --- lua/lualine.lua | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/lua/lualine.lua b/lua/lualine.lua index 59b4533f..bcfb5cbf 100644 --- a/lua/lualine.lua +++ b/lua/lualine.lua @@ -441,8 +441,11 @@ local function set_tabline(hide) ) modules.nvim_opts.set('showtabline', config.options.always_show_tabline and 2 or 1, { global = true }) timers.halt_tal_refresh = false - -- imediately refresh upon load - refresh { kind = 'tabpage', place = { 'tabline' }, trigger = 'init' } + vim.schedule(function() + -- imediately refresh upon load + -- schedule needed so stuff like filetype detect can run first + refresh { kind = 'tabpage', place = { 'tabline' }, trigger = 'init' } + end) else modules.nvim_opts.restore('tabline', { global = true }) modules.nvim_opts.restore('showtabline', { global = true }) @@ -481,12 +484,15 @@ local function set_statusline(hide) ) end timers.halt_stl_refresh = false - -- imediately refresh upon load - if config.options.globalstatus then - refresh { kind = 'window', place = { 'statusline' }, trigger = 'init' } - else - refresh { kind = 'tabpage', place = { 'statusline' }, trigger = 'init' } - end + vim.schedule(function() + -- imediately refresh upon load + -- schedule needed so stuff like filetype detect can run first + if config.options.globalstatus then + refresh { kind = 'window', place = { 'statusline' }, trigger = 'init' } + else + refresh { kind = 'tabpage', place = { 'statusline' }, trigger = 'init' } + end + end) else modules.nvim_opts.restore('statusline', { global = true }) for _, win in ipairs(vim.api.nvim_list_wins()) do @@ -511,8 +517,11 @@ local function set_winbar(hide) end, 3, 'lualine: Failed to refresh winbar') ) timers.halt_wb_refresh = false - -- imediately refresh upon load - refresh { kind = 'tabpage', place = { 'winbar' }, trigger = 'init' } + vim.schedule(function() + -- imediately refresh upon load. + -- schedule needed so stuff like filetype detect can run first + refresh { kind = 'tabpage', place = { 'winbar' }, trigger = 'init' } + end) elseif vim.fn.has('nvim-0.8') == 1 then modules.nvim_opts.restore('winbar', { global = true }) for _, win in ipairs(vim.api.nvim_list_wins()) do