commit a77f2d86e7541d48a5812221bacbd98d3fed702d Author: Cory Date: Mon Jan 8 14:11:04 2024 +0100 Initial commit diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..999a2f5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Cory Alexander Balaton + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/colors.txt b/colors.txt new file mode 100644 index 0000000..bab94bb --- /dev/null +++ b/colors.txt @@ -0,0 +1,20 @@ +Black: #353535 +BrightBlack: #535353 +Red: #d04949 +BrightRed: #f95353 +Green: #258e25 +BrightGreen: #34cb34 +Yellow: #e6ac00 +BrightYellow: #ffdf80 +Blue: #628cb7 +BrightBlue: #9fbfe0 +Magenta: #ba7ece +BrightMagenta: #d7b5e3 +Cyan: #29a3a3 +BrightCyan: #ccffff +White: #eeeeec +BrightWhite: #ffffff + +Background: #373333 +Selection: #5f5959 +SelectText: #696363 diff --git a/colors/epsilon.vim b/colors/epsilon.vim new file mode 100644 index 0000000..75d7499 --- /dev/null +++ b/colors/epsilon.vim @@ -0,0 +1 @@ +lua require("epsilon").load() diff --git a/lua/epsilon/colors.lua b/lua/epsilon/colors.lua new file mode 100644 index 0000000..70f959e --- /dev/null +++ b/lua/epsilon/colors.lua @@ -0,0 +1,69 @@ +local palette = { + dark0_hard = "#1b1818", + dark0 = "#292424", + dark0_soft = "#363030", + dark1 = "#3c3737", + dark2 = "#504545", + dark3 = "#666161", + dark4 = "#7c7777", + light0_hard = "#f0ebeb", + light0 = "#e6e1e1", + light0_soft = "#dbd7d7", + light1 = "#d1cccc", + light2 = "#c7c2c2", + light3 = "#bdb8b8", + light4 = "#b4afaf", + bright_red = "#f95353", + bright_green = "#3eb82e", + bright_yellow = "#ffdf80", + bright_blue = "#6599cd", + bright_purple = "#b390d5", + bright_aqua = "#51e1bd", + bright_orange = "#fe9d4d", + neutral_red = "#d04949", + neutral_green = "#258e25", + neutral_yellow = "#e6ac00", + neutral_blue = "#628cb7", + neutral_purple = "#ba7ece", + neutral_aqua = "#1eae8a", + neutral_orange = "#d65d0e", + gray = "#928374", +} + +local config = require("epsilon.config") + +for color, hex in pairs(config.palette_overrides) do + palette[color] = hex +end + +local colors = { + bg0 = palette.dark0, + bg1 = palette.dark1, + bg2 = palette.dark2, + bg3 = palette.dark3, + bg4 = palette.dark4, + fg0 = palette.light0, + fg1 = palette.light1, + fg2 = palette.light2, + fg3 = palette.light3, + fg4 = palette.light4, + red = palette.bright_red, + green = palette.bright_green, + yellow = palette.bright_yellow, + blue = palette.bright_blue, + purple = palette.bright_purple, + aqua = palette.bright_aqua, + orange = palette.bright_orange, + neutral_red = palette.neutral_red, + neutral_green = palette.neutral_green, + neutral_yellow = palette.neutral_yellow, + neutral_blue = palette.neutral_blue, + neutral_purple = palette.neutral_purple, + neutral_aqua = palette.neutral_aqua, + dark_red = palette.dark_red, + dark_green = palette.dark_green, + dark_aqua = palette.dark_aqua, + gray = palette.gray, +} + +return colors diff --git a/lua/epsilon/config.lua b/lua/epsilon/config.lua new file mode 100644 index 0000000..22ad291 --- /dev/null +++ b/lua/epsilon/config.lua @@ -0,0 +1,25 @@ +local config = { + terminal_colors = true, + undercurl = true, + underline = true, + bold = true, + italic = { + strings = true, + emphasis = true, + comments = true, + operators = false, + folds = true, + }, + strikethrough = true, + invert_selection = false, + invert_signs = false, + invert_tabline = false, + invert_intend_guides = false, + inverse = true, + palette_overrides = {}, + overrides = {}, + dim_inactive = false, + transparent_mode = false, +} + +return config diff --git a/lua/epsilon/init.lua b/lua/epsilon/init.lua new file mode 100644 index 0000000..dd330dc --- /dev/null +++ b/lua/epsilon/init.lua @@ -0,0 +1,29 @@ +local EpsilonTheme = {} + +EpsilonTheme.setup = function(config) + EpsilonTheme.config = vim.tbl_deep_extend("force", EpsilonTheme.config, config or {}) +end + +--- main load function +EpsilonTheme.load = function() + if vim.version().major < 1 and vim.version().minor < 8 then + vim.notify_once("epsilon.nvim: you must use neovim 0.8 or higher") + return + end + + -- reset colors + if vim.g.colors_name then + vim.cmd.hi("clear") + end + vim.g.colors_name = "epsilon" + vim.o.termguicolors = true + + local groups = require("epsilon.theme") + + -- add highlights + for group, settings in pairs(groups) do + vim.api.nvim_set_hl(0, group, settings) + end +end + +return EpsilonTheme diff --git a/lua/epsilon/theme.lua b/lua/epsilon/theme.lua new file mode 100644 index 0000000..a83daf0 --- /dev/null +++ b/lua/epsilon/theme.lua @@ -0,0 +1,839 @@ +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 diff --git a/lua/lualine/themes/epsilon.lua b/lua/lualine/themes/epsilon.lua new file mode 100644 index 0000000..4a373f2 --- /dev/null +++ b/lua/lualine/themes/epsilon.lua @@ -0,0 +1,33 @@ +local colors = require("epsilon.colors") +return { + normal = { + a = {bg = colors.bg2, fg = colors.lightgray, gui = 'bold'}, + b = {bg = colors.bg1, fg = colors.lightgray2}, + c = {bg = colors.blue, fg = colors.bg0} + }, + insert = { + a = {bg = colors.green, fg = colors.bg2, gui = 'bold'}, + b = {bg = colors.bg2, fg = colors.green}, + c = {bg = colors.blue, fg = colors.bg0} + }, + visual = { + a = {bg = colors.blue, fg = colors.bg2, gui = 'bold'}, + b = {bg = colors.bg2, fg = colors.blue}, + c = {bg = colors.blue, fg = colors.bg0} + }, + replace = { + a = {bg = colors.red, fg = colors.bg2, gui = 'bold'}, + b = {bg = colors.bg2, fg = colors.red}, + c = {bg = colors.blue, fg = colors.bg0} + }, + command = { + a = {bg = colors.purple, fg = colors.bg2, gui = 'bold'}, + b = {bg = colors.bg2, fg = colors.purple}, + c = {bg = colors.blue, fg = colors.bg0} + }, + inactive = { + a = {bg = colors.bg0, fg = colors.fg0, gui = 'bold'}, + b = {bg = colors.bg0, fg = colors.fg0}, + c = {bg = colors.bg0, fg = colors.fg0} + } +} diff --git a/stylua.toml b/stylua.toml new file mode 100644 index 0000000..0fd4cb5 --- /dev/null +++ b/stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +no_call_parentheses = false