2024-08-22 14:46:08 +08:00
|
|
|
local api = vim.api
|
|
|
|
|
2024-08-24 20:15:45 -04:00
|
|
|
local Config = require("avante.config")
|
|
|
|
|
2024-08-26 01:11:05 -04:00
|
|
|
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" },
|
2024-08-21 21:28:17 +08:00
|
|
|
}
|
|
|
|
|
2024-08-26 01:11:05 -04:00
|
|
|
local M = {}
|
|
|
|
|
2024-08-24 17:34:41 +08:00
|
|
|
M.input_ns = api.nvim_create_namespace("avante_input")
|
2024-08-24 20:29:46 +08:00
|
|
|
M.hint_ns = api.nvim_create_namespace("avante_hint")
|
2024-08-24 17:34:41 +08:00
|
|
|
|
2024-08-25 14:06:00 +08:00
|
|
|
local function has_set_colors(hl_group)
|
|
|
|
local hl = api.nvim_get_hl(0, { name = hl_group })
|
|
|
|
return next(hl) ~= nil
|
|
|
|
end
|
|
|
|
|
2024-08-21 21:28:17 +08:00
|
|
|
M.setup = function()
|
2024-08-22 14:46:08 +08:00
|
|
|
local normal = api.nvim_get_hl(0, { name = "Normal" })
|
2024-08-24 20:29:46 +08:00
|
|
|
local normal_float = api.nvim_get_hl(0, { name = "NormalFloat" })
|
|
|
|
|
2024-08-24 20:15:45 -04:00
|
|
|
if Config.behaviour.auto_set_highlight_group then
|
2024-08-26 01:11:05 -04:00
|
|
|
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)
|
2024-08-24 20:15:45 -04:00
|
|
|
end
|
2024-08-24 17:34:41 +08:00
|
|
|
|
2024-08-24 20:29:46 +08:00
|
|
|
api.nvim_set_hl(M.hint_ns, "NormalFloat", { fg = normal_float.fg, bg = normal_float.bg })
|
|
|
|
|
2024-08-24 17:34:41 +08:00
|
|
|
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 })
|
2024-08-21 21:28:17 +08:00
|
|
|
end
|
|
|
|
|
2024-08-26 01:11:05 -04:00
|
|
|
setmetatable(M, {
|
|
|
|
__index = function(t, k)
|
|
|
|
if H[k] ~= nil then
|
|
|
|
return H[k].name
|
|
|
|
end
|
|
|
|
return t[k]
|
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
2024-08-21 21:28:17 +08:00
|
|
|
return M
|