From 6b3bb01c2c58f6adaebb0ce36b03cb42ac5be0a9 Mon Sep 17 00:00:00 2001 From: "s0wlz (Matthias Puchstein)" Date: Mon, 12 Jan 2026 22:40:55 +0100 Subject: [PATCH] reworked the nvim theme a bit more --- dist/nvim/colors/apex-aeon.lua | 71 +++++++++++++++++++++++++++++-- dist/nvim/colors/apex-neon.lua | 71 +++++++++++++++++++++++++++++-- templates/nvim/colors/apex.lua.j2 | 71 +++++++++++++++++++++++++++++-- 3 files changed, 204 insertions(+), 9 deletions(-) diff --git a/dist/nvim/colors/apex-aeon.lua b/dist/nvim/colors/apex-aeon.lua index 0ea0f52..595130e 100644 --- a/dist/nvim/colors/apex-aeon.lua +++ b/dist/nvim/colors/apex-aeon.lua @@ -33,9 +33,15 @@ function M.load() vim.o.background = "light" vim.g.colors_name = "apex-aeon" - -- Transparency: 80% opaque for floating UI - vim.o.winblend = 20 - vim.o.pumblend = 20 + -- Optional transparency: set g:apex_blend or g:apex_transparent to opt in. + local blend = vim.g.apex_blend + if type(blend) == "number" then + vim.o.winblend = blend + vim.o.pumblend = blend + elseif vim.g.apex_transparent == true then + vim.o.winblend = 20 + vim.o.pumblend = 20 + end local p = M.palette local groups = { @@ -50,6 +56,8 @@ function M.load() NormalFloat = { fg = p.text, bg = p.panel }, FloatBorder = { fg = p.border, bg = p.panel }, MsgArea = { fg = p.text, bg = p.void }, + WinBar = { fg = p.text, bg = p.panel }, + WinBarNC = { fg = p.dim, bg = p.panel }, -- CURSOR & NAVIGATION ("The Hunter") ------------------------------------ Cursor = { fg = p.ink, bg = p.razor }, -- Red Beam @@ -80,6 +88,10 @@ function M.load() WarningMsg = { fg = p.amber }, MoreMsg = { fg = p.tech }, ModeMsg = { fg = p.text }, + TabLine = { fg = p.dim, bg = p.panel }, + TabLineSel = { fg = p.text, bg = p.void, bold = true }, + TabLineFill = { fg = p.panel, bg = p.panel }, + QuickFixLine = { fg = p.text, bg = p.panel, bold = true }, -- SYNTAX HIGHLIGHTING --------------------------------------------------- Comment = { fg = p.stealth, italic = true }, @@ -128,25 +140,53 @@ function M.load() Whitespace = { fg = p.border }, NonText = { fg = p.border }, SpecialKey = { fg = p.border }, + SpellBad = { sp = p.razor, undercurl = true }, + SpellCap = { sp = p.amber, undercurl = true }, + SpellRare = { sp = p.tech, undercurl = true }, + SpellLocal = { sp = p.dim, undercurl = true }, + LspReferenceText = { bg = p.panel }, + LspReferenceRead = { bg = p.panel }, + LspReferenceWrite = { bg = p.panel, bold = true }, + LspSignatureActiveParameter = { fg = p.void, bg = p.tech, bold = true }, + LspInlayHint = { fg = p.dim, bg = p.panel }, -- DIAGNOSTICS ----------------------------------------------------------- DiagnosticError = { fg = p.alert }, DiagnosticWarn = { fg = p.amber }, DiagnosticInfo = { fg = p.tech }, DiagnosticHint = { fg = p.dim }, + DiagnosticOk = { fg = p.toxic }, + DiagnosticDeprecated = { fg = p.dim, strikethrough = true }, + DiagnosticUnnecessary = { fg = p.dim }, DiagnosticUnderlineError = { undercurl = true, sp = p.razor }, DiagnosticUnderlineWarn = { undercurl = true, sp = p.amber }, DiagnosticUnderlineInfo = { undercurl = true, sp = p.tech }, DiagnosticUnderlineHint = { undercurl = true, sp = p.dim }, + DiagnosticUnderlineOk = { undercurl = true, sp = p.toxic }, DiagnosticVirtualTextError = { fg = p.alert, bg = p.panel }, DiagnosticVirtualTextWarn = { fg = p.amber, bg = p.panel }, DiagnosticVirtualTextInfo = { fg = p.tech, bg = p.panel }, DiagnosticVirtualTextHint = { fg = p.dim, bg = p.panel }, + DiagnosticVirtualTextOk = { fg = p.toxic, bg = p.panel }, + DiagnosticVirtualLinesError = { fg = p.alert, bg = p.panel }, + DiagnosticVirtualLinesWarn = { fg = p.amber, bg = p.panel }, + DiagnosticVirtualLinesInfo = { fg = p.tech, bg = p.panel }, + DiagnosticVirtualLinesHint = { fg = p.dim, bg = p.panel }, + DiagnosticVirtualLinesOk = { fg = p.toxic, bg = p.panel }, DiagnosticSignError = { fg = p.alert, bg = p.void }, DiagnosticSignWarn = { fg = p.amber, bg = p.void }, DiagnosticSignInfo = { fg = p.tech, bg = p.void }, DiagnosticSignHint = { fg = p.dim, bg = p.void }, + DiagnosticSignOk = { fg = p.toxic, bg = p.void }, + DiagnosticFloatingError = { fg = p.alert, bg = p.panel }, + DiagnosticFloatingWarn = { fg = p.amber, bg = p.panel }, + DiagnosticFloatingInfo = { fg = p.tech, bg = p.panel }, + DiagnosticFloatingHint = { fg = p.dim, bg = p.panel }, + DiagnosticFloatingOk = { fg = p.toxic, bg = p.panel }, + ApexMarkupStrong = { bold = true }, + ApexMarkupItalic = { italic = true }, + ApexMarkupLink = { fg = p.tech, underline = true }, -- DIFF ------------------------------------------------------------------ DiffAdd = { fg = p.toxic, bg = p.panel }, @@ -241,6 +281,11 @@ function M.load() ["@tag.delimiter"] = "Delimiter", ["@text"] = "Normal", ["@text.title"] = "Title", + ["@markup.heading"] = "Title", + ["@markup.link"] = "ApexMarkupLink", + ["@markup.link.url"] = "ApexMarkupLink", + ["@markup.strong"] = "ApexMarkupStrong", + ["@markup.italic"] = "ApexMarkupItalic", ["@type"] = "Type", ["@type.builtin"] = "Type", ["@type.definition"] = "Type", @@ -249,26 +294,46 @@ function M.load() ["@variable.builtin"] = "Identifier", ["@lsp.type.boolean"] = "Boolean", + ["@lsp.type.builtinType"] = "Type", ["@lsp.type.class"] = "Type", ["@lsp.type.comment"] = "Comment", ["@lsp.type.decorator"] = "Special", ["@lsp.type.enum"] = "Type", ["@lsp.type.enumMember"] = "Constant", + ["@lsp.type.event"] = "Type", ["@lsp.type.function"] = "Function", ["@lsp.type.interface"] = "Type", ["@lsp.type.keyword"] = "Keyword", ["@lsp.type.macro"] = "Macro", ["@lsp.type.method"] = "Function", + ["@lsp.type.modifier"] = "Keyword", ["@lsp.type.namespace"] = "Structure", ["@lsp.type.number"] = "Number", ["@lsp.type.operator"] = "Operator", ["@lsp.type.parameter"] = "Identifier", ["@lsp.type.property"] = "Identifier", + ["@lsp.type.regexp"] = "SpecialChar", ["@lsp.type.string"] = "String", ["@lsp.type.struct"] = "Structure", ["@lsp.type.type"] = "Type", ["@lsp.type.typeParameter"] = "Type", ["@lsp.type.variable"] = "Identifier", + + ["@lsp.mod.deprecated"] = "DiagnosticDeprecated", + ["@lsp.mod.readonly"] = "Constant", + ["@lsp.mod.static"] = "Constant", + ["@lsp.mod.async"] = "Keyword", + + ["@lsp.typemod.function.async"] = "Keyword", + ["@lsp.typemod.method.async"] = "Keyword", + ["@lsp.typemod.function.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.method.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.variable.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.variable.readonly"] = "Constant", + ["@lsp.typemod.parameter.readonly"] = "Constant", + ["@lsp.typemod.property.readonly"] = "Constant", + ["@lsp.typemod.variable.static"] = "Constant", + ["@lsp.typemod.property.static"] = "Constant", } for group, target in pairs(links) do diff --git a/dist/nvim/colors/apex-neon.lua b/dist/nvim/colors/apex-neon.lua index ed8d1a2..e259231 100644 --- a/dist/nvim/colors/apex-neon.lua +++ b/dist/nvim/colors/apex-neon.lua @@ -33,9 +33,15 @@ function M.load() vim.o.background = "dark" vim.g.colors_name = "apex-neon" - -- Transparency: 80% opaque for floating UI - vim.o.winblend = 20 - vim.o.pumblend = 20 + -- Optional transparency: set g:apex_blend or g:apex_transparent to opt in. + local blend = vim.g.apex_blend + if type(blend) == "number" then + vim.o.winblend = blend + vim.o.pumblend = blend + elseif vim.g.apex_transparent == true then + vim.o.winblend = 20 + vim.o.pumblend = 20 + end local p = M.palette local groups = { @@ -50,6 +56,8 @@ function M.load() NormalFloat = { fg = p.text, bg = p.panel }, FloatBorder = { fg = p.border, bg = p.panel }, MsgArea = { fg = p.text, bg = p.void }, + WinBar = { fg = p.text, bg = p.panel }, + WinBarNC = { fg = p.dim, bg = p.panel }, -- CURSOR & NAVIGATION ("The Hunter") ------------------------------------ Cursor = { fg = p.ink, bg = p.razor }, -- Red Beam @@ -80,6 +88,10 @@ function M.load() WarningMsg = { fg = p.amber }, MoreMsg = { fg = p.tech }, ModeMsg = { fg = p.text }, + TabLine = { fg = p.dim, bg = p.panel }, + TabLineSel = { fg = p.text, bg = p.void, bold = true }, + TabLineFill = { fg = p.panel, bg = p.panel }, + QuickFixLine = { fg = p.text, bg = p.panel, bold = true }, -- SYNTAX HIGHLIGHTING --------------------------------------------------- Comment = { fg = p.stealth, italic = true }, @@ -128,25 +140,53 @@ function M.load() Whitespace = { fg = p.border }, NonText = { fg = p.border }, SpecialKey = { fg = p.border }, + SpellBad = { sp = p.razor, undercurl = true }, + SpellCap = { sp = p.amber, undercurl = true }, + SpellRare = { sp = p.tech, undercurl = true }, + SpellLocal = { sp = p.dim, undercurl = true }, + LspReferenceText = { bg = p.panel }, + LspReferenceRead = { bg = p.panel }, + LspReferenceWrite = { bg = p.panel, bold = true }, + LspSignatureActiveParameter = { fg = p.void, bg = p.tech, bold = true }, + LspInlayHint = { fg = p.dim, bg = p.panel }, -- DIAGNOSTICS ----------------------------------------------------------- DiagnosticError = { fg = p.alert }, DiagnosticWarn = { fg = p.amber }, DiagnosticInfo = { fg = p.tech }, DiagnosticHint = { fg = p.dim }, + DiagnosticOk = { fg = p.toxic }, + DiagnosticDeprecated = { fg = p.dim, strikethrough = true }, + DiagnosticUnnecessary = { fg = p.dim }, DiagnosticUnderlineError = { undercurl = true, sp = p.razor }, DiagnosticUnderlineWarn = { undercurl = true, sp = p.amber }, DiagnosticUnderlineInfo = { undercurl = true, sp = p.tech }, DiagnosticUnderlineHint = { undercurl = true, sp = p.dim }, + DiagnosticUnderlineOk = { undercurl = true, sp = p.toxic }, DiagnosticVirtualTextError = { fg = p.alert, bg = p.panel }, DiagnosticVirtualTextWarn = { fg = p.amber, bg = p.panel }, DiagnosticVirtualTextInfo = { fg = p.tech, bg = p.panel }, DiagnosticVirtualTextHint = { fg = p.dim, bg = p.panel }, + DiagnosticVirtualTextOk = { fg = p.toxic, bg = p.panel }, + DiagnosticVirtualLinesError = { fg = p.alert, bg = p.panel }, + DiagnosticVirtualLinesWarn = { fg = p.amber, bg = p.panel }, + DiagnosticVirtualLinesInfo = { fg = p.tech, bg = p.panel }, + DiagnosticVirtualLinesHint = { fg = p.dim, bg = p.panel }, + DiagnosticVirtualLinesOk = { fg = p.toxic, bg = p.panel }, DiagnosticSignError = { fg = p.alert, bg = p.void }, DiagnosticSignWarn = { fg = p.amber, bg = p.void }, DiagnosticSignInfo = { fg = p.tech, bg = p.void }, DiagnosticSignHint = { fg = p.dim, bg = p.void }, + DiagnosticSignOk = { fg = p.toxic, bg = p.void }, + DiagnosticFloatingError = { fg = p.alert, bg = p.panel }, + DiagnosticFloatingWarn = { fg = p.amber, bg = p.panel }, + DiagnosticFloatingInfo = { fg = p.tech, bg = p.panel }, + DiagnosticFloatingHint = { fg = p.dim, bg = p.panel }, + DiagnosticFloatingOk = { fg = p.toxic, bg = p.panel }, + ApexMarkupStrong = { bold = true }, + ApexMarkupItalic = { italic = true }, + ApexMarkupLink = { fg = p.tech, underline = true }, -- DIFF ------------------------------------------------------------------ DiffAdd = { fg = p.toxic, bg = p.panel }, @@ -241,6 +281,11 @@ function M.load() ["@tag.delimiter"] = "Delimiter", ["@text"] = "Normal", ["@text.title"] = "Title", + ["@markup.heading"] = "Title", + ["@markup.link"] = "ApexMarkupLink", + ["@markup.link.url"] = "ApexMarkupLink", + ["@markup.strong"] = "ApexMarkupStrong", + ["@markup.italic"] = "ApexMarkupItalic", ["@type"] = "Type", ["@type.builtin"] = "Type", ["@type.definition"] = "Type", @@ -249,26 +294,46 @@ function M.load() ["@variable.builtin"] = "Identifier", ["@lsp.type.boolean"] = "Boolean", + ["@lsp.type.builtinType"] = "Type", ["@lsp.type.class"] = "Type", ["@lsp.type.comment"] = "Comment", ["@lsp.type.decorator"] = "Special", ["@lsp.type.enum"] = "Type", ["@lsp.type.enumMember"] = "Constant", + ["@lsp.type.event"] = "Type", ["@lsp.type.function"] = "Function", ["@lsp.type.interface"] = "Type", ["@lsp.type.keyword"] = "Keyword", ["@lsp.type.macro"] = "Macro", ["@lsp.type.method"] = "Function", + ["@lsp.type.modifier"] = "Keyword", ["@lsp.type.namespace"] = "Structure", ["@lsp.type.number"] = "Number", ["@lsp.type.operator"] = "Operator", ["@lsp.type.parameter"] = "Identifier", ["@lsp.type.property"] = "Identifier", + ["@lsp.type.regexp"] = "SpecialChar", ["@lsp.type.string"] = "String", ["@lsp.type.struct"] = "Structure", ["@lsp.type.type"] = "Type", ["@lsp.type.typeParameter"] = "Type", ["@lsp.type.variable"] = "Identifier", + + ["@lsp.mod.deprecated"] = "DiagnosticDeprecated", + ["@lsp.mod.readonly"] = "Constant", + ["@lsp.mod.static"] = "Constant", + ["@lsp.mod.async"] = "Keyword", + + ["@lsp.typemod.function.async"] = "Keyword", + ["@lsp.typemod.method.async"] = "Keyword", + ["@lsp.typemod.function.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.method.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.variable.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.variable.readonly"] = "Constant", + ["@lsp.typemod.parameter.readonly"] = "Constant", + ["@lsp.typemod.property.readonly"] = "Constant", + ["@lsp.typemod.variable.static"] = "Constant", + ["@lsp.typemod.property.static"] = "Constant", } for group, target in pairs(links) do diff --git a/templates/nvim/colors/apex.lua.j2 b/templates/nvim/colors/apex.lua.j2 index f05fa9d..b00b1df 100644 --- a/templates/nvim/colors/apex.lua.j2 +++ b/templates/nvim/colors/apex.lua.j2 @@ -33,9 +33,15 @@ function M.load() vim.o.background = "{{ type }}" vim.g.colors_name = "{{ scheme | lower | replace(' ', '-') }}" - -- Transparency: 80% opaque for floating UI - vim.o.winblend = 20 - vim.o.pumblend = 20 + -- Optional transparency: set g:apex_blend or g:apex_transparent to opt in. + local blend = vim.g.apex_blend + if type(blend) == "number" then + vim.o.winblend = blend + vim.o.pumblend = blend + elseif vim.g.apex_transparent == true then + vim.o.winblend = 20 + vim.o.pumblend = 20 + end local p = M.palette local groups = { @@ -50,6 +56,8 @@ function M.load() NormalFloat = { fg = p.text, bg = p.panel }, FloatBorder = { fg = p.border, bg = p.panel }, MsgArea = { fg = p.text, bg = p.void }, + WinBar = { fg = p.text, bg = p.panel }, + WinBarNC = { fg = p.dim, bg = p.panel }, -- CURSOR & NAVIGATION ("The Hunter") ------------------------------------ Cursor = { fg = p.ink, bg = p.razor }, -- Red Beam @@ -80,6 +88,10 @@ function M.load() WarningMsg = { fg = p.amber }, MoreMsg = { fg = p.tech }, ModeMsg = { fg = p.text }, + TabLine = { fg = p.dim, bg = p.panel }, + TabLineSel = { fg = p.text, bg = p.void, bold = true }, + TabLineFill = { fg = p.panel, bg = p.panel }, + QuickFixLine = { fg = p.text, bg = p.panel, bold = true }, -- SYNTAX HIGHLIGHTING --------------------------------------------------- Comment = { fg = p.stealth, italic = true }, @@ -128,25 +140,53 @@ function M.load() Whitespace = { fg = p.border }, NonText = { fg = p.border }, SpecialKey = { fg = p.border }, + SpellBad = { sp = p.razor, undercurl = true }, + SpellCap = { sp = p.amber, undercurl = true }, + SpellRare = { sp = p.tech, undercurl = true }, + SpellLocal = { sp = p.dim, undercurl = true }, + LspReferenceText = { bg = p.panel }, + LspReferenceRead = { bg = p.panel }, + LspReferenceWrite = { bg = p.panel, bold = true }, + LspSignatureActiveParameter = { fg = p.void, bg = p.tech, bold = true }, + LspInlayHint = { fg = p.dim, bg = p.panel }, -- DIAGNOSTICS ----------------------------------------------------------- DiagnosticError = { fg = p.alert }, DiagnosticWarn = { fg = p.amber }, DiagnosticInfo = { fg = p.tech }, DiagnosticHint = { fg = p.dim }, + DiagnosticOk = { fg = p.toxic }, + DiagnosticDeprecated = { fg = p.dim, strikethrough = true }, + DiagnosticUnnecessary = { fg = p.dim }, DiagnosticUnderlineError = { undercurl = true, sp = p.razor }, DiagnosticUnderlineWarn = { undercurl = true, sp = p.amber }, DiagnosticUnderlineInfo = { undercurl = true, sp = p.tech }, DiagnosticUnderlineHint = { undercurl = true, sp = p.dim }, + DiagnosticUnderlineOk = { undercurl = true, sp = p.toxic }, DiagnosticVirtualTextError = { fg = p.alert, bg = p.panel }, DiagnosticVirtualTextWarn = { fg = p.amber, bg = p.panel }, DiagnosticVirtualTextInfo = { fg = p.tech, bg = p.panel }, DiagnosticVirtualTextHint = { fg = p.dim, bg = p.panel }, + DiagnosticVirtualTextOk = { fg = p.toxic, bg = p.panel }, + DiagnosticVirtualLinesError = { fg = p.alert, bg = p.panel }, + DiagnosticVirtualLinesWarn = { fg = p.amber, bg = p.panel }, + DiagnosticVirtualLinesInfo = { fg = p.tech, bg = p.panel }, + DiagnosticVirtualLinesHint = { fg = p.dim, bg = p.panel }, + DiagnosticVirtualLinesOk = { fg = p.toxic, bg = p.panel }, DiagnosticSignError = { fg = p.alert, bg = p.void }, DiagnosticSignWarn = { fg = p.amber, bg = p.void }, DiagnosticSignInfo = { fg = p.tech, bg = p.void }, DiagnosticSignHint = { fg = p.dim, bg = p.void }, + DiagnosticSignOk = { fg = p.toxic, bg = p.void }, + DiagnosticFloatingError = { fg = p.alert, bg = p.panel }, + DiagnosticFloatingWarn = { fg = p.amber, bg = p.panel }, + DiagnosticFloatingInfo = { fg = p.tech, bg = p.panel }, + DiagnosticFloatingHint = { fg = p.dim, bg = p.panel }, + DiagnosticFloatingOk = { fg = p.toxic, bg = p.panel }, + ApexMarkupStrong = { bold = true }, + ApexMarkupItalic = { italic = true }, + ApexMarkupLink = { fg = p.tech, underline = true }, -- DIFF ------------------------------------------------------------------ DiffAdd = { fg = p.toxic, bg = p.panel }, @@ -241,6 +281,11 @@ function M.load() ["@tag.delimiter"] = "Delimiter", ["@text"] = "Normal", ["@text.title"] = "Title", + ["@markup.heading"] = "Title", + ["@markup.link"] = "ApexMarkupLink", + ["@markup.link.url"] = "ApexMarkupLink", + ["@markup.strong"] = "ApexMarkupStrong", + ["@markup.italic"] = "ApexMarkupItalic", ["@type"] = "Type", ["@type.builtin"] = "Type", ["@type.definition"] = "Type", @@ -249,26 +294,46 @@ function M.load() ["@variable.builtin"] = "Identifier", ["@lsp.type.boolean"] = "Boolean", + ["@lsp.type.builtinType"] = "Type", ["@lsp.type.class"] = "Type", ["@lsp.type.comment"] = "Comment", ["@lsp.type.decorator"] = "Special", ["@lsp.type.enum"] = "Type", ["@lsp.type.enumMember"] = "Constant", + ["@lsp.type.event"] = "Type", ["@lsp.type.function"] = "Function", ["@lsp.type.interface"] = "Type", ["@lsp.type.keyword"] = "Keyword", ["@lsp.type.macro"] = "Macro", ["@lsp.type.method"] = "Function", + ["@lsp.type.modifier"] = "Keyword", ["@lsp.type.namespace"] = "Structure", ["@lsp.type.number"] = "Number", ["@lsp.type.operator"] = "Operator", ["@lsp.type.parameter"] = "Identifier", ["@lsp.type.property"] = "Identifier", + ["@lsp.type.regexp"] = "SpecialChar", ["@lsp.type.string"] = "String", ["@lsp.type.struct"] = "Structure", ["@lsp.type.type"] = "Type", ["@lsp.type.typeParameter"] = "Type", ["@lsp.type.variable"] = "Identifier", + + ["@lsp.mod.deprecated"] = "DiagnosticDeprecated", + ["@lsp.mod.readonly"] = "Constant", + ["@lsp.mod.static"] = "Constant", + ["@lsp.mod.async"] = "Keyword", + + ["@lsp.typemod.function.async"] = "Keyword", + ["@lsp.typemod.method.async"] = "Keyword", + ["@lsp.typemod.function.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.method.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.variable.deprecated"] = "DiagnosticDeprecated", + ["@lsp.typemod.variable.readonly"] = "Constant", + ["@lsp.typemod.parameter.readonly"] = "Constant", + ["@lsp.typemod.property.readonly"] = "Constant", + ["@lsp.typemod.variable.static"] = "Constant", + ["@lsp.typemod.property.static"] = "Constant", } for group, target in pairs(links) do