nvim/lua/paper-tonic-modern/groups/editor.lua

142 lines
5.7 KiB
Lua

-- 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',
}