neovim-config/lua/colors/init.lua
tuberry 47e4f0361f fix: let hl_override be compatible with custom themes
load `hl_override` after the theme
2022-03-26 19:58:29 +05:30

52 lines
1.3 KiB
Lua

local colors = require("core.utils").load_config().ui.colors
local override = require("core.utils").load_config().ui.hl_override
local M = {}
-- if theme given, load given theme if given, otherwise nvchad_theme
M.init = function(theme)
if not theme then
theme = require("core.utils").load_config().ui.theme
end
-- set the global theme, used at various places like theme switcher, highlights
vim.g.nvchad_theme = theme
local present, base16 = pcall(require, "base16")
if present then
-- first load the base16 theme
local ok, array = pcall(base16.themes, theme)
if ok then
base16(array, true)
-- unload to force reload
package.loaded["colors.highlights" or false] = nil
-- then load the highlights
require "colors.highlights"
else
pcall(vim.cmd, "colo " .. theme)
end
else
pcall(vim.cmd, "colo " .. theme)
end
if #override ~= 0 then
package.loaded[override] = nil
require(override)
end
end
-- returns a table of colors for given or current theme
M.get = function(theme)
if #colors ~= 0 then
return require(colors)
else
if not theme then
theme = vim.g.nvchad_theme
end
return require("hl_themes." .. theme)
end
end
return M