557 lines
27 KiB
Lua
557 lines
27 KiB
Lua
local theme = require("n8n.theme")
|
|
|
|
local M = {}
|
|
|
|
---@param opts? table
|
|
function M.setup(opts)
|
|
opts = opts or {}
|
|
local c = theme.colors()
|
|
|
|
local groups = {}
|
|
|
|
-- ============================================================
|
|
-- Core editor highlights
|
|
-- ============================================================
|
|
groups.Normal = { fg = c.fg, bg = c.bg }
|
|
groups.NormalFloat = { fg = c.fg, bg = c.bg_float }
|
|
groups.NormalSB = { fg = c.fg_sidebar, bg = c.bg_sidebar }
|
|
groups.SignColumn = { fg = c.fg_gutter, bg = c.bg }
|
|
groups.FoldColumn = { fg = c.fg_gutter, bg = c.bg }
|
|
groups.MsgArea = { fg = c.fg }
|
|
groups.MsgSeparator = { fg = c.border }
|
|
groups.SpellBad = { sp = c.error, undercurl = true }
|
|
groups.SpellCap = { sp = c.warning, undercurl = true }
|
|
groups.SpellLocal = { sp = c.info, undercurl = true }
|
|
groups.SpellRare = { sp = c.hint, undercurl = true }
|
|
|
|
-- Cursor and selections
|
|
groups.Cursor = { fg = c.bg, bg = c.fg_bright }
|
|
groups.lCursor = { link = "Cursor" }
|
|
groups.CursorIM = { link = "Cursor" }
|
|
groups.TermCursor = { fg = c.bg, bg = c.accent }
|
|
groups.TermCursorNC = { fg = c.bg, bg = c.fg_dark }
|
|
groups.CursorLine = { bg = c.bg_highlight }
|
|
groups.CursorColumn = { bg = c.bg_highlight }
|
|
groups.ColorColumn = { bg = c.bg_highlight }
|
|
groups.Visual = { bg = c.bg_visual }
|
|
groups.VisualNOS = { bg = c.bg_visual }
|
|
|
|
-- Line numbers
|
|
groups.LineNr = { fg = c.fg_gutter }
|
|
groups.CursorLineNr = { fg = c.accent, bold = true }
|
|
groups.LineNrAbove = { fg = c.fg_gutter }
|
|
groups.LineNrBelow = { fg = c.fg_gutter }
|
|
|
|
-- Search
|
|
groups.Search = { fg = c.fg_bright, bg = c.bg_search }
|
|
groups.IncSearch = { fg = c.bg, bg = c.accent }
|
|
groups.CurSearch = { link = "IncSearch" }
|
|
groups.Substitute = { fg = c.bg, bg = c.accent }
|
|
|
|
-- Popup menu
|
|
groups.Pmenu = { fg = c.fg, bg = c.bg_popup }
|
|
groups.PmenuSel = { fg = c.fg_bright, bg = c.bg_visual }
|
|
groups.PmenuSbar = { bg = c.bg_popup }
|
|
groups.PmenuThumb = { bg = c.border }
|
|
groups.PmenuKind = { fg = c.accent }
|
|
groups.PmenuKindSel = { fg = c.accent, bg = c.bg_visual }
|
|
groups.PmenuExtra = { fg = c.fg_dark }
|
|
groups.PmenuExtraSel = { fg = c.fg_dark, bg = c.bg_visual }
|
|
|
|
-- Tabline
|
|
groups.TabLine = { fg = c.fg_dark, bg = c.bg_statusline }
|
|
groups.TabLineFill = { bg = c.bg_dark }
|
|
groups.TabLineSel = { fg = c.fg_bright, bg = c.bg }
|
|
|
|
-- Statusline
|
|
groups.StatusLine = { fg = c.fg, bg = c.bg_statusline }
|
|
groups.StatusLineNC = { fg = c.fg_gutter, bg = c.bg_statusline }
|
|
|
|
-- Window separators
|
|
groups.VertSplit = { fg = c.border }
|
|
groups.WinSeparator = { fg = c.border }
|
|
groups.WinBar = { fg = c.fg, bg = c.bg }
|
|
groups.WinBarNC = { fg = c.fg_dark, bg = c.bg }
|
|
|
|
-- Folds and columns
|
|
groups.Folded = { fg = c.fg_dark, bg = c.bg_highlight }
|
|
groups.NonText = { fg = c.neutral_700 }
|
|
groups.EndOfBuffer = { fg = c.neutral_800 }
|
|
groups.Whitespace = { fg = c.neutral_800 }
|
|
groups.SpecialKey = { fg = c.neutral_700 }
|
|
|
|
-- Messages
|
|
groups.ErrorMsg = { fg = c.error }
|
|
groups.WarningMsg = { fg = c.warning }
|
|
groups.MoreMsg = { fg = c.info }
|
|
groups.Question = { fg = c.accent }
|
|
groups.Title = { fg = c.accent, bold = true }
|
|
groups.Directory = { fg = c.func }
|
|
groups.Conceal = { fg = c.fg_dark }
|
|
groups.MatchParen = { fg = c.accent, bold = true, underline = true }
|
|
groups.QuickFixLine = { bg = c.bg_visual }
|
|
|
|
-- Float border
|
|
groups.FloatBorder = { fg = c.border_highlight, bg = c.bg_float }
|
|
groups.FloatTitle = { fg = c.accent, bg = c.bg_float, bold = true }
|
|
|
|
-- ============================================================
|
|
-- Standard syntax groups (:h group-name)
|
|
-- ============================================================
|
|
groups.Comment = { fg = c.comment, italic = true }
|
|
groups.Constant = { fg = c.constant }
|
|
groups.String = { fg = c.string }
|
|
groups.Character = { fg = c.string }
|
|
groups.Number = { fg = c.number }
|
|
groups.Boolean = { fg = c.boolean }
|
|
groups.Float = { fg = c.number }
|
|
|
|
groups.Identifier = { fg = c.variable }
|
|
groups.Function = { fg = c.func }
|
|
|
|
groups.Statement = { fg = c.keyword }
|
|
groups.Conditional = { fg = c.keyword }
|
|
groups.Repeat = { fg = c.keyword }
|
|
groups.Label = { fg = c.keyword }
|
|
groups.Operator = { fg = c.operator }
|
|
groups.Keyword = { fg = c.keyword }
|
|
groups.Exception = { fg = c.keyword }
|
|
|
|
groups.PreProc = { fg = c.preproc }
|
|
groups.Include = { fg = c.keyword }
|
|
groups.Define = { fg = c.keyword }
|
|
groups.Macro = { fg = c.preproc }
|
|
groups.PreCondit = { fg = c.preproc }
|
|
|
|
groups.Type = { fg = c.type }
|
|
groups.StorageClass = { fg = c.keyword }
|
|
groups.Structure = { fg = c.type }
|
|
groups.Typedef = { fg = c.type }
|
|
|
|
groups.Special = { fg = c.special }
|
|
groups.SpecialChar = { fg = c.escape }
|
|
groups.Tag = { fg = c.tag }
|
|
groups.Delimiter = { fg = c.punctuation }
|
|
groups.SpecialComment = { fg = c.comment, bold = true }
|
|
groups.Debug = { fg = c.warning }
|
|
|
|
groups.Underlined = { underline = true }
|
|
groups.Bold = { bold = true }
|
|
groups.Italic = { italic = true }
|
|
groups.Ignore = { fg = c.bg }
|
|
groups.Error = { fg = c.error }
|
|
groups.Todo = { fg = c.bg, bg = c.accent, bold = true }
|
|
|
|
-- ============================================================
|
|
-- Treesitter highlights (@groups)
|
|
-- ============================================================
|
|
|
|
-- Identifiers
|
|
groups["@variable"] = { fg = c.variable }
|
|
groups["@variable.builtin"] = { fg = c.builtin, italic = true }
|
|
groups["@variable.parameter"] = { fg = c.parameter }
|
|
groups["@variable.parameter.builtin"] = { fg = c.parameter, italic = true }
|
|
groups["@variable.member"] = { fg = c.property }
|
|
|
|
groups["@constant"] = { fg = c.constant }
|
|
groups["@constant.builtin"] = { fg = c.constant, bold = true }
|
|
groups["@constant.macro"] = { fg = c.preproc }
|
|
|
|
groups["@module"] = { fg = c.namespace }
|
|
groups["@module.builtin"] = { fg = c.namespace, italic = true }
|
|
groups["@label"] = { fg = c.keyword }
|
|
|
|
-- Literals
|
|
groups["@string"] = { fg = c.string }
|
|
groups["@string.documentation"] = { fg = c.comment }
|
|
groups["@string.regex"] = { fg = c.regex }
|
|
groups["@string.escape"] = { fg = c.escape }
|
|
groups["@string.special"] = { fg = c.special }
|
|
groups["@string.special.symbol"] = { fg = c.special }
|
|
groups["@string.special.url"] = { fg = c.info, underline = true }
|
|
groups["@string.special.path"] = { fg = c.info }
|
|
|
|
groups["@character"] = { fg = c.string }
|
|
groups["@character.special"] = { fg = c.escape }
|
|
|
|
groups["@boolean"] = { fg = c.boolean }
|
|
groups["@number"] = { fg = c.number }
|
|
groups["@number.float"] = { fg = c.number }
|
|
|
|
-- Types
|
|
groups["@type"] = { fg = c.type }
|
|
groups["@type.builtin"] = { fg = c.type, italic = true }
|
|
groups["@type.definition"] = { fg = c.type }
|
|
groups["@type.qualifier"] = { fg = c.keyword }
|
|
|
|
groups["@attribute"] = { fg = c.attribute }
|
|
groups["@attribute.builtin"] = { fg = c.attribute, italic = true }
|
|
groups["@property"] = { fg = c.property }
|
|
|
|
-- Functions
|
|
groups["@function"] = { fg = c.func }
|
|
groups["@function.builtin"] = { fg = c.builtin }
|
|
groups["@function.call"] = { fg = c.func }
|
|
groups["@function.macro"] = { fg = c.preproc }
|
|
groups["@function.method"] = { fg = c.func }
|
|
groups["@function.method.call"] = { fg = c.func }
|
|
|
|
groups["@constructor"] = { fg = c.type }
|
|
groups["@operator"] = { fg = c.operator }
|
|
|
|
-- Keywords
|
|
groups["@keyword"] = { fg = c.keyword }
|
|
groups["@keyword.coroutine"] = { fg = c.keyword, italic = true }
|
|
groups["@keyword.function"] = { fg = c.keyword }
|
|
groups["@keyword.operator"] = { fg = c.operator }
|
|
groups["@keyword.import"] = { fg = c.keyword }
|
|
groups["@keyword.type"] = { fg = c.keyword }
|
|
groups["@keyword.modifier"] = { fg = c.keyword }
|
|
groups["@keyword.repeat"] = { fg = c.keyword }
|
|
groups["@keyword.return"] = { fg = c.keyword }
|
|
groups["@keyword.debug"] = { fg = c.warning }
|
|
groups["@keyword.exception"] = { fg = c.keyword }
|
|
groups["@keyword.conditional"] = { fg = c.keyword }
|
|
groups["@keyword.conditional.ternary"] = { fg = c.operator }
|
|
groups["@keyword.directive"] = { fg = c.preproc }
|
|
groups["@keyword.directive.define"] = { fg = c.preproc }
|
|
|
|
-- Punctuation
|
|
groups["@punctuation.delimiter"] = { fg = c.punctuation }
|
|
groups["@punctuation.bracket"] = { fg = c.punctuation }
|
|
groups["@punctuation.special"] = { fg = c.special }
|
|
|
|
-- Comments
|
|
groups["@comment"] = { fg = c.comment, italic = true }
|
|
groups["@comment.documentation"] = { fg = c.comment }
|
|
groups["@comment.error"] = { fg = c.error }
|
|
groups["@comment.warning"] = { fg = c.warning }
|
|
groups["@comment.todo"] = { fg = c.bg, bg = c.accent, bold = true }
|
|
groups["@comment.note"] = { fg = c.bg, bg = c.info, bold = true }
|
|
|
|
-- Markup (markdown, html, etc.)
|
|
groups["@markup.strong"] = { bold = true }
|
|
groups["@markup.italic"] = { italic = true }
|
|
groups["@markup.strikethrough"] = { strikethrough = true }
|
|
groups["@markup.underline"] = { underline = true }
|
|
groups["@markup.heading"] = { fg = c.accent, bold = true }
|
|
groups["@markup.heading.1"] = { fg = c.accent, bold = true }
|
|
groups["@markup.heading.2"] = { fg = c.func, bold = true }
|
|
groups["@markup.heading.3"] = { fg = c.type, bold = true }
|
|
groups["@markup.heading.4"] = { fg = c.string, bold = true }
|
|
groups["@markup.heading.5"] = { fg = c.constant, bold = true }
|
|
groups["@markup.heading.6"] = { fg = c.comment, bold = true }
|
|
groups["@markup.quote"] = { fg = c.fg_dark, italic = true }
|
|
groups["@markup.math"] = { fg = c.number }
|
|
groups["@markup.environment"] = { fg = c.preproc }
|
|
groups["@markup.link"] = { fg = c.info, underline = true }
|
|
groups["@markup.link.label"] = { fg = c.info }
|
|
groups["@markup.link.url"] = { fg = c.info, underline = true }
|
|
groups["@markup.raw"] = { fg = c.string }
|
|
groups["@markup.raw.block"] = { fg = c.fg }
|
|
groups["@markup.list"] = { fg = c.accent }
|
|
groups["@markup.list.checked"] = { fg = c.git_add }
|
|
groups["@markup.list.unchecked"] = { fg = c.fg_dark }
|
|
|
|
-- Tags (HTML, JSX, etc.)
|
|
groups["@tag"] = { fg = c.tag }
|
|
groups["@tag.builtin"] = { fg = c.tag, bold = true }
|
|
groups["@tag.attribute"] = { fg = c.attribute }
|
|
groups["@tag.delimiter"] = { fg = c.punctuation }
|
|
|
|
-- ============================================================
|
|
-- LSP Semantic Tokens
|
|
-- ============================================================
|
|
groups["@lsp.type.boolean"] = { link = "@boolean" }
|
|
groups["@lsp.type.builtinType"] = { link = "@type.builtin" }
|
|
groups["@lsp.type.comment"] = { link = "@comment" }
|
|
groups["@lsp.type.decorator"] = { link = "@attribute" }
|
|
groups["@lsp.type.deriveHelper"] = { link = "@attribute" }
|
|
groups["@lsp.type.enum"] = { link = "@type" }
|
|
groups["@lsp.type.enumMember"] = { link = "@constant" }
|
|
groups["@lsp.type.escapeSequence"] = { link = "@string.escape" }
|
|
groups["@lsp.type.formatSpecifier"] = { link = "@punctuation.special" }
|
|
groups["@lsp.type.function"] = { link = "@function" }
|
|
groups["@lsp.type.generic"] = { link = "@variable" }
|
|
groups["@lsp.type.interface"] = { fg = c.type }
|
|
groups["@lsp.type.keyword"] = { link = "@keyword" }
|
|
groups["@lsp.type.lifetime"] = { link = "@keyword.modifier" }
|
|
groups["@lsp.type.method"] = { link = "@function.method" }
|
|
groups["@lsp.type.namespace"] = { link = "@module" }
|
|
groups["@lsp.type.number"] = { link = "@number" }
|
|
groups["@lsp.type.operator"] = { link = "@operator" }
|
|
groups["@lsp.type.parameter"] = { link = "@variable.parameter" }
|
|
groups["@lsp.type.property"] = { link = "@property" }
|
|
groups["@lsp.type.selfKeyword"] = { fg = c.builtin, italic = true }
|
|
groups["@lsp.type.selfTypeKeyword"] = { link = "@type.builtin" }
|
|
groups["@lsp.type.string"] = { link = "@string" }
|
|
groups["@lsp.type.typeAlias"] = { link = "@type.definition" }
|
|
groups["@lsp.type.typeParameter"] = { fg = c.type }
|
|
groups["@lsp.type.unresolvedReference"] = { undercurl = true, sp = c.error }
|
|
groups["@lsp.type.variable"] = {} -- defer to treesitter
|
|
groups["@lsp.typemod.class.defaultLibrary"] = { link = "@type.builtin" }
|
|
groups["@lsp.typemod.enum.defaultLibrary"] = { link = "@type.builtin" }
|
|
groups["@lsp.typemod.enumMember.defaultLibrary"] = { link = "@constant.builtin" }
|
|
groups["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" }
|
|
groups["@lsp.typemod.keyword.async"] = { link = "@keyword.coroutine" }
|
|
groups["@lsp.typemod.keyword.injected"] = { link = "@keyword" }
|
|
groups["@lsp.typemod.macro.defaultLibrary"] = { link = "@function.builtin" }
|
|
groups["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" }
|
|
groups["@lsp.typemod.operator.injected"] = { link = "@operator" }
|
|
groups["@lsp.typemod.string.injected"] = { link = "@string" }
|
|
groups["@lsp.typemod.struct.defaultLibrary"] = { link = "@type.builtin" }
|
|
groups["@lsp.typemod.type.defaultLibrary"] = { link = "@type.builtin" }
|
|
groups["@lsp.typemod.typeAlias.defaultLibrary"] = { link = "@type.builtin" }
|
|
groups["@lsp.typemod.variable.callable"] = { link = "@function" }
|
|
groups["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" }
|
|
groups["@lsp.typemod.variable.injected"] = { link = "@variable" }
|
|
groups["@lsp.typemod.variable.static"] = { link = "@constant" }
|
|
|
|
-- ============================================================
|
|
-- Diagnostics
|
|
-- ============================================================
|
|
groups.DiagnosticError = { fg = c.error }
|
|
groups.DiagnosticWarn = { fg = c.warning }
|
|
groups.DiagnosticInfo = { fg = c.info }
|
|
groups.DiagnosticHint = { fg = c.hint }
|
|
groups.DiagnosticOk = { fg = c.git_add }
|
|
groups.DiagnosticUnderlineError = { undercurl = true, sp = c.error }
|
|
groups.DiagnosticUnderlineWarn = { undercurl = true, sp = c.warning }
|
|
groups.DiagnosticUnderlineInfo = { undercurl = true, sp = c.info }
|
|
groups.DiagnosticUnderlineHint = { undercurl = true, sp = c.hint }
|
|
groups.DiagnosticUnderlineOk = { undercurl = true, sp = c.git_add }
|
|
groups.DiagnosticVirtualTextError = { fg = c.error, bg = c.danger_bg }
|
|
groups.DiagnosticVirtualTextWarn = { fg = c.warning, bg = c.sticky_bg }
|
|
groups.DiagnosticVirtualTextInfo = { fg = c.info, bg = c.info_bg }
|
|
groups.DiagnosticVirtualTextHint = { fg = c.hint, bg = c.success_bg }
|
|
|
|
-- ============================================================
|
|
-- Diff
|
|
-- ============================================================
|
|
groups.DiffAdd = { bg = c.diff_add }
|
|
groups.DiffChange = { bg = c.diff_change }
|
|
groups.DiffDelete = { bg = c.diff_delete }
|
|
groups.DiffText = { bg = c.diff_text }
|
|
groups.diffAdded = { fg = c.git_add }
|
|
groups.diffRemoved = { fg = c.git_delete }
|
|
groups.diffChanged = { fg = c.git_change }
|
|
groups.diffOldFile = { fg = c.git_delete }
|
|
groups.diffNewFile = { fg = c.git_add }
|
|
groups.diffFile = { fg = c.info }
|
|
groups.diffLine = { fg = c.comment }
|
|
groups.diffIndexLine = { fg = c.comment }
|
|
|
|
-- ============================================================
|
|
-- Git Signs
|
|
-- ============================================================
|
|
groups.GitSignsAdd = { fg = c.git_add }
|
|
groups.GitSignsChange = { fg = c.git_change }
|
|
groups.GitSignsDelete = { fg = c.git_delete }
|
|
groups.GitSignsAddNr = { fg = c.git_add }
|
|
groups.GitSignsChangeNr = { fg = c.git_change }
|
|
groups.GitSignsDeleteNr = { fg = c.git_delete }
|
|
groups.GitSignsAddLn = { bg = c.diff_add }
|
|
groups.GitSignsChangeLn = { bg = c.diff_change }
|
|
groups.GitSignsDeleteLn = { bg = c.diff_delete }
|
|
groups.GitSignsCurrentLineBlame = { fg = c.fg_gutter, italic = true }
|
|
|
|
-- ============================================================
|
|
-- Telescope
|
|
-- ============================================================
|
|
groups.TelescopeNormal = { fg = c.fg, bg = c.bg_float }
|
|
groups.TelescopeBorder = { fg = c.border_highlight, bg = c.bg_float }
|
|
groups.TelescopeTitle = { fg = c.accent, bold = true }
|
|
groups.TelescopePromptNormal = { fg = c.fg_bright, bg = c.bg_popup }
|
|
groups.TelescopePromptBorder = { fg = c.accent, bg = c.bg_popup }
|
|
groups.TelescopePromptTitle = { fg = c.bg, bg = c.accent, bold = true }
|
|
groups.TelescopePromptPrefix = { fg = c.accent }
|
|
groups.TelescopePreviewTitle = { fg = c.bg, bg = c.info, bold = true }
|
|
groups.TelescopeResultsTitle = { fg = c.bg, bg = c.hint, bold = true }
|
|
groups.TelescopeSelection = { bg = c.bg_visual }
|
|
groups.TelescopeSelectionCaret = { fg = c.accent }
|
|
groups.TelescopeMatching = { fg = c.accent, bold = true }
|
|
|
|
-- ============================================================
|
|
-- NvimTree / Neo-tree
|
|
-- ============================================================
|
|
groups.NvimTreeNormal = { fg = c.fg_sidebar, bg = c.bg_sidebar }
|
|
groups.NvimTreeNormalNC = { fg = c.fg_sidebar, bg = c.bg_sidebar }
|
|
groups.NvimTreeRootFolder = { fg = c.accent, bold = true }
|
|
groups.NvimTreeFolderIcon = { fg = c.func }
|
|
groups.NvimTreeFolderName = { fg = c.func }
|
|
groups.NvimTreeOpenedFolderName = { fg = c.func, bold = true }
|
|
groups.NvimTreeGitDirty = { fg = c.git_change }
|
|
groups.NvimTreeGitNew = { fg = c.git_add }
|
|
groups.NvimTreeGitDeleted = { fg = c.git_delete }
|
|
groups.NvimTreeSpecialFile = { fg = c.special, underline = true }
|
|
groups.NvimTreeIndentMarker = { fg = c.border }
|
|
groups.NvimTreeWinSeparator = { fg = c.border, bg = c.bg_sidebar }
|
|
|
|
groups.NeoTreeNormal = { fg = c.fg_sidebar, bg = c.bg_sidebar }
|
|
groups.NeoTreeNormalNC = { fg = c.fg_sidebar, bg = c.bg_sidebar }
|
|
groups.NeoTreeDimText = { fg = c.fg_gutter }
|
|
groups.NeoTreeTitleBar = { fg = c.bg, bg = c.accent }
|
|
|
|
-- ============================================================
|
|
-- Indent Blankline
|
|
-- ============================================================
|
|
groups.IndentBlanklineChar = { fg = c.neutral_800, nocombine = true }
|
|
groups.IndentBlanklineContextChar = { fg = c.accent, nocombine = true }
|
|
groups.IblIndent = { fg = c.neutral_800, nocombine = true }
|
|
groups.IblScope = { fg = c.accent, nocombine = true }
|
|
|
|
-- ============================================================
|
|
-- Which Key
|
|
-- ============================================================
|
|
groups.WhichKey = { fg = c.accent }
|
|
groups.WhichKeyGroup = { fg = c.func }
|
|
groups.WhichKeyDesc = { fg = c.fg }
|
|
groups.WhichKeySeparator = { fg = c.comment }
|
|
groups.WhichKeyValue = { fg = c.fg_dark }
|
|
|
|
-- ============================================================
|
|
-- Dashboard / Alpha
|
|
-- ============================================================
|
|
groups.DashboardHeader = { fg = c.accent }
|
|
groups.DashboardCenter = { fg = c.func }
|
|
groups.DashboardShortCut = { fg = c.keyword }
|
|
groups.DashboardFooter = { fg = c.comment, italic = true }
|
|
|
|
-- ============================================================
|
|
-- Notify
|
|
-- ============================================================
|
|
groups.NotifyERRORBorder = { fg = c.error }
|
|
groups.NotifyERRORIcon = { fg = c.error }
|
|
groups.NotifyERRORTitle = { fg = c.error }
|
|
groups.NotifyWARNBorder = { fg = c.warning }
|
|
groups.NotifyWARNIcon = { fg = c.warning }
|
|
groups.NotifyWARNTitle = { fg = c.warning }
|
|
groups.NotifyINFOBorder = { fg = c.info }
|
|
groups.NotifyINFOIcon = { fg = c.info }
|
|
groups.NotifyINFOTitle = { fg = c.info }
|
|
groups.NotifyDEBUGBorder = { fg = c.comment }
|
|
groups.NotifyDEBUGIcon = { fg = c.comment }
|
|
groups.NotifyDEBUGTitle = { fg = c.comment }
|
|
groups.NotifyTRACEBorder = { fg = c.special }
|
|
groups.NotifyTRACEIcon = { fg = c.special }
|
|
groups.NotifyTRACETitle = { fg = c.special }
|
|
|
|
-- ============================================================
|
|
-- Noice
|
|
-- ============================================================
|
|
groups.NoiceCmdlinePopup = { fg = c.fg, bg = c.bg_float }
|
|
groups.NoiceCmdlinePopupBorder = { fg = c.accent }
|
|
groups.NoiceCmdlineIcon = { fg = c.accent }
|
|
groups.NoiceConfirm = { fg = c.fg, bg = c.bg_float }
|
|
groups.NoiceConfirmBorder = { fg = c.accent }
|
|
|
|
-- ============================================================
|
|
-- Cmp (completion)
|
|
-- ============================================================
|
|
groups.CmpItemAbbr = { fg = c.fg }
|
|
groups.CmpItemAbbrDeprecated = { fg = c.fg_dark, strikethrough = true }
|
|
groups.CmpItemAbbrMatch = { fg = c.accent, bold = true }
|
|
groups.CmpItemAbbrMatchFuzzy = { fg = c.accent, bold = true }
|
|
groups.CmpItemKind = { fg = c.func }
|
|
groups.CmpItemMenu = { fg = c.fg_dark }
|
|
|
|
groups.CmpItemKindClass = { fg = c.type }
|
|
groups.CmpItemKindColor = { fg = c.special }
|
|
groups.CmpItemKindConstant = { fg = c.constant }
|
|
groups.CmpItemKindConstructor = { fg = c.type }
|
|
groups.CmpItemKindEnum = { fg = c.type }
|
|
groups.CmpItemKindEnumMember = { fg = c.constant }
|
|
groups.CmpItemKindEvent = { fg = c.special }
|
|
groups.CmpItemKindField = { fg = c.property }
|
|
groups.CmpItemKindFile = { fg = c.fg }
|
|
groups.CmpItemKindFolder = { fg = c.func }
|
|
groups.CmpItemKindFunction = { fg = c.func }
|
|
groups.CmpItemKindInterface = { fg = c.type }
|
|
groups.CmpItemKindKeyword = { fg = c.keyword }
|
|
groups.CmpItemKindMethod = { fg = c.func }
|
|
groups.CmpItemKindModule = { fg = c.namespace }
|
|
groups.CmpItemKindOperator = { fg = c.operator }
|
|
groups.CmpItemKindProperty = { fg = c.property }
|
|
groups.CmpItemKindReference = { fg = c.constant }
|
|
groups.CmpItemKindSnippet = { fg = c.special }
|
|
groups.CmpItemKindStruct = { fg = c.type }
|
|
groups.CmpItemKindText = { fg = c.fg }
|
|
groups.CmpItemKindTypeParameter = { fg = c.type }
|
|
groups.CmpItemKindUnit = { fg = c.constant }
|
|
groups.CmpItemKindValue = { fg = c.constant }
|
|
groups.CmpItemKindVariable = { fg = c.variable }
|
|
|
|
-- ============================================================
|
|
-- Blink.cmp
|
|
-- ============================================================
|
|
groups.BlinkCmpMenu = { fg = c.fg, bg = c.bg_popup }
|
|
groups.BlinkCmpMenuBorder = { fg = c.border_highlight, bg = c.bg_popup }
|
|
groups.BlinkCmpMenuSelection = { bg = c.bg_visual }
|
|
groups.BlinkCmpLabel = { fg = c.fg }
|
|
groups.BlinkCmpLabelMatch = { fg = c.accent, bold = true }
|
|
groups.BlinkCmpKind = { fg = c.func }
|
|
|
|
-- ============================================================
|
|
-- Trouble
|
|
-- ============================================================
|
|
groups.TroubleNormal = { fg = c.fg, bg = c.bg_sidebar }
|
|
groups.TroubleNormalNC = { fg = c.fg_sidebar, bg = c.bg_sidebar }
|
|
|
|
-- ============================================================
|
|
-- Lazy
|
|
-- ============================================================
|
|
groups.LazyButton = { fg = c.fg, bg = c.bg_popup }
|
|
groups.LazyButtonActive = { fg = c.bg, bg = c.accent }
|
|
groups.LazyH1 = { fg = c.bg, bg = c.accent, bold = true }
|
|
groups.LazySpecial = { fg = c.accent }
|
|
groups.LazyProgressDone = { fg = c.accent }
|
|
groups.LazyProgressTodo = { fg = c.fg_gutter }
|
|
|
|
-- ============================================================
|
|
-- Mason
|
|
-- ============================================================
|
|
groups.MasonNormal = { fg = c.fg, bg = c.bg_float }
|
|
groups.MasonHeader = { fg = c.bg, bg = c.accent, bold = true }
|
|
groups.MasonHighlight = { fg = c.accent }
|
|
groups.MasonHighlightBlock = { fg = c.bg, bg = c.accent }
|
|
groups.MasonMutedBlock = { fg = c.fg, bg = c.bg_popup }
|
|
|
|
-- ============================================================
|
|
-- Mini plugins
|
|
-- ============================================================
|
|
groups.MiniStatuslineFilename = { fg = c.fg, bg = c.bg_statusline }
|
|
groups.MiniStatuslineDevinfo = { fg = c.fg_dark, bg = c.bg_highlight }
|
|
groups.MiniStatuslineModeNormal = { fg = c.bg, bg = c.accent, bold = true }
|
|
groups.MiniStatuslineModeInsert = { fg = c.bg, bg = c.hint, bold = true }
|
|
groups.MiniStatuslineModeVisual = { fg = c.bg, bg = c.special, bold = true }
|
|
groups.MiniStatuslineModeReplace = { fg = c.bg, bg = c.error, bold = true }
|
|
groups.MiniStatuslineModeCommand = { fg = c.bg, bg = c.warning, bold = true }
|
|
|
|
groups.MiniIndentscopeSymbol = { fg = c.accent }
|
|
|
|
groups.MiniCursorword = { bg = c.bg_visual }
|
|
groups.MiniCursorwordCurrent = { bg = c.bg_visual }
|
|
|
|
-- ============================================================
|
|
-- Bufferline
|
|
-- ============================================================
|
|
groups.BufferLineIndicatorSelected = { fg = c.accent }
|
|
groups.BufferLineFill = { bg = c.bg_dark }
|
|
|
|
-- ============================================================
|
|
-- Snacks
|
|
-- ============================================================
|
|
groups.SnacksDashboardHeader = { fg = c.accent }
|
|
groups.SnacksDashboardFooter = { fg = c.comment, italic = true }
|
|
groups.SnacksDashboardIcon = { fg = c.func }
|
|
groups.SnacksDashboardKey = { fg = c.accent }
|
|
groups.SnacksDashboardDesc = { fg = c.fg }
|
|
groups.SnacksNotifierInfo = { fg = c.info }
|
|
groups.SnacksNotifierWarn = { fg = c.warning }
|
|
groups.SnacksNotifierError = { fg = c.error }
|
|
|
|
return groups
|
|
end
|
|
|
|
return M
|