From 8c07e15e0ed051d22e02e57ce185dc869cd0745e Mon Sep 17 00:00:00 2001 From: Cameron Ring Date: Thu, 24 Oct 2024 11:37:44 -0700 Subject: [PATCH] fix: #7 Show correct hl after Telescope file open --- lua/line-number-change-mode/init.lua | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lua/line-number-change-mode/init.lua b/lua/line-number-change-mode/init.lua index 58fac17..151fd21 100644 --- a/lua/line-number-change-mode/init.lua +++ b/lua/line-number-change-mode/init.lua @@ -17,6 +17,11 @@ function M.setup(opts) vim.cmd.redraw() end end + + -- Keep track of mode because we don't get a ModeChanged event when + -- opening a file from Telescope. See: + -- https://github.com/sethen/line-number-change-mode.nvim/issues/7 + M.mode = mode end set_hl_for_mode(va.nvim_get_mode().mode) @@ -33,6 +38,24 @@ function M.setup(opts) set_hl_for_mode(new_mode) end, }) + + vim.api.nvim_create_autocmd({ "WinLeave" }, { + group = group, + callback = function(_) + -- If we're leaving a window and we're still in insert mode, schedule + -- a callback for the next run of the event loop to make sure the + -- correct mode highlight is displayed. See: + -- https://github.com/sethen/line-number-change-mode.nvim/issues/7 + if M.mode == 'i' then + vim.schedule(function() + if opts.debug then + vim.notify('in insert mode, will schedule mode set') + end + set_hl_for_mode(vim.api.nvim_get_mode().mode) + end) + end + end, + }) end return M