From 5e933b297fb04162607fe7b6b1d172d10066c72c Mon Sep 17 00:00:00 2001 From: robin Date: Mon, 16 Feb 2026 15:59:12 +0100 Subject: [PATCH] perf: only reload mode reverse hl on colorscheme --- lua/lylla/init.lua | 12 +++++------- lua/lylla/utils.lua | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lua/lylla/init.lua b/lua/lylla/init.lua index ff0b976..c8439a5 100644 --- a/lua/lylla/init.lua +++ b/lua/lylla/init.lua @@ -32,24 +32,22 @@ end function M.inithls() vim.iter(pairs(default_hls)):each(function(mode, defaulthl) - local name = utils.get_modehl_name(mode) - local hl = config.get().hls[mode] + local name, revname = utils.get_modehl_name(mode) if hl then vim.api.nvim_set_hl(0, name, hl) - return - end - - if vim.tbl_isempty(vim.api.nvim_get_hl(0, { name = name })) then + elseif vim.tbl_isempty(vim.api.nvim_get_hl(0, { name = name })) then vim.api.nvim_set_hl(0, name, defaulthl) end + vim.api.nvim_set_hl(0, revname, utils.reverse_hl(name)) end) end function M.resethl() vim.iter(pairs(default_hls)):each(function(mode, _) - local name = utils.get_modehl_name(mode) + local name, revname = utils.get_modehl_name(mode) vim.api.nvim_set_hl(0, name, {}) + vim.api.nvim_set_hl(0, revname, {}) end) end diff --git a/lua/lylla/utils.lua b/lua/lylla/utils.lua index 0b7809e..133de1a 100644 --- a/lua/lylla/utils.lua +++ b/lua/lylla/utils.lua @@ -207,28 +207,30 @@ end ---@param mode string ---@return string +---@return string function utils.get_modehl_name(mode) - return "@lylla." .. mode + return "@lylla." .. mode, string.format("@lylla.%s.rev", mode) end +---@return string ---@return string function utils.get_modehl() local mode = vim.api.nvim_get_mode().mode - local hl_name = utils.get_modehl_name("normal") + local modename = "normal" if string.match(mode, "^[vVs]") then - hl_name = utils.get_modehl_name("visual") + modename = "visual" elseif string.match(mode, "^c") then - hl_name = utils.get_modehl_name("command") + modename = "command" elseif string.match(mode, "^[it]") then - hl_name = utils.get_modehl_name("insert") + modename = "insert" elseif string.match(mode, "^[rR]") then - hl_name = utils.get_modehl_name("replace") + modename = "replace" elseif string.match(mode, "^%ao") then - hl_name = utils.get_modehl_name("operator") + modename = "operator" end - return hl_name, utils.create_hl(utils.reverse_hl(hl_name)) + return utils.get_modehl_name(modename) end return utils -- 2.51.2