local vim = assert(vim) local M = {} local function highlights(colors) local borders = colors.black return{ -- General Vim UI ["TabLineFill"] = {fg = colors.bg_6, bg = borders}, ["IncSearch"] = {fg = colors.bg_0, bg = colors.red}, ["CurSearch"] = {fg = colors.bg_0, bg = colors.salmon}, ["TabLineSel"] = { fg = colors.bg_4, bg = colors.salmon }, ["MatchParen"] = { bg = colors.blue, fg = colors.black }, ["VertSplit"] = { fg = colors.black, bg = borders}, ["WinSeparator"] = { fg = colors.black, bg = borders}, ["Normal"] = { fg = colors.normal_fg, bg = colors.bg_3 }, ["DarkFg"] = { fg = colors.bg_3, bg = colors.bg_1 }, ["DarkGray"] = { fg = colors.dark_grey }, ["StatusLine"] = { fg = colors.red, bg = borders, bold = true }, ["Title"] = { fg = colors.orange, bg = colors.dark_grey, bold = true }, ["Visual"] = { fg = colors.black, bg = colors.gold_2 }, ["CursorLineNr"] = { fg = colors.red, bg = colors.bg_4}, ["CursorLine"] = { fg = colors.gold_1, bg = colors.bg_4}, ["StatusLineNC"] = { fg = colors.lighter_grey, bg = colors.black, bold = true }, ["Folded"] = { fg = colors.black, bg = colors.sage }, ["TabLine"] = { fg = colors.near_white, bg = colors.bg_4}, ["Search"] = { bg = colors.bg_5, fg = colors.near_white }, ["SignColumn"] = { bg = colors.bg_1}, ["ColorColumn"] = { bg = colors.bg_1}, ["LineNrAbove"] = { fg = colors.bg_6, bg = colors.bg_1, italic = true }, ["LineNr"] = { fg = colors.bg_6, bg = colors.bg_1, bold = true }, ["LineNrBelow"] = { fg = colors.bg_6, bg = colors.bg_1, italic = true }, ["DocComment"] = { fg = colors.cobalt, italic = true }, ["@attribute"] = { fg = colors.magenta }, ["@comment.documentation.java"] = { fg = colors.cobalt, italic = true }, ["@constructor.lua"] = { fg = colors.blue }, ["@lsp.mod.classScope"] = { fg = colors.salmon }, ["@lsp.mod.functionScope"] = { fg = colors.sage}, ["@lsp.mod.readonly"] = { fg = colors.magenta }, ["@lsp.type.class"] = { fg = colors.orange }, ["@lsp.type.enum"] = { fg = colors.orange }, ["@lsp.type.enum.java"] = { fg = colors.gold_1}, ["@lsp.type.interface.java"] = { fg = colors.salmon_2 }, ["@lsp.type.namespace"] = { fg = colors.stormy_blue}, ["@lsp.type.operator"] = { fg = colors.blue }, ["@lsp.type.parameter"] = { fg = colors.red }, ["@lsp.type.property"] = { fg = colors.salmon }, ["@lsp.type.field"] = { fg = colors.salmon }, ["@lsp.type.property.java"] = { fg = colors.salmon }, ["@lsp.type.struct"] = { fg = colors.orange }, ["@lsp.type.typeParameter"] = { fg = colors.magenta }, ["@lsp.type.variable"] = { fg = colors.lighter_grey }, ["@lsp.typemod.method"] = { fg = colors.gold_2 }, ["@lsp.typemod.parameter.functionScope"] = { fg = colors.red }, ["@lsp.typemod.property.static.java"] = { fg = colors.sage_2}, ["@lsp.typemod.variable.functionScope.cpp"] = { fg = colors.lighter_grey }, ["@module"] = { fg = colors.stormy_blue}, ["@punctuation"] = { fg = colors.blue }, ["@type.builtin"] = { fg = colors.orange }, ["@type.qualifier"] = { fg = colors.blue }, ["@variable"] = { fg = colors.lighter_grey }, ["@variable.member"] = { fg = colors.salmon }, ["@variable.parameter"] = { fg = colors.red }, ["luaTable"] = { fg = colors.blue }, ["vimFunction"] = { fg = colors.gold_2 }, ["vimIsCommand"] = { fg = colors.red }, ["vimUserFunc"] = { fg = colors.gold_2 }, ["CmpItemAbbrDeprecated"] = { fg = colors.salmon, bg = colors.bg_5, strikethrough = true }, ["CmpItemAbbrMatch"] = { fg = colors.bg_5, bg = colors.salmon, bold = true }, ["PmenuSbar"] = { bg = colors.dark_cloud}, ["PmenuThumb"] = { bg = colors.blue}, ["Pmenu"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpDefault"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpBorder"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpCompletion"] = { fg = colors.red }, ["CmpCompletionBorder"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpCompletionExtension"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpCompletionSbar"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpCompletionSel"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpCompletionThumb"] = { fg = colors.radioactive_green }, ["CmpDocumentation"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpDocumentationBorder"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpGhostText"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpItemAbbr"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpItemAbbrDefault"] = { fg = colors.salmon }, ["CmpItemAbbrDeprecatedDefault"] = { fg = colors.dark_cloud }, ["CmpItemAbbrMatchDefault"] = { fg = colors.salmon }, ["PmenuSel"] = { fg = colors.midnight, bg = colors.salmon, bold = true }, ["CmpItemAbbrMatchFuzzy"] = { fg = colors.midnight, bg = colors.salmon, bold = true }, ["CmpItemAbbrMatchFuzzyDefault"] = { fg = colors.salmon }, ["CmpItemKind"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpItemKindArray"] = { fg = colors.magenta }, ["CmpItemKindBoolean"] = { fg = colors.magenta }, ["CmpItemKindClass"] = { fg = colors.orange }, ["CmpItemKindCodeium"] = { fg = colors.magenta }, ["CmpItemKindColor"] = { fg = colors.magenta }, ["CmpItemKindConstant"] = { fg = colors.magenta }, ["CmpItemKindConstructor"] = { fg = colors.magenta }, ["CmpItemKindCopilot"] = { fg = colors.magenta }, ["CmpItemKindDefault"] = { fg = colors.teal_2}, ["CmpItemKindEnum"] = { fg = colors.magenta }, ["CmpItemKindEnumMember"] = { fg = colors.magenta }, ["CmpItemKindEvent"] = { fg = colors.magenta }, ["CmpItemKindField"] = { fg = colors.magenta }, ["CmpItemKindFile"] = { fg = colors.magenta }, ["CmpItemKindFolder"] = { fg = colors.magenta }, ["CmpItemKindFunction"] = { fg = colors.gold_2 }, ["CmpItemKindInterface"] = { fg = colors.orange }, ["CmpItemKindKey"] = { fg = colors.magenta }, ["CmpItemKindKeyword"] = { fg = colors.magenta }, ["CmpItemKindMethod"] = { fg = colors.magenta }, ["CmpItemKindModule"] = { fg = colors.magenta }, ["CmpItemKindNamespace"] = { fg = colors.magenta }, ["CmpItemKindNull"] = { fg = colors.magenta }, ["CmpItemKindNumber"] = { fg = colors.magenta }, ["CmpItemKindObject"] = { fg = colors.magenta }, ["CmpItemKindOperator"] = { fg = colors.magenta }, ["CmpItemKindPackage"] = { fg = colors.magenta }, ["CmpItemKindProperty"] = { fg = colors.magenta }, ["CmpItemKindReference"] = { fg = colors.magenta }, ["CmpItemKindSnippet"] = { fg = colors.magenta }, ["CmpItemKindString"] = { fg = colors.magenta }, ["CmpItemKindStruct"] = { fg = colors.magenta }, ["CmpItemKindTabNine"] = { fg = colors.magenta }, ["CmpItemKindText"] = { fg = colors.magenta }, ["CmpItemKindTypeParameter"] = { fg = colors.lighter_grey }, ["CmpItemKindUnit"] = { fg = colors.magenta }, ["CmpItemKindValue"] = { fg = colors.magenta }, ["CmpItemKindVariable"] = { fg = colors.lighter_grey }, ["CmpItemMenu"] = { fg = colors.cobalt, italic = true }, ["CmpItemMenuDefault"] = { fg = colors.salmon }, ["CmpKind"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpReady"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpStatus"] = { fg = colors.salmon, bg = colors.midnight}, ["CmpZsh"] = { fg = colors.salmon, bg = colors.midnight}, ["DiagnosticInfo"] = { fg = colors.teal_3 }, ["DiagnosticError"] = { fg = colors.all_red}, ["vimAugroup"] = { fg = colors.magenta }, ["vimAutoCmdGroup"] = { fg = colors.magenta }, ["vimAutoCmdSfxList"] = { fg = colors.magenta }, ["vimAugroupEnd"] = { fg = colors.magenta }, ["vimUsrCmd"] = { fg = colors.blue }, ["vimSetEqual"] = { fg = colors.teal }, ["TabLineCloseSel"] = { fg = colors.half_red, bg = colors.red}, ["TabLineClose"] = { fg = colors.black, bg = colors.bg_1}, ["TabLineTail"] = { fg = colors.salmon, bg = colors.bg_1}, ["DiagnosticUnderlineError"] = { sp = colors.pink, undercurl = true }, ["DiagnosticUnderlineWarn"] = { sp = colors.light_yellow, undercurl = true }, ["DiagnosticUnderlineInfo"] = { sp = colors.teal_2, undercurl = true }, ["WarpNormal"] = { fg = colors.black, bg = colors.gold_1, bold = true }, ["TelescopeNormal"] = { fg = colors.light_yellow, bg = colors.bg_3}, ["TelescopeSelection"] = { reverse = true }, ["TelescopeTitle"] = { fg = colors.gold_1, bold = true }, ["TelescopeMatching"] = { reverse = true }, ["TelescopeBorder"] = { bg = colors.bg_1 }, ["vimMapRhs"] = { fg = colors.magenta }, ["vimMapRhsExtend"] = { fg = colors.magenta }, ["Delimiter"] = { fg = colors.blue }, ["vimMapLhs"] = { fg = colors.orange }, ["LspReferenceText"] = { bg = colors.bg_5, sp = colors.sage }, ["LspReferenceRead"] = { bg = colors.bg_5, sp = colors.sage }, ["LspReferenceWrite"] = { bg = colors.bg_5, sp = colors.sage }, -- Common vim highlight groups ["TagbarAccessProtected"] = { fg = colors.gold_2 }, ["javaDocTags"] = { fg = colors.salmon_2}, ["xmlTag"] = { fg = colors.blue }, ["StorageClass"] = { fg = colors.red }, ["Statement"] = { fg = colors.blue }, ["javaAnnotation"] = { fg = colors.magenta }, ["htmlEndTag"] = { fg = colors.purple }, ["Type"] = { fg = colors.orange }, ["FoldColumn"] = { fg = colors.radioactive_green }, ["Function"] = { fg = colors.gold_2 }, ["xmlAttrib"] = { fg = colors.olive}, ["Structure"] = { fg = colors.red }, ["htmlTagName"] = { fg = colors.blue }, ["PreProc"] = { fg = colors.magenta }, ["TagbarAccessPublic"] = { fg = colors.radioactive_green }, ["xmlEndTag"] = { fg = colors.red }, ["Identifier"] = { fg = colors.lighter_grey }, ["Number"] = { fg = colors.teal }, ["javaOperator"] = { fg = colors.blue }, ["String"] = { fg = colors.radioactive_green }, ["Comment"] = { fg = colors.dark_cloud, italic = true }, ["DiagnosticUnnecessary"] = { fg = colors.lighter_grey, strikethrough = true, sp = colors.bg_1 }, ["javaCommentTitle"] = { fg = colors.blue }, ["Constant"] = { fg = colors.magenta }, ["SpecialKey"] = { fg = colors.blue }, ["javaDocComment"] = { fg = colors.dark_cloud, italic = true }, ["TagbarAccessPrivate"] = { fg = colors.red }, ["htmlTag"] = { fg = colors.purple}, ["Operator"] = { fg = colors.blue }, ["Special"] = { fg = colors.gold_5}, ["NonText"] = { fg = colors.salmon }, ["ColorColumnLine"] = { fg = colors.bg_6, bold = true }, ["LuaLineDiffAdd"] = {fg = colors.radioactive_green}, ["LuaLineDiffChange"] = {fg = colors.light_yellow}, ["LuaLineDiffDelete"] = {fg = colors.salmon}, } end function M.highlight(colors) for hl, spec in pairs(highlights(colors)) do vim.api.nvim_set_hl(0, hl, spec) end end return M