diff --git a/lua/styler/theme.lua b/lua/styler/theme.lua index bd72de4..80c1f5e 100644 --- a/lua/styler/theme.lua +++ b/lua/styler/theme.lua @@ -26,7 +26,9 @@ function M.load(theme) self.orig = M.get_current() self.theme = theme self:before() + vim.api.nvim_exec_autocmds("ColorSchemePre", { pattern = self.theme.colorscheme }) vim.cmd("colorscheme " .. self.theme.colorscheme) + vim.api.nvim_exec_autocmds("ColorScheme", { pattern = self.theme.colorscheme }) self:after() end return ns @@ -36,8 +38,13 @@ function M:before() pcall(function() require("lazy.core.loader").colorscheme(self.theme.colorscheme) end) + self.last_eventignore = vim.go.eventignore -- don't trigger autocmds - vim.go.eventignore = "all" + if vim.fn.has('nvim-0.12') == 1 then + vim.go.eventignore = "all,-ColorSchemePre,-ColorScheme" + else + vim.go.eventignore = "all" + end -- set to nil, so most themes won't run `hi clear` to prevent flickering vim.g.colors_name = nil @@ -79,7 +86,7 @@ function M:after() end -- enable autocmds - vim.go.eventignore = "" + vim.go.eventignore = self.last_eventignore -- schedule theme reload vim.schedule(function()