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