diff --git a/lua/lualine.lua b/lua/lualine.lua index a7db85f..05ff719 100644 --- a/lua/lualine.lua +++ b/lua/lualine.lua @@ -337,7 +337,15 @@ local function refresh(opts) -- https://github.com/nvim-lualine/lualine.nvim/issues/755 -- https://github.com/neovim/neovim/issues/19472 -- https://github.com/nvim-lualine/lualine.nvim/issues/791 - if opts.trigger == 'autocmd' and vim.v.event.new_mode ~= 'c' then + if opts.trigger == 'autocmd' and + vim.v.event.new_mode ~= 'c' and + -- scheduling in op-pending mode seems to call the callback forever. + -- so this is restricted in op-pending mode. + -- https://github.com/neovim/neovim/issues/22263 + -- https://github.com/nvim-lualine/lualine.nvim/issues/967 + -- note this breaks mode component while switching to op-pending mode + not vim.tbl_contains({'no', 'nov', 'noV'}, vim.v.event.new_mode) and + not vim.tbl_contains({'no', 'nov', 'noV'}, vim.v.event.old_mode) then opts.trigger = 'autocmd_redired' vim.schedule(function() M.refresh(opts)