avante.nvim/lua/avante/highlights.lua
Aaron Pham 4f8c33cf5f
refactor: move highlights to groups with fg and bg (#226)
Signed-off-by: Aaron Pham <contact@aarnphm.xyz>
2024-08-26 01:11:05 -04:00

52 lines
1.5 KiB
Lua

local api = vim.api
local Config = require("avante.config")
local H = {
TITLE = { name = "AvanteTitle", fg = "#1e222a", bg = "#98c379" },
REVERSED_TITLE = { name = "AvanteReversedTitle", fg = "#98c379" },
SUBTITLE = { name = "AvanteSubtitle", fg = "#1e222a", bg = "#56b6c2" },
REVERSED_SUBTITLE = { name = "AvanteReversedSubtitle", fg = "#56b6c2" },
THIRD_TITLE = { name = "AvanteThirdTitle", fg = "#ABB2BF", bg = "#353B45" },
REVERSED_THIRD_TITLE = { name = "AvanteReversedThirdTitle", fg = "#353B45" },
}
local M = {}
M.input_ns = api.nvim_create_namespace("avante_input")
M.hint_ns = api.nvim_create_namespace("avante_hint")
local function has_set_colors(hl_group)
local hl = api.nvim_get_hl(0, { name = hl_group })
return next(hl) ~= nil
end
M.setup = function()
local normal = api.nvim_get_hl(0, { name = "Normal" })
local normal_float = api.nvim_get_hl(0, { name = "NormalFloat" })
if Config.behaviour.auto_set_highlight_group then
vim.iter(H):each(function(_, hl)
if not has_set_colors(hl.name) then
api.nvim_set_hl(0, hl.name, { fg = hl.fg, bg = hl.bg or nil })
end
end)
end
api.nvim_set_hl(M.hint_ns, "NormalFloat", { fg = normal_float.fg, bg = normal_float.bg })
api.nvim_set_hl(M.input_ns, "NormalFloat", { fg = normal_float.fg, bg = normal_float.bg })
api.nvim_set_hl(M.input_ns, "FloatBorder", { fg = normal.fg, bg = normal.bg })
end
setmetatable(M, {
__index = function(t, k)
if H[k] ~= nil then
return H[k].name
end
return t[k]
end,
})
return M