epsilon.nvim/lua/epsilon/theme.lua
2024-01-08 14:11:04 +01:00

840 lines
42 KiB
Lua

local colors = require("epsilon.colors")
local config = require("epsilon.config")
if config.terminal_colors then
local term_colors = {
colors.bg0,
colors.neutral_red,
colors.neutral_green,
colors.neutral_yellow,
colors.neutral_blue,
colors.neutral_purple,
colors.neutral_aqua,
colors.fg4,
colors.gray,
colors.red,
colors.green,
colors.yellow,
colors.blue,
colors.purple,
colors.aqua,
colors.fg1,
}
for index, value in ipairs(term_colors) do
vim.g["terminal_color_" .. index - 1] = value
end
end
local groups = {
EpsilonThemeFg0 = { fg = colors.fg0 },
EpsilonThemeFg1 = { fg = colors.fg1 },
EpsilonThemeFg2 = { fg = colors.fg2 },
EpsilonThemeFg3 = { fg = colors.fg3 },
EpsilonThemeFg4 = { fg = colors.fg4 },
EpsilonThemeGray = { fg = colors.gray },
EpsilonThemeBg0 = { fg = colors.bg0 },
EpsilonThemeBg1 = { fg = colors.bg1 },
EpsilonThemeBg2 = { fg = colors.bg2 },
EpsilonThemeBg3 = { fg = colors.bg3 },
EpsilonThemeBg4 = { fg = colors.bg4 },
EpsilonThemeRed = { fg = colors.red },
EpsilonThemeRedBold = { fg = colors.red, bold = config.bold },
EpsilonThemeGreen = { fg = colors.green },
EpsilonThemeGreenBold = { fg = colors.green, bold = config.bold },
EpsilonThemeYellow = { fg = colors.yellow },
EpsilonThemeYellowBold = { fg = colors.yellow, bold = config.bold },
EpsilonThemeBlue = { fg = colors.blue },
EpsilonThemeBlueBold = { fg = colors.blue, bold = config.bold },
EpsilonThemePurple = { fg = colors.purple },
EpsilonThemePurpleBold = { fg = colors.purple, bold = config.bold },
EpsilonThemeAqua = { fg = colors.aqua },
EpsilonThemeAquaBold = { fg = colors.aqua, bold = config.bold },
EpsilonThemeOrange = { fg = colors.orange },
EpsilonThemeOrangeBold = { fg = colors.orange, bold = config.bold },
EpsilonThemeRedSign = config.transparent_mode and { fg = colors.red, reverse = config.invert_signs }
or { fg = colors.red, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemeGreenSign = config.transparent_mode and { fg = colors.green, reverse = config.invert_signs }
or { fg = colors.green, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemeYellowSign = config.transparent_mode and { fg = colors.yellow, reverse = config.invert_signs }
or { fg = colors.yellow, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemeBlueSign = config.transparent_mode and { fg = colors.blue, reverse = config.invert_signs }
or { fg = colors.blue, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemePurpleSign = config.transparent_mode and { fg = colors.purple, reverse = config.invert_signs }
or { fg = colors.purple, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemeAquaSign = config.transparent_mode and { fg = colors.aqua, reverse = config.invert_signs }
or { fg = colors.aqua, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemeOrangeSign = config.transparent_mode and { fg = colors.orange, reverse = config.invert_signs }
or { fg = colors.orange, bg = colors.bg1, reverse = config.invert_signs },
EpsilonThemeRedUnderline = { undercurl = config.undercurl, sp = colors.red },
EpsilonThemeGreenUnderline = { undercurl = config.undercurl, sp = colors.green },
EpsilonThemeYellowUnderline = { undercurl = config.undercurl, sp = colors.yellow },
EpsilonThemeBlueUnderline = { undercurl = config.undercurl, sp = colors.blue },
EpsilonThemePurpleUnderline = { undercurl = config.undercurl, sp = colors.purple },
EpsilonThemeAquaUnderline = { undercurl = config.undercurl, sp = colors.aqua },
EpsilonThemeOrangeUnderline = { undercurl = config.undercurl, sp = colors.orange },
Normal = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg0 },
NormalFloat = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg1 },
NormalNC = config.dim_inactive and { fg = colors.fg0, bg = colors.bg1 } or { link = "Normal" },
CursorLine = { bg = colors.bg1 },
CursorColumn = { link = "CursorLine" },
TabLineFill = { fg = colors.bg4, bg = colors.bg1, reverse = config.invert_tabline },
TabLineSel = { fg = colors.green, bg = colors.bg1, reverse = config.invert_tabline },
TabLine = { link = "TabLineFill" },
MatchParen = { bg = colors.bg3, bold = config.bold },
ColorColumn = { bg = colors.bg1 },
Conceal = { fg = colors.blue },
CursorLineNr = { fg = colors.yellow, bg = colors.bg1 },
NonText = { link = "EpsilonThemeBg2" },
SpecialKey = { link = "EpsilonThemeFg4" },
Visual = { bg = colors.bg3, reverse = config.invert_selection },
VisualNOS = { link = "Visual" },
Search = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse },
IncSearch = { fg = colors.orange, bg = colors.bg0, reverse = config.inverse },
CurSearch = { link = "IncSearch" },
QuickFixLine = { fg = colors.bg0, bg = colors.yellow, bold = config.bold },
Underlined = { fg = colors.blue, underline = config.underline },
StatusLine = { fg = colors.bg2, bg = colors.fg1, reverse = config.inverse },
StatusLineNC = { fg = colors.bg1, bg = colors.fg4, reverse = config.inverse },
WinBar = { fg = colors.fg4, bg = colors.bg0 },
WinBarNC = { fg = colors.fg3, bg = colors.bg1 },
WinSeparator = config.transparent_mode and { fg = colors.bg3, bg = nil } or { fg = colors.bg3, bg = colors.bg0 },
WildMenu = { fg = colors.blue, bg = colors.bg2, bold = config.bold },
Directory = { link = "EpsilonThemeBlueBold" },
Title = { link = "EpsilonThemeGreenBold" },
ErrorMsg = { fg = colors.bg0, bg = colors.red, bold = config.bold },
MoreMsg = { link = "EpsilonThemeYellowBold" },
ModeMsg = { link = "EpsilonThemeYellowBold" },
Question = { link = "EpsilonThemeOrangeBold" },
WarningMsg = { link = "EpsilonThemeRedBold" },
LineNr = { fg = colors.bg4 },
SignColumn = config.transparent_mode and { bg = nil } or { bg = colors.bg1 },
Folded = { fg = colors.gray, bg = colors.bg1, italic = config.italic.folds },
FoldColumn = config.transparent_mode and { fg = colors.gray, bg = nil } or { fg = colors.gray, bg = colors.bg1 },
Cursor = { reverse = config.inverse },
vCursor = { link = "Cursor" },
iCursor = { link = "Cursor" },
lCursor = { link = "Cursor" },
Special = { link = "EpsilonThemeOrange" },
Comment = { fg = colors.gray, italic = config.italic.comments },
Todo = { fg = colors.bg0, bg = colors.yellow, bold = config.bold, italic = config.italic.comments },
Done = { fg = colors.orange, bold = config.bold, italic = config.italic.comments },
Error = { fg = colors.red, bold = config.bold, reverse = config.inverse },
Statement = { link = "EpsilonThemeRed" },
Conditional = { link = "EpsilonThemeRed" },
Repeat = { link = "EpsilonThemeRed" },
Label = { link = "EpsilonThemeRed" },
Exception = { link = "EpsilonThemeRed" },
Operator = { fg = colors.orange, italic = config.italic.operators },
Keyword = { link = "EpsilonThemeRed" },
Identifier = { link = "EpsilonThemeBlue" },
Function = { link = "EpsilonThemeGreenBold" },
PreProc = { link = "EpsilonThemeAqua" },
Include = { link = "EpsilonThemeAqua" },
Define = { link = "EpsilonThemeAqua" },
Macro = { link = "EpsilonThemeAqua" },
PreCondit = { link = "EpsilonThemeAqua" },
Constant = { link = "EpsilonThemePurple" },
Character = { link = "EpsilonThemePurple" },
String = { fg = colors.green, italic = config.italic.strings },
Boolean = { link = "EpsilonThemePurple" },
Number = { link = "EpsilonThemePurple" },
Float = { link = "EpsilonThemePurple" },
Type = { link = "EpsilonThemeYellow" },
StorageClass = { link = "EpsilonThemeOrange" },
Structure = { link = "EpsilonThemeAqua" },
Typedef = { link = "EpsilonThemeYellow" },
Pmenu = { fg = colors.fg1, bg = colors.bg2 },
PmenuSel = { fg = colors.bg2, bg = colors.blue, bold = config.bold },
PmenuSbar = { bg = colors.bg2 },
PmenuThumb = { bg = colors.bg4 },
DiffDelete = { bg = colors.dark_red },
DiffAdd = { bg = colors.dark_green },
DiffChange = { bg = colors.dark_aqua },
DiffText = { bg = colors.yellow, fg = colors.bg0 },
SpellCap = { link = "EpsilonThemeBlueUnderline" },
SpellBad = { link = "EpsilonThemeRedUnderline" },
SpellLocal = { link = "EpsilonThemeAquaUnderline" },
SpellRare = { link = "EpsilonThemePurpleUnderline" },
Whitespace = { fg = colors.bg2 },
DiagnosticError = { link = "EpsilonThemeRed" },
DiagnosticSignError = { link = "EpsilonThemeRedSign" },
DiagnosticUnderlineError = { link = "EpsilonThemeRedUnderline" },
DiagnosticWarn = { link = "EpsilonThemeYellow" },
DiagnosticSignWarn = { link = "EpsilonThemeYellowSign" },
DiagnosticUnderlineWarn = { link = "EpsilonThemeYellowUnderline" },
DiagnosticInfo = { link = "EpsilonThemeBlue" },
DiagnosticSignInfo = { link = "EpsilonThemeBlueSign" },
DiagnosticUnderlineInfo = { link = "EpsilonThemeBlueUnderline" },
DiagnosticHint = { link = "EpsilonThemeAqua" },
DiagnosticSignHint = { link = "EpsilonThemeAquaSign" },
DiagnosticUnderlineHint = { link = "EpsilonThemeAquaUnderline" },
DiagnosticFloatingError = { link = "EpsilonThemeRed" },
DiagnosticFloatingWarn = { link = "EpsilonThemeOrange" },
DiagnosticFloatingInfo = { link = "EpsilonThemeBlue" },
DiagnosticFloatingHint = { link = "EpsilonThemeAqua" },
DiagnosticVirtualTextError = { link = "EpsilonThemeRed" },
DiagnosticVirtualTextWarn = { link = "EpsilonThemeYellow" },
DiagnosticVirtualTextInfo = { link = "EpsilonThemeBlue" },
DiagnosticVirtualTextHint = { link = "EpsilonThemeAqua" },
DiagnosticOk = { link = "EpsilonThemeGreenSign" },
LspReferenceRead = { link = "EpsilonThemeYellowBold" },
LspReferenceText = { link = "EpsilonThemeYellowBold" },
LspReferenceWrite = { link = "EpsilonThemeOrangeBold" },
LspCodeLens = { link = "EpsilonThemeGray" },
LspSignatureActiveParameter = { link = "Search" },
gitcommitSelectedFile = { link = "EpsilonThemeGreen" },
gitcommitDiscardedFile = { link = "EpsilonThemeRed" },
GitSignsAdd = { link = "EpsilonThemeGreen" },
GitSignsChange = { link = "EpsilonThemeAqua" },
GitSignsDelete = { link = "EpsilonThemeRed" },
NvimTreeSymlink = { fg = colors.neutral_aqua },
NvimTreeRootFolder = { fg = colors.neutral_purple, bold = true },
NvimTreeFolderIcon = { fg = colors.neutral_blue, bold = true },
NvimTreeFileIcon = { fg = colors.light2 },
NvimTreeExecFile = { fg = colors.neutral_green, bold = true },
NvimTreeOpenedFile = { fg = colors.bright_red, bold = true },
NvimTreeSpecialFile = { fg = colors.neutral_yellow, bold = true, underline = true },
NvimTreeImageFile = { fg = colors.neutral_purple },
NvimTreeIndentMarker = { fg = colors.dark3 },
NvimTreeGitDirty = { fg = colors.neutral_yellow },
NvimTreeGitStaged = { fg = colors.neutral_yellow },
NvimTreeGitMerge = { fg = colors.neutral_purple },
NvimTreeGitRenamed = { fg = colors.neutral_purple },
NvimTreeGitNew = { fg = colors.neutral_yellow },
NvimTreeGitDeleted = { fg = colors.neutral_red },
NvimTreeWindowPicker = { bg = colors.aqua },
debugPC = { bg = colors.blue },
debugBreakpoint = { link = "EpsilonThemeRedSign" },
StartifyBracket = { link = "EpsilonThemeFg3" },
StartifyFile = { link = "EpsilonThemeFg1" },
StartifyNumber = { link = "EpsilonThemeBlue" },
StartifyPath = { link = "EpsilonThemeGray" },
StartifySlash = { link = "EpsilonThemeGray" },
StartifySection = { link = "EpsilonThemeYellow" },
StartifySpecial = { link = "EpsilonThemeBg2" },
StartifyHeader = { link = "EpsilonThemeOrange" },
StartifyFooter = { link = "EpsilonThemeBg2" },
StartifyVar = { link = "StartifyPath" },
StartifySelect = { link = "Title" },
DirvishPathTail = { link = "EpsilonThemeAqua" },
DirvishArg = { link = "EpsilonThemeYellow" },
netrwDir = { link = "EpsilonThemeAqua" },
netrwClassify = { link = "EpsilonThemeAqua" },
netrwLink = { link = "EpsilonThemeGray" },
netrwSymLink = { link = "EpsilonThemeFg1" },
netrwExe = { link = "EpsilonThemeYellow" },
netrwComment = { link = "EpsilonThemeGray" },
netrwList = { link = "EpsilonThemeBlue" },
netrwHelpCmd = { link = "EpsilonThemeAqua" },
netrwCmdSep = { link = "EpsilonThemeFg3" },
netrwVersion = { link = "EpsilonThemeGreen" },
NERDTreeDir = { link = "EpsilonThemeAqua" },
NERDTreeDirSlash = { link = "EpsilonThemeAqua" },
NERDTreeOpenable = { link = "EpsilonThemeOrange" },
NERDTreeClosable = { link = "EpsilonThemeOrange" },
NERDTreeFile = { link = "EpsilonThemeFg1" },
NERDTreeExecFile = { link = "EpsilonThemeYellow" },
NERDTreeUp = { link = "EpsilonThemeGray" },
NERDTreeCWD = { link = "EpsilonThemeGreen" },
NERDTreeHelp = { link = "EpsilonThemeFg1" },
NERDTreeToggleOn = { link = "EpsilonThemeGreen" },
NERDTreeToggleOff = { link = "EpsilonThemeRed" },
CocErrorSign = { link = "EpsilonThemeRedSign" },
CocWarningSign = { link = "EpsilonThemeOrangeSign" },
CocInfoSign = { link = "EpsilonThemeBlueSign" },
CocHintSign = { link = "EpsilonThemeAquaSign" },
CocErrorFloat = { link = "EpsilonThemeRed" },
CocWarningFloat = { link = "EpsilonThemeOrange" },
CocInfoFloat = { link = "EpsilonThemeBlue" },
CocHintFloat = { link = "EpsilonThemeAqua" },
CocDiagnosticsError = { link = "EpsilonThemeRed" },
CocDiagnosticsWarning = { link = "EpsilonThemeOrange" },
CocDiagnosticsInfo = { link = "EpsilonThemeBlue" },
CocDiagnosticsHint = { link = "EpsilonThemeAqua" },
CocSelectedText = { link = "EpsilonThemeRed" },
CocMenuSel = { link = "PmenuSel" },
CocCodeLens = { link = "EpsilonThemeGray" },
CocErrorHighlight = { link = "EpsilonThemeRedUnderline" },
CocWarningHighlight = { link = "EpsilonThemeOrangeUnderline" },
CocInfoHighlight = { link = "EpsilonThemeBlueUnderline" },
CocHintHighlight = { link = "EpsilonThemeAquaUnderline" },
TelescopeNormal = { link = "EpsilonThemeFg1" },
TelescopeSelection = { link = "EpsilonThemeOrangeBold" },
TelescopeSelectionCaret = { link = "EpsilonThemeRed" },
TelescopeMultiSelection = { link = "EpsilonThemeGray" },
TelescopeBorder = { link = "TelescopeNormal" },
TelescopePromptBorder = { link = "TelescopeNormal" },
TelescopeResultsBorder = { link = "TelescopeNormal" },
TelescopePreviewBorder = { link = "TelescopeNormal" },
TelescopeMatching = { link = "EpsilonThemeBlue" },
TelescopePromptPrefix = { link = "EpsilonThemeRed" },
TelescopePrompt = { link = "TelescopeNormal" },
CmpItemAbbr = { link = "EpsilonThemeFg0" },
CmpItemAbbrDeprecated = { link = "EpsilonThemeFg1" },
CmpItemAbbrMatch = { link = "EpsilonThemeBlueBold" },
CmpItemAbbrMatchFuzzy = { link = "EpsilonThemeBlueUnderline" },
CmpItemMenu = { link = "EpsilonThemeGray" },
CmpItemKindText = { link = "EpsilonThemeOrange" },
CmpItemKindVariable = { link = "EpsilonThemeOrange" },
CmpItemKindMethod = { link = "EpsilonThemeBlue" },
CmpItemKindFunction = { link = "EpsilonThemeBlue" },
CmpItemKindConstructor = { link = "EpsilonThemeYellow" },
CmpItemKindUnit = { link = "EpsilonThemeBlue" },
CmpItemKindField = { link = "EpsilonThemeBlue" },
CmpItemKindClass = { link = "EpsilonThemeYellow" },
CmpItemKindInterface = { link = "EpsilonThemeYellow" },
CmpItemKindModule = { link = "EpsilonThemeBlue" },
CmpItemKindProperty = { link = "EpsilonThemeBlue" },
CmpItemKindValue = { link = "EpsilonThemeOrange" },
CmpItemKindEnum = { link = "EpsilonThemeYellow" },
CmpItemKindOperator = { link = "EpsilonThemeYellow" },
CmpItemKindKeyword = { link = "EpsilonThemePurple" },
CmpItemKindEvent = { link = "EpsilonThemePurple" },
CmpItemKindReference = { link = "EpsilonThemePurple" },
CmpItemKindColor = { link = "EpsilonThemePurple" },
CmpItemKindSnippet = { link = "EpsilonThemeGreen" },
CmpItemKindFile = { link = "EpsilonThemeBlue" },
CmpItemKindFolder = { link = "EpsilonThemeBlue" },
CmpItemKindEnumMember = { link = "EpsilonThemeAqua" },
CmpItemKindConstant = { link = "EpsilonThemeOrange" },
CmpItemKindStruct = { link = "EpsilonThemeYellow" },
CmpItemKindTypeParameter = { link = "EpsilonThemeYellow" },
diffAdded = { link = "DiffAdd" },
diffRemoved = { link = "DiffDelete" },
diffChanged = { link = "DiffChange" },
diffFile = { link = "EpsilonThemeOrange" },
diffNewFile = { link = "EpsilonThemeYellow" },
diffOldFile = { link = "EpsilonThemeOrange" },
diffLine = { link = "EpsilonThemeBlue" },
diffIndexLine = { link = "diffChanged" },
NavicIconsFile = { link = "EpsilonThemeBlue" },
NavicIconsModule = { link = "EpsilonThemeOrange" },
NavicIconsNamespace = { link = "EpsilonThemeBlue" },
NavicIconsPackage = { link = "EpsilonThemeAqua" },
NavicIconsClass = { link = "EpsilonThemeYellow" },
NavicIconsMethod = { link = "EpsilonThemeBlue" },
NavicIconsProperty = { link = "EpsilonThemeAqua" },
NavicIconsField = { link = "EpsilonThemePurple" },
NavicIconsConstructor = { link = "EpsilonThemeBlue" },
NavicIconsEnum = { link = "EpsilonThemePurple" },
NavicIconsInterface = { link = "EpsilonThemeGreen" },
NavicIconsFunction = { link = "EpsilonThemeBlue" },
NavicIconsVariable = { link = "EpsilonThemePurple" },
NavicIconsConstant = { link = "EpsilonThemeOrange" },
NavicIconsString = { link = "EpsilonThemeGreen" },
NavicIconsNumber = { link = "EpsilonThemeOrange" },
NavicIconsBoolean = { link = "EpsilonThemeOrange" },
NavicIconsArray = { link = "EpsilonThemeOrange" },
NavicIconsObject = { link = "EpsilonThemeOrange" },
NavicIconsKey = { link = "EpsilonThemeAqua" },
NavicIconsNull = { link = "EpsilonThemeOrange" },
NavicIconsEnumMember = { link = "EpsilonThemeYellow" },
NavicIconsStruct = { link = "EpsilonThemePurple" },
NavicIconsEvent = { link = "EpsilonThemeYellow" },
NavicIconsOperator = { link = "EpsilonThemeRed" },
NavicIconsTypeParameter = { link = "EpsilonThemeRed" },
NavicText = { link = "EpsilonThemeWhite" },
NavicSeparator = { link = "EpsilonThemeWhite" },
htmlTag = { link = "EpsilonThemeAquaBold" },
htmlEndTag = { link = "EpsilonThemeAquaBold" },
htmlTagName = { link = "EpsilonThemeBlue" },
htmlArg = { link = "EpsilonThemeOrange" },
htmlTagN = { link = "EpsilonThemeFg1" },
htmlSpecialTagName = { link = "EpsilonThemeBlue" },
htmlLink = { fg = colors.fg4, underline = config.underline },
htmlSpecialChar = { link = "EpsilonThemeRed" },
htmlBold = { fg = colors.fg0, bg = colors.bg0, bold = config.bold },
htmlBoldUnderline = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, underline = config.underline },
htmlBoldItalic = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, italic = true },
htmlBoldUnderlineItalic = {
fg = colors.fg0,
bg = colors.bg0,
bold = config.bold,
italic = true,
underline = config.underline,
},
htmlUnderline = { fg = colors.fg0, bg = colors.bg0, underline = config.underline },
htmlUnderlineItalic = {
fg = colors.fg0,
bg = colors.bg0,
italic = true,
underline = config.underline,
},
htmlItalic = { fg = colors.fg0, bg = colors.bg0, italic = true },
xmlTag = { link = "EpsilonThemeAquaBold" },
xmlEndTag = { link = "EpsilonThemeAquaBold" },
xmlTagName = { link = "EpsilonThemeBlue" },
xmlEqual = { link = "EpsilonThemeBlue" },
docbkKeyword = { link = "EpsilonThemeAquaBold" },
xmlDocTypeDecl = { link = "EpsilonThemeGray" },
xmlDocTypeKeyword = { link = "EpsilonThemePurple" },
xmlCdataStart = { link = "EpsilonThemeGray" },
xmlCdataCdata = { link = "EpsilonThemePurple" },
dtdFunction = { link = "EpsilonThemeGray" },
dtdTagName = { link = "EpsilonThemePurple" },
xmlAttrib = { link = "EpsilonThemeOrange" },
xmlProcessingDelim = { link = "EpsilonThemeGray" },
dtdParamEntityPunct = { link = "EpsilonThemeGray" },
dtdParamEntityDPunct = { link = "EpsilonThemeGray" },
xmlAttribPunct = { link = "EpsilonThemeGray" },
xmlEntity = { link = "EpsilonThemeRed" },
xmlEntityPunct = { link = "EpsilonThemeRed" },
clojureKeyword = { link = "EpsilonThemeBlue" },
clojureCond = { link = "EpsilonThemeOrange" },
clojureSpecial = { link = "EpsilonThemeOrange" },
clojureDefine = { link = "EpsilonThemeOrange" },
clojureFunc = { link = "EpsilonThemeYellow" },
clojureRepeat = { link = "EpsilonThemeYellow" },
clojureCharacter = { link = "EpsilonThemeAqua" },
clojureStringEscape = { link = "EpsilonThemeAqua" },
clojureException = { link = "EpsilonThemeRed" },
clojureRegexp = { link = "EpsilonThemeAqua" },
clojureRegexpEscape = { link = "EpsilonThemeAqua" },
clojureRegexpCharClass = { fg = colors.fg3, bold = config.bold },
clojureRegexpMod = { link = "clojureRegexpCharClass" },
clojureRegexpQuantifier = { link = "clojureRegexpCharClass" },
clojureParen = { link = "EpsilonThemeFg3" },
clojureAnonArg = { link = "EpsilonThemeYellow" },
clojureVariable = { link = "EpsilonThemeBlue" },
clojureMacro = { link = "EpsilonThemeOrange" },
clojureMeta = { link = "EpsilonThemeYellow" },
clojureDeref = { link = "EpsilonThemeYellow" },
clojureQuote = { link = "EpsilonThemeYellow" },
clojureUnquote = { link = "EpsilonThemeYellow" },
cOperator = { link = "EpsilonThemePurple" },
cppOperator = { link = "EpsilonThemePurple" },
cStructure = { link = "EpsilonThemeOrange" },
pythonBuiltin = { link = "EpsilonThemeOrange" },
pythonBuiltinObj = { link = "EpsilonThemeOrange" },
pythonBuiltinFunc = { link = "EpsilonThemeOrange" },
pythonFunction = { link = "EpsilonThemeAqua" },
pythonDecorator = { link = "EpsilonThemeRed" },
pythonInclude = { link = "EpsilonThemeBlue" },
pythonImport = { link = "EpsilonThemeBlue" },
pythonRun = { link = "EpsilonThemeBlue" },
pythonCoding = { link = "EpsilonThemeBlue" },
pythonOperator = { link = "EpsilonThemeRed" },
pythonException = { link = "EpsilonThemeRed" },
pythonExceptions = { link = "EpsilonThemePurple" },
pythonBoolean = { link = "EpsilonThemePurple" },
pythonDot = { link = "EpsilonThemeFg3" },
pythonConditional = { link = "EpsilonThemeRed" },
pythonRepeat = { link = "EpsilonThemeRed" },
pythonDottedName = { link = "EpsilonThemeGreenBold" },
cssBraces = { link = "EpsilonThemeBlue" },
cssFunctionName = { link = "EpsilonThemeYellow" },
cssIdentifier = { link = "EpsilonThemeOrange" },
cssClassName = { link = "EpsilonThemeGreen" },
cssColor = { link = "EpsilonThemeBlue" },
cssSelectorOp = { link = "EpsilonThemeBlue" },
cssSelectorOp2 = { link = "EpsilonThemeBlue" },
cssImportant = { link = "EpsilonThemeGreen" },
cssVendor = { link = "EpsilonThemeFg1" },
cssTextProp = { link = "EpsilonThemeAqua" },
cssAnimationProp = { link = "EpsilonThemeAqua" },
cssUIProp = { link = "EpsilonThemeYellow" },
cssTransformProp = { link = "EpsilonThemeAqua" },
cssTransitionProp = { link = "EpsilonThemeAqua" },
cssPrintProp = { link = "EpsilonThemeAqua" },
cssPositioningProp = { link = "EpsilonThemeYellow" },
cssBoxProp = { link = "EpsilonThemeAqua" },
cssFontDescriptorProp = { link = "EpsilonThemeAqua" },
cssFlexibleBoxProp = { link = "EpsilonThemeAqua" },
cssBorderOutlineProp = { link = "EpsilonThemeAqua" },
cssBackgroundProp = { link = "EpsilonThemeAqua" },
cssMarginProp = { link = "EpsilonThemeAqua" },
cssListProp = { link = "EpsilonThemeAqua" },
cssTableProp = { link = "EpsilonThemeAqua" },
cssFontProp = { link = "EpsilonThemeAqua" },
cssPaddingProp = { link = "EpsilonThemeAqua" },
cssDimensionProp = { link = "EpsilonThemeAqua" },
cssRenderProp = { link = "EpsilonThemeAqua" },
cssColorProp = { link = "EpsilonThemeAqua" },
cssGeneratedContentProp = { link = "EpsilonThemeAqua" },
javaScriptBraces = { link = "EpsilonThemeFg1" },
javaScriptFunction = { link = "EpsilonThemeAqua" },
javaScriptIdentifier = { link = "EpsilonThemeRed" },
javaScriptMember = { link = "EpsilonThemeBlue" },
javaScriptNumber = { link = "EpsilonThemePurple" },
javaScriptNull = { link = "EpsilonThemePurple" },
javaScriptParens = { link = "EpsilonThemeFg3" },
typescriptReserved = { link = "EpsilonThemeAqua" },
typescriptLabel = { link = "EpsilonThemeAqua" },
typescriptFuncKeyword = { link = "EpsilonThemeAqua" },
typescriptIdentifier = { link = "EpsilonThemeOrange" },
typescriptBraces = { link = "EpsilonThemeFg1" },
typescriptEndColons = { link = "EpsilonThemeFg1" },
typescriptDOMObjects = { link = "EpsilonThemeFg1" },
typescriptAjaxMethods = { link = "EpsilonThemeFg1" },
typescriptLogicSymbols = { link = "EpsilonThemeFg1" },
typescriptDocSeeTag = { link = "Comment" },
typescriptDocParam = { link = "Comment" },
typescriptDocTags = { link = "vimCommentTitle" },
typescriptGlobalObjects = { link = "EpsilonThemeFg1" },
typescriptParens = { link = "EpsilonThemeFg3" },
typescriptOpSymbols = { link = "EpsilonThemeFg3" },
typescriptHtmlElemProperties = { link = "EpsilonThemeFg1" },
typescriptNull = { link = "EpsilonThemePurple" },
typescriptInterpolationDelimiter = { link = "EpsilonThemeAqua" },
purescriptModuleKeyword = { link = "EpsilonThemeAqua" },
purescriptModuleName = { link = "EpsilonThemeFg1" },
purescriptWhere = { link = "EpsilonThemeAqua" },
purescriptDelimiter = { link = "EpsilonThemeFg4" },
purescriptType = { link = "EpsilonThemeFg1" },
purescriptImportKeyword = { link = "EpsilonThemeAqua" },
purescriptHidingKeyword = { link = "EpsilonThemeAqua" },
purescriptAsKeyword = { link = "EpsilonThemeAqua" },
purescriptStructure = { link = "EpsilonThemeAqua" },
purescriptOperator = { link = "EpsilonThemeBlue" },
purescriptTypeVar = { link = "EpsilonThemeFg1" },
purescriptConstructor = { link = "EpsilonThemeFg1" },
purescriptFunction = { link = "EpsilonThemeFg1" },
purescriptConditional = { link = "EpsilonThemeOrange" },
purescriptBacktick = { link = "EpsilonThemeOrange" },
coffeeExtendedOp = { link = "EpsilonThemeFg3" },
coffeeSpecialOp = { link = "EpsilonThemeFg3" },
coffeeCurly = { link = "EpsilonThemeOrange" },
coffeeParen = { link = "EpsilonThemeFg3" },
coffeeBracket = { link = "EpsilonThemeOrange" },
rubyStringDelimiter = { link = "EpsilonThemeGreen" },
rubyInterpolationDelimiter = { link = "EpsilonThemeAqua" },
rubyDefinedOperator = { link = "rubyKeyword" },
objcTypeModifier = { link = "EpsilonThemeRed" },
objcDirective = { link = "EpsilonThemeBlue" },
goDirective = { link = "EpsilonThemeAqua" },
goConstants = { link = "EpsilonThemePurple" },
goDeclaration = { link = "EpsilonThemeRed" },
goDeclType = { link = "EpsilonThemeBlue" },
goBuiltins = { link = "EpsilonThemeOrange" },
luaIn = { link = "EpsilonThemeRed" },
luaFunction = { link = "EpsilonThemeAqua" },
luaTable = { link = "EpsilonThemeOrange" },
moonSpecialOp = { link = "EpsilonThemeFg3" },
moonExtendedOp = { link = "EpsilonThemeFg3" },
moonFunction = { link = "EpsilonThemeFg3" },
moonObject = { link = "EpsilonThemeYellow" },
javaAnnotation = { link = "EpsilonThemeBlue" },
javaDocTags = { link = "EpsilonThemeAqua" },
javaCommentTitle = { link = "vimCommentTitle" },
javaParen = { link = "EpsilonThemeFg3" },
javaParen1 = { link = "EpsilonThemeFg3" },
javaParen2 = { link = "EpsilonThemeFg3" },
javaParen3 = { link = "EpsilonThemeFg3" },
javaParen4 = { link = "EpsilonThemeFg3" },
javaParen5 = { link = "EpsilonThemeFg3" },
javaOperator = { link = "EpsilonThemeOrange" },
javaVarArg = { link = "EpsilonThemeGreen" },
elixirDocString = { link = "Comment" },
elixirStringDelimiter = { link = "EpsilonThemeGreen" },
elixirInterpolationDelimiter = { link = "EpsilonThemeAqua" },
elixirModuleDeclaration = { link = "EpsilonThemeYellow" },
scalaNameDefinition = { link = "EpsilonThemeFg1" },
scalaCaseFollowing = { link = "EpsilonThemeFg1" },
scalaCapitalWord = { link = "EpsilonThemeFg1" },
scalaTypeExtension = { link = "EpsilonThemeFg1" },
scalaKeyword = { link = "EpsilonThemeRed" },
scalaKeywordModifier = { link = "EpsilonThemeRed" },
scalaSpecial = { link = "EpsilonThemeAqua" },
scalaOperator = { link = "EpsilonThemeFg1" },
scalaTypeDeclaration = { link = "EpsilonThemeYellow" },
scalaTypeTypePostDeclaration = { link = "EpsilonThemeYellow" },
scalaInstanceDeclaration = { link = "EpsilonThemeFg1" },
scalaInterpolation = { link = "EpsilonThemeAqua" },
markdownItalic = { fg = colors.fg3, italic = true },
markdownBold = { fg = colors.fg3, bold = config.bold },
markdownBoldItalic = { fg = colors.fg3, bold = config.bold, italic = true },
markdownH1 = { link = "EpsilonThemeGreenBold" },
markdownH2 = { link = "EpsilonThemeGreenBold" },
markdownH3 = { link = "EpsilonThemeYellowBold" },
markdownH4 = { link = "EpsilonThemeYellowBold" },
markdownH5 = { link = "EpsilonThemeYellow" },
markdownH6 = { link = "EpsilonThemeYellow" },
markdownCode = { link = "EpsilonThemeAqua" },
markdownCodeBlock = { link = "EpsilonThemeAqua" },
markdownCodeDelimiter = { link = "EpsilonThemeAqua" },
markdownBlockquote = { link = "EpsilonThemeGray" },
markdownListMarker = { link = "EpsilonThemeGray" },
markdownOrderedListMarker = { link = "EpsilonThemeGray" },
markdownRule = { link = "EpsilonThemeGray" },
markdownHeadingRule = { link = "EpsilonThemeGray" },
markdownUrlDelimiter = { link = "EpsilonThemeFg3" },
markdownLinkDelimiter = { link = "EpsilonThemeFg3" },
markdownLinkTextDelimiter = { link = "EpsilonThemeFg3" },
markdownHeadingDelimiter = { link = "EpsilonThemeOrange" },
markdownUrl = { link = "EpsilonThemePurple" },
markdownUrlTitleDelimiter = { link = "EpsilonThemeGreen" },
markdownLinkText = { fg = colors.gray, underline = config.underline },
markdownIdDeclaration = { link = "markdownLinkText" },
haskellType = { link = "EpsilonThemeBlue" },
haskellIdentifier = { link = "EpsilonThemeAqua" },
haskellSeparator = { link = "EpsilonThemeFg4" },
haskellDelimiter = { link = "EpsilonThemeOrange" },
haskellOperators = { link = "EpsilonThemePurple" },
haskellBacktick = { link = "EpsilonThemeOrange" },
haskellStatement = { link = "EpsilonThemePurple" },
haskellConditional = { link = "EpsilonThemePurple" },
haskellLet = { link = "EpsilonThemeRed" },
haskellDefault = { link = "EpsilonThemeRed" },
haskellWhere = { link = "EpsilonThemeRed" },
haskellBottom = { link = "EpsilonThemeRedBold" },
haskellImportKeywords = { link = "EpsilonThemePurpleBold" },
haskellDeclKeyword = { link = "EpsilonThemeOrange" },
haskellDecl = { link = "EpsilonThemeOrange" },
haskellDeriving = { link = "EpsilonThemePurple" },
haskellAssocType = { link = "EpsilonThemeAqua" },
haskellNumber = { link = "EpsilonThemeAqua" },
haskellPragma = { link = "EpsilonThemeRedBold" },
haskellTH = { link = "EpsilonThemeAquaBold" },
haskellForeignKeywords = { link = "EpsilonThemeGreen" },
haskellKeyword = { link = "EpsilonThemeRed" },
haskellFloat = { link = "EpsilonThemeAqua" },
haskellInfix = { link = "EpsilonThemePurple" },
haskellQuote = { link = "EpsilonThemeGreenBold" },
haskellShebang = { link = "EpsilonThemeYellowBold" },
haskellLiquid = { link = "EpsilonThemePurpleBold" },
haskellQuasiQuoted = { link = "EpsilonThemeBlueBold" },
haskellRecursiveDo = { link = "EpsilonThemePurple" },
haskellQuotedType = { link = "EpsilonThemeRed" },
haskellPreProc = { link = "EpsilonThemeFg4" },
haskellTypeRoles = { link = "EpsilonThemeRedBold" },
haskellTypeForall = { link = "EpsilonThemeRed" },
haskellPatternKeyword = { link = "EpsilonThemeBlue" },
jsonKeyword = { link = "EpsilonThemeGreen" },
jsonQuote = { link = "EpsilonThemeGreen" },
jsonBraces = { link = "EpsilonThemeFg1" },
jsonString = { link = "EpsilonThemeFg1" },
mailQuoted1 = { link = "EpsilonThemeAqua" },
mailQuoted2 = { link = "EpsilonThemePurple" },
mailQuoted3 = { link = "EpsilonThemeYellow" },
mailQuoted4 = { link = "EpsilonThemeGreen" },
mailQuoted5 = { link = "EpsilonThemeRed" },
mailQuoted6 = { link = "EpsilonThemeOrange" },
mailSignature = { link = "Comment" },
csBraces = { link = "EpsilonThemeFg1" },
csEndColon = { link = "EpsilonThemeFg1" },
csLogicSymbols = { link = "EpsilonThemeFg1" },
csParens = { link = "EpsilonThemeFg3" },
csOpSymbols = { link = "EpsilonThemeFg3" },
csInterpolationDelimiter = { link = "EpsilonThemeFg3" },
csInterpolationAlignDel = { link = "EpsilonThemeAquaBold" },
csInterpolationFormat = { link = "EpsilonThemeAqua" },
csInterpolationFormatDel = { link = "EpsilonThemeAquaBold" },
rustSigil = { link = "EpsilonThemeOrange" },
rustEscape = { link = "EpsilonThemeAqua" },
rustStringContinuation = { link = "EpsilonThemeAqua" },
rustEnum = { link = "EpsilonThemeAqua" },
rustStructure = { link = "EpsilonThemeAqua" },
rustModPathSep = { link = "EpsilonThemeFg2" },
rustCommentLineDoc = { link = "Comment" },
rustDefault = { link = "EpsilonThemeAqua" },
ocamlOperator = { link = "EpsilonThemeFg1" },
ocamlKeyChar = { link = "EpsilonThemeOrange" },
ocamlArrow = { link = "EpsilonThemeOrange" },
ocamlInfixOpKeyword = { link = "EpsilonThemeRed" },
ocamlConstructor = { link = "EpsilonThemeOrange" },
LspSagaCodeActionTitle = { link = "Title" },
LspSagaCodeActionBorder = { link = "EpsilonThemeFg1" },
LspSagaCodeActionContent = { fg = colors.green, bold = config.bold },
LspSagaLspFinderBorder = { link = "EpsilonThemeFg1" },
LspSagaAutoPreview = { link = "EpsilonThemeOrange" },
TargetWord = { fg = colors.blue, bold = config.bold },
FinderSeparator = { link = "EpsilonThemeAqua" },
LspSagaDefPreviewBorder = { link = "EpsilonThemeBlue" },
LspSagaHoverBorder = { link = "EpsilonThemeOrange" },
LspSagaRenameBorder = { link = "EpsilonThemeBlue" },
LspSagaDiagnosticSource = { link = "EpsilonThemeOrange" },
LspSagaDiagnosticBorder = { link = "EpsilonThemePurple" },
LspSagaDiagnosticHeader = { link = "EpsilonThemeGreen" },
LspSagaSignatureHelpBorder = { link = "EpsilonThemeGreen" },
SagaShadow = { link = "EpsilonThemeBg0" },
DashboardShortCut = { link = "EpsilonThemeOrange" },
DashboardHeader = { link = "EpsilonThemeAqua" },
DashboardCenter = { link = "EpsilonThemeYellow" },
DashboardFooter = { fg = colors.purple, italic = true },
MasonHighlight = { link = "EpsilonThemeAqua" },
MasonHighlightBlock = { fg = colors.bg0, bg = colors.blue },
MasonHighlightBlockBold = { fg = colors.bg0, bg = colors.blue, bold = true },
MasonHighlightSecondary = { fg = colors.yellow },
MasonHighlightBlockSecondary = { fg = colors.bg0, bg = colors.yellow },
MasonHighlightBlockBoldSecondary = { fg = colors.bg0, bg = colors.yellow, bold = true },
MasonHeader = { link = "MasonHighlightBlockBoldSecondary" },
MasonHeaderSecondary = { link = "MasonHighlightBlockBold" },
MasonMuted = { fg = colors.fg4 },
MasonMutedBlock = { fg = colors.bg0, bg = colors.fg4 },
MasonMutedBlockBold = { fg = colors.bg0, bg = colors.fg4, bold = true },
LspInlayHint = { link = "comment" },
CarbonFile = { link = "EpsilonThemeFg1" },
CarbonExe = { link = "EpsilonThemeYellow" },
CarbonSymlink = { link = "EpsilonThemeAqua" },
CarbonBrokenSymlink = { link = "EpsilonThemeRed" },
CarbonIndicator = { link = "EpsilonThemeGray" },
CarbonDanger = { link = "EpsilonThemeRed" },
CarbonPending = { link = "EpsilonThemeYellow" },
NoiceCursor = { link = "TermCursor" },
NotifyDEBUGBorder = { link = "EpsilonThemeBlue" },
NotifyDEBUGIcon = { link = "EpsilonThemeBlue" },
NotifyDEBUGTitle = { link = "EpsilonThemeBlue" },
NotifyERRORBorder = { link = "EpsilonThemeRed" },
NotifyERRORIcon = { link = "EpsilonThemeRed" },
NotifyERRORTitle = { link = "EpsilonThemeRed" },
NotifyINFOBorder = { link = "EpsilonThemeAqua" },
NotifyINFOIcon = { link = "EpsilonThemeAqua" },
NotifyINFOTitle = { link = "EpsilonThemeAqua" },
NotifyTRACEBorder = { link = "EpsilonThemeGreen" },
NotifyTRACEIcon = { link = "EpsilonThemeGreen" },
NotifyTRACETitle = { link = "EpsilonThemeGreen" },
NotifyWARNBorder = { link = "EpsilonThemeYellow" },
NotifyWARNIcon = { link = "EpsilonThemeYellow" },
NotifyWARNTitle = { link = "EpsilonThemeYellow" },
IlluminatedWordText = { link = "LspReferenceText" },
IlluminatedWordRead = { link = "LspReferenceRead" },
IlluminatedWordWrite = { link = "LspReferenceWrite" },
TSRainbowRed = { fg = colors.red },
TSRainbowOrange = { fg = colors.orange },
TSRainbowYellow = { fg = colors.yellow },
TSRainbowGreen = { fg = colors.green },
TSRainbowBlue = { fg = colors.blue },
TSRainbowViolet = { fg = colors.purple },
TSRainbowCyan = { fg = colors.cyan },
DapBreakpointSymbol = { fg = colors.red, bg = colors.bg1 },
DapStoppedSymbol = { fg = colors.green, bg = colors.bg1 },
DapUIBreakpointsCurrentLine = { link = "EpsilonThemeYellow" },
DapUIBreakpointsDisabledLine = { link = "EpsilonThemeGray" },
DapUIBreakpointsInfo = { link = "EpsilonThemeAqua" },
DapUIBreakpointsLine = { link = "EpsilonThemeYellow" },
DapUIBreakpointsPath = { link = "EpsilonThemeBlue" },
DapUICurrentFrameName = { link = "EpsilonThemePurple" },
DapUIDecoration = { link = "EpsilonThemePurple" },
DapUIEndofBuffer = { link = "EpsilonThemeBg2" },
DapUIFloatBorder = { link = "EpsilonThemeAqua" },
DapUILineNumber = { link = "EpsilonThemeYellow" },
DapUIModifiedValue = { link = "EpsilonThemeRed" },
DapUIPlayPause = { fg = colors.green, bg = colors.bg1 },
DapUIRestart = { fg = colors.green, bg = colors.bg1 },
DapUIScope = { link = "EpsilonThemeBlue" },
DapUISource = { link = "EpsilonThemeFg1" },
DapUIStepBack = { fg = colors.blue, bg = colors.bg1 },
DapUIStepInto = { fg = colors.blue, bg = colors.bg1 },
DapUIStepOut = { fg = colors.blue, bg = colors.bg1 },
DapUIStepOver = { fg = colors.blue, bg = colors.bg1 },
DapUIStop = { fg = colors.red, bg = colors.bg1 },
DapUIStoppedThread = { link = "EpsilonThemeBlue" },
DapUIThread = { link = "EpsilonThemeBlue" },
DapUIType = { link = "EpsilonThemeOrange" },
DapUIUnavailable = { link = "EpsilonThemeGray" },
DapUIWatchesEmpty = { link = "EpsilonThemeGray" },
DapUIWatchesError = { link = "EpsilonThemeRed" },
DapUIWatchesValue = { link = "EpsilonThemeYellow" },
DapUIWinSelect = { link = "EpsilonThemeYellow" },
NeogitDiffDelete = { link = "DiffDelete" },
NeogitDiffAdd = { link = "DiffAdd" },
NeogitHunkHeader = { link = "WinBar" },
NeogitHunkHeaderHighlight = { link = "WinBarNC" },
DiffviewStatusModified = { link = "EpsilonThemeGreenBold" },
DiffviewFilePanelInsertions = { link = "EpsilonThemeGreenBold" },
DiffviewFilePanelDeletions = { link = "EpsilonThemeRedBold" },
["@comment"] = { link = "Comment" },
["@none"] = { bg = "NONE", fg = "NONE" },
["@preproc"] = { link = "PreProc" },
["@define"] = { link = "Define" },
["@operator"] = { link = "Operator" },
["@punctuation.delimiter"] = { link = "Delimiter" },
["@punctuation.bracket"] = { link = "Delimiter" },
["@punctuation.special"] = { link = "Delimiter" },
["@string"] = { link = "String" },
["@string.regex"] = { link = "String" },
["@string.escape"] = { link = "SpecialChar" },
["@string.special"] = { link = "SpecialChar" },
["@character"] = { link = "Character" },
["@character.special"] = { link = "SpecialChar" },
["@boolean"] = { link = "Boolean" },
["@number"] = { link = "Number" },
["@float"] = { link = "Float" },
["@function"] = { link = "Function" },
["@function.builtin"] = { link = "Special" },
["@function.call"] = { link = "Function" },
["@function.macro"] = { link = "Macro" },
["@method"] = { link = "Function" },
["@method.call"] = { link = "Function" },
["@constructor"] = { link = "Special" },
["@parameter"] = { link = "Identifier" },
["@keyword"] = { link = "Keyword" },
["@keyword.function"] = { link = "Keyword" },
["@keyword.operator"] = { link = "EpsilonThemeRed" },
["@keyword.return"] = { link = "Keyword" },
["@conditional"] = { link = "Conditional" },
["@repeat"] = { link = "Repeat" },
["@debug"] = { link = "Debug" },
["@label"] = { link = "Label" },
["@include"] = { link = "Include" },
["@exception"] = { link = "Exception" },
["@type"] = { link = "Type" },
["@type.builtin"] = { link = "Type" },
["@type.definition"] = { link = "Typedef" },
["@type.qualifier"] = { link = "Type" },
["@storageclass"] = { link = "StorageClass" },
["@attribute"] = { link = "PreProc" },
["@field"] = { link = "Identifier" },
["@property"] = { link = "Identifier" },
["@variable"] = { link = "EpsilonThemeFg1" },
["@variable.builtin"] = { link = "Special" },
["@constant"] = { link = "Constant" },
["@constant.builtin"] = { link = "Special" },
["@constant.macro"] = { link = "Define" },
["@namespace"] = { link = "EpsilonThemeFg1" },
["@symbol"] = { link = "Identifier" },
["@text"] = { link = "EpsilonThemeFg1" },
["@text.strong"] = { bold = config.bold },
["@text.emphasis"] = { italic = config.italic.emphasis },
["@text.underline"] = { underline = config.underline },
["@text.strike"] = { strikethrough = config.strikethrough },
["@text.title"] = { link = "Title" },
["@text.literal"] = { link = "String" },
["@text.uri"] = { link = "Underlined" },
["@text.math"] = { link = "Special" },
["@text.environment"] = { link = "Macro" },
["@text.environment.name"] = { link = "Type" },
["@text.reference"] = { link = "Constant" },
["@text.todo"] = { link = "Todo" },
["@text.note"] = { link = "SpecialComment" },
["@text.note.comment"] = { fg = colors.purple, bold = config.bold },
["@text.warning"] = { link = "WarningMsg" },
["@text.danger"] = { link = "ErrorMsg" },
["@text.danger.comment"] = { fg = colors.fg0, bg = colors.red, bold = config.bold },
["@text.diff.add"] = { link = "diffAdded" },
["@text.diff.delete"] = { link = "diffRemoved" },
["@tag"] = { link = "Tag" },
["@tag.attribute"] = { link = "Identifier" },
["@tag.delimiter"] = { link = "Delimiter" },
["@punctuation"] = { link = "Delimiter" },
["@macro"] = { link = "Macro" },
["@structure"] = { link = "Structure" },
["@lsp.type.class"] = { link = "@type" },
["@lsp.type.comment"] = {}, -- do not overwrite comments
["@lsp.type.decorator"] = { link = "@macro" },
["@lsp.type.enum"] = { link = "@type" },
["@lsp.type.enumMember"] = { link = "@constant" },
["@lsp.type.function"] = { link = "@function" },
["@lsp.type.interface"] = { link = "@constructor" },
["@lsp.type.macro"] = { link = "@macro" },
["@lsp.type.method"] = { link = "@method" },
["@lsp.type.namespace"] = { link = "@namespace" },
["@lsp.type.parameter"] = { link = "@parameter" },
["@lsp.type.property"] = { link = "@property" },
["@lsp.type.struct"] = { link = "@type" },
["@lsp.type.type"] = { link = "@type" },
["@lsp.type.typeParameter"] = { link = "@type.definition" },
["@lsp.type.variable"] = { link = "@variable" },
}
for group, hl in pairs(config.overrides) do
if groups[group] then
-- "link" should not mix with other configs (:h hi-link)
groups[group].link = nil
end
groups[group] = vim.tbl_extend("force", groups[group] or {}, hl)
end
return groups