feat: support themes other than defaults
Try to activate a theme if not presented in defaults. Accordingly, add the option `ui.colors` to provide the missing `hl_theme*` in the custom theme.
This commit is contained in:
parent
958a62bc67
commit
ec5017126c
2 changed files with 22 additions and 9 deletions
|
@ -13,22 +13,34 @@ M.init = function(theme)
|
|||
|
||||
if present then
|
||||
-- first load the base16 theme
|
||||
base16(base16.themes(theme), true)
|
||||
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
|
||||
end
|
||||
|
||||
-- returns a table of colors for given or current theme
|
||||
M.get = function(theme)
|
||||
local colors = require("core.utils").load_config().ui.colors
|
||||
|
||||
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
|
||||
|
|
|
@ -46,6 +46,7 @@ M.options = {
|
|||
|
||||
M.ui = {
|
||||
hl_override = "", -- path of your file that contains highlights
|
||||
colors = "", -- path of your file that contains colors
|
||||
italic_comments = false,
|
||||
theme = "onedark", -- default theme
|
||||
|
||||
|
|
Loading…
Reference in a new issue