mirror of
https://github.com/gabehf/base46.git
synced 2026-03-13 01:10:31 -07:00
fix https://github.com/NvChad/NvChad/issues/1027 | add theme toggle function
This commit is contained in:
parent
fb9d86d9cd
commit
1f1ca85c29
36 changed files with 145 additions and 36 deletions
87
lua/base46.lua
Normal file
87
lua/base46.lua
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
M.get_colors = function(type)
|
||||||
|
local name
|
||||||
|
|
||||||
|
if vim.g.nvchad_theme then
|
||||||
|
name = vim.g.nvchad_theme
|
||||||
|
else
|
||||||
|
name = require("core.utils").load_config().ui.theme
|
||||||
|
vim.g.nvchad_theme = name
|
||||||
|
end
|
||||||
|
|
||||||
|
-- theme paths
|
||||||
|
local default_path = "hl_themes." .. name
|
||||||
|
local user_path = "custom.themes." .. name
|
||||||
|
|
||||||
|
local present1, default_theme = pcall(require, default_path)
|
||||||
|
local present2, user_theme = pcall(require, user_path)
|
||||||
|
|
||||||
|
if present1 then
|
||||||
|
return default_theme[type]
|
||||||
|
elseif present2 then
|
||||||
|
return user_theme[type]
|
||||||
|
else
|
||||||
|
error "No such theme bruh >_< "
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
M.merge_tb = function(table1, table2)
|
||||||
|
return vim.tbl_deep_extend("force", table1, table2)
|
||||||
|
end
|
||||||
|
|
||||||
|
M.load_theme = function()
|
||||||
|
-- clear highlights of bufferline (cuz of dynamic devicons hl group on the buffer)
|
||||||
|
local highlights_raw = vim.split(vim.api.nvim_exec("filter BufferLine hi", true), "\n")
|
||||||
|
local highlight_groups = {}
|
||||||
|
|
||||||
|
for _, raw_hi in ipairs(highlights_raw) do
|
||||||
|
table.insert(highlight_groups, string.match(raw_hi, "BufferLine%a+"))
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, highlight in ipairs(highlight_groups) do
|
||||||
|
vim.cmd([[hi clear ]] .. highlight)
|
||||||
|
end
|
||||||
|
-- above highlights clear code by https://github.com/max397574
|
||||||
|
|
||||||
|
-- reload highlights for theme switcher
|
||||||
|
require("plenary.reload").reload_module "integrations"
|
||||||
|
require("plenary.reload").reload_module "chadlights"
|
||||||
|
|
||||||
|
require "chadlights"
|
||||||
|
end
|
||||||
|
|
||||||
|
M.override_theme = function(default_theme, theme_name)
|
||||||
|
local changed_themes = require("core.utils").load_config().ui.changed_themes
|
||||||
|
|
||||||
|
if changed_themes[theme_name] then
|
||||||
|
return M.merge_tb(default_theme, changed_themes[theme_name])
|
||||||
|
else
|
||||||
|
return default_theme
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
M.toggle_theme = function()
|
||||||
|
local themes = require("core.utils").load_config().ui.theme_toggle
|
||||||
|
|
||||||
|
local theme1 = themes[1]
|
||||||
|
local theme2 = themes[2]
|
||||||
|
|
||||||
|
if vim.g.nvchad_theme == theme1 then
|
||||||
|
vim.g.toggle_theme_icon = " "
|
||||||
|
vim.g.nvchad_theme = theme2
|
||||||
|
|
||||||
|
require("nvchad").reload_theme()
|
||||||
|
require("nvchad").change_theme(theme1, theme2)
|
||||||
|
elseif vim.g.nvchad_theme == theme2 then
|
||||||
|
vim.g.toggle_theme_icon = " "
|
||||||
|
vim.g.nvchad_theme = theme1
|
||||||
|
|
||||||
|
require("nvchad").reload_theme()
|
||||||
|
require("nvchad").change_theme(theme2, theme1)
|
||||||
|
else
|
||||||
|
vim.notify "Set your current theme to one of those mentioned in the theme_toggle table (chadrc)"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
-- returns a huge table of all highlight groups & their colors
|
-- returns a huge table of all highlight groups & their colors
|
||||||
|
|
||||||
local merge_tb = require("base16").merge_tb
|
local merge_tb = require("base46").merge_tb
|
||||||
|
|
||||||
local highlights = {}
|
local highlights = {}
|
||||||
local hl_dir = vim.fn.stdpath "data" .. "/site/pack/packer/opt/base46/lua/integrations"
|
local hl_dir = vim.fn.stdpath "data" .. "/site/pack/packer/opt/base46/lua/integrations"
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#eAc1c1",
|
base0F = "#eAc1c1",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "aquarium")
|
M = require("base46").override_theme(M, "aquarium")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#887c76",
|
base0F = "#887c76",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "blossom")
|
M = require("base46").override_theme(M, "blossom")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#E8A2AF",
|
base0F = "#E8A2AF",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "catppuccin")
|
M = require("base46").override_theme(M, "catppuccin")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#f7f7fb",
|
base0F = "#f7f7fb",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "chadracula")
|
M = require("base46").override_theme(M, "chadracula")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#8b6567",
|
base0F = "#8b6567",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "chadtain")
|
M = require("base46").override_theme(M, "chadtain")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#c85a50",
|
base0F = "#c85a50",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "doomchad")
|
M = require("base46").override_theme(M, "doomchad")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#d699b6",
|
base0F = "#d699b6",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "everforest")
|
M = require("base46").override_theme(M, "everforest")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#d65d0e",
|
base0F = "#d65d0e",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "gruvbox")
|
M = require("base46").override_theme(M, "gruvbox")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base06 = "#c3b499",
|
base06 = "#c3b499",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "gruvchad")
|
M = require("base46").override_theme(M, "gruvchad")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base06 = "#d3d9e4",
|
base06 = "#d3d9e4",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "javacafe")
|
M = require("base46").override_theme(M, "javacafe")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#cf6a4c",
|
base0F = "#cf6a4c",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "jellybeans")
|
M = require("base46").override_theme(M, "jellybeans")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#d27e99",
|
base0F = "#d27e99",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "kanagawa")
|
M = require("base46").override_theme(M, "kanagawa")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#bbc2cf",
|
base0F = "#bbc2cf",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "monekai")
|
M = require("base46").override_theme(M, "monekai")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#9d9a7b",
|
base0F = "#9d9a7b",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "mountain")
|
M = require("base46").override_theme(M, "mountain")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#d0d0c7",
|
base0F = "#d0d0c7",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "nightlamp")
|
M = require("base46").override_theme(M, "nightlamp")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#d6deeb", -- Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?>
|
base0F = "#d6deeb", -- Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?>
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "nightowl")
|
M = require("base46").override_theme(M, "nightowl")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#B48EAD",
|
base0F = "#B48EAD",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "nord")
|
M = require("base46").override_theme(M, "nord")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#986801",
|
base0F = "#986801",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "one_light")
|
M = require("base46").override_theme(M, "one_light")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#be5046",
|
base0F = "#be5046",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "onedark")
|
M = require("base46").override_theme(M, "onedark")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base06 = "#c7cdd8",
|
base06 = "#c7cdd8",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "onenord")
|
M = require("base46").override_theme(M, "onenord")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#ff5370",
|
base0F = "#ff5370",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "palenight")
|
M = require("base46").override_theme(M, "palenight")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#d33682",
|
base0F = "#d33682",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "solarized")
|
M = require("base46").override_theme(M, "solarized")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#f3627a",
|
base0F = "#f3627a",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "tokyodark")
|
M = require("base46").override_theme(M, "tokyodark")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base06 = "#e0e0e0",
|
base06 = "#e0e0e0",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "tomorrow_night")
|
M = require("base46").override_theme(M, "tomorrow_night")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,6 @@ M.base_16 = {
|
||||||
base0F = "#dc8c64",
|
base0F = "#dc8c64",
|
||||||
}
|
}
|
||||||
|
|
||||||
M = require("base16").override_theme(M, "wombat")
|
M = require("base46").override_theme(M, "wombat")
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local colors = require("base16").get_colors "base_30"
|
local colors = require("base46").get_colors "base_30"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
|
|
@ -100,4 +100,26 @@ return {
|
||||||
BufferLineDevIconDefaultSelected = {
|
BufferLineDevIconDefaultSelected = {
|
||||||
bg = "NONE",
|
bg = "NONE",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
BufferLineDuplicate = {
|
||||||
|
fg = "NONE",
|
||||||
|
bg = colors.black2,
|
||||||
|
},
|
||||||
|
BufferLineDuplicateSelected = {
|
||||||
|
fg = colors.red,
|
||||||
|
bg = colors.black,
|
||||||
|
},
|
||||||
|
BufferLineDuplicateVisible = {
|
||||||
|
fg = colors.blue,
|
||||||
|
bg = colors.black2,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- custom area
|
||||||
|
BufferLineRightCustomAreaText1 = {
|
||||||
|
bg = colors.grey,
|
||||||
|
fg = colors.white,
|
||||||
|
},
|
||||||
|
BufferLineRightCustomAreaText2 = {
|
||||||
|
fg = colors.red,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
local theme = require("base16").get_colors "base_16"
|
local theme = require("base46").get_colors "base_16"
|
||||||
local base_30 = require("base16").get_colors "base_30"
|
local base_30 = require("base46").get_colors "base_30"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
CmpItemKindConstant = { fg = theme.base09 },
|
CmpItemKindConstant = { fg = theme.base09 },
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local colors = require("base16").get_colors "base_30"
|
local colors = require("base46").get_colors "base_30"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
DevIconc = { bg = "NONE", fg = colors.blue },
|
DevIconc = { bg = "NONE", fg = colors.blue },
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local theme = require("base16").get_colors "base_16"
|
local theme = require("base46").get_colors "base_16"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local theme = require("base16").get_colors "base_16"
|
local theme = require("base46").get_colors "base_16"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
mailQuoted1 = {
|
mailQuoted1 = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local theme = require("base16").get_colors "base_16"
|
local theme = require("base46").get_colors "base_16"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
Normal = {
|
Normal = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local colors = require("base16").get_colors "base_30"
|
local colors = require("base46").get_colors "base_30"
|
||||||
local ui = require("core.utils").load_config().ui
|
local ui = require("core.utils").load_config().ui
|
||||||
|
|
||||||
local black = colors.black
|
local black = colors.black
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local theme = require("base16").get_colors "base_16"
|
local theme = require("base46").get_colors "base_16"
|
||||||
|
|
||||||
-- Standard syntax highlighting
|
-- Standard syntax highlighting
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
local theme = require("base16").get_colors "base_16"
|
local theme = require("base46").get_colors "base_16"
|
||||||
|
|
||||||
return {
|
return {
|
||||||
TSAnnotation = {
|
TSAnnotation = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue