-- Paper Tonic Modern - Editor Highlight Groups -- Base Vim/Neovim UI elements local c = require('paper-tonic-modern.colors') return { -- ============================================================================ -- Core Editor Elements -- ============================================================================ Normal = { fg = c.fg, bg = c.bg }, NormalFloat = { fg = c.fg, bg = c.NONE }, FloatBorder = { fg = c.fg_stronger, bg = c.NONE }, -- ============================================================================ -- Cursor & Line Highlighting -- ============================================================================ Cursor = { reverse = true }, CursorIM = 'Cursor', CursorLine = { bg = c.bg_hl }, CursorLineNr = { fg = c.fg_weak, bold = true }, CursorColumn = { bg = c.bg_hl }, -- ============================================================================ -- Line Numbers & Columns -- ============================================================================ LineNr = { fg = c.fg_weak }, SignColumn = { fg = c.NONE, bg = c.NONE }, ColorColumn = { bg = c.bg_hl_weak }, -- ============================================================================ -- Visual Selection & Search -- ============================================================================ Visual = { bg = c.bg_hl_special }, VisualNOS = { fg = c.fg_strong, bg = c.bg_hl_special, bold = true }, Search = { bg = c.bg_hl_special }, IncSearch = { reverse = true }, MatchParen = { bg = c.bg_hl_special_alt_strong, bold = true, underline = true, sp = c.fg_stronger }, -- ============================================================================ -- Status Line & Tab Line -- ============================================================================ StatusLine = { fg = c.fg, bg = c.bg_ui, italic = true }, StatusLineNC = { fg = c.fg_weaker, bg = c.bg_ui, italic = true }, StatusLineTerm = 'StatusLine', StatusLineTermNC = 'StatusLineNC', TabLine = 'StatusLineNC', TabLineFill = { fg = c.bg_ui, bg = c.bg_ui }, TabLineSel = 'StatusLine', -- ============================================================================ -- Window Separators & Misc UI -- ============================================================================ VertSplit = { fg = c.bg_hl_strong }, Title = { bold = true }, Directory = { fg = c.primary_weak, bold = true }, -- ============================================================================ -- Popup Menu (Completion) -- ============================================================================ Pmenu = { fg = c.fg, bg = c.bg_ui }, PmenuSel = { fg = c.fg_strong, bg = c.bg_ui, bold = true }, PmenuSbar = 'Pmenu', PmenuThumb = 'Pmenu', WildMenu = { fg = c.fg_strong, bg = c.bg_ui, bold = true }, -- ============================================================================ -- Folds -- ============================================================================ Folded = { fg = c.fg_strong, bold = true }, FoldColumn = { fg = c.fg_weak }, -- ============================================================================ -- Diffs -- ============================================================================ DiffAdd = { bg = c.bg_success }, DiffChange = { bg = c.bg_modified }, DiffDelete = { bg = c.bg_fail }, DiffText = { fg = c.fg_stronger, bg = c.bg_success }, -- ============================================================================ -- Spelling -- ============================================================================ SpellBad = { fg = c.alert_strong, bg = c.bg_error_weak }, SpellCap = { fg = c.alert, bg = c.bg_error_weak }, SpellLocal = { fg = c.alert_weak, bg = c.bg_error_weak }, SpellRare = { fg = c.alert_weak, bg = c.bg_error_weak }, -- ============================================================================ -- Messages & Prompts -- ============================================================================ ErrorMsg = { fg = c.alert, bold = true }, WarningMsg = { fg = c.alert, bold = true }, Question = { fg = c.question, bold = true }, ModeMsg = { fg = c.question }, MoreMsg = { fg = c.question }, -- ============================================================================ -- Special Characters & Whitespace -- ============================================================================ NonText = { fg = c.fg_weak }, EndOfBuffer = 'Comment', Whitespace = 'NonText', SpecialKey = 'SpecialChar', Conceal = 'Noise', -- ============================================================================ -- QuickFix & Location List -- ============================================================================ QuickFixLine = { bg = c.bg_hl_special_weak, bold = true }, -- Diagnostic severity highlighting in quickfix/location list -- These are custom syntax groups defined in autocmds.lua (using matchadd) -- Uses muted colors (similar tone to git/diff) - not the fluorescent editor diagnostic colors qfError = { fg = c.qf_error, bold = true }, -- "error" word (muted red) qfWarning = { fg = c.qf_warn, bold = true }, -- "warning" word (muted orange) qfInfo = { fg = c.qf_info, bold = true }, -- "info" word (muted blue) qfHint = { fg = c.qf_hint, bold = true }, -- "hint" word (lighter muted blue) qfNote = { fg = c.qf_hint, bold = true }, -- "note" word (same as hint) -- ============================================================================ -- Debug -- ============================================================================ debugPC = 'ColorColumn', debugBreakpoint = 'ErrorMsg', }