298 lines
13 KiB
Lua
298 lines
13 KiB
Lua
-- Paper Tonic Modern - TreeSitter Highlight Groups
|
|
-- Modern @* highlight groups for TreeSitter
|
|
|
|
local c = require('paper-tonic-modern.colors')
|
|
|
|
return {
|
|
-- ============================================================================
|
|
-- Core TreeSitter Groups
|
|
-- ============================================================================
|
|
|
|
['@variable'] = { fg = c.primary_weak },
|
|
['@variable.builtin'] = { fg = c.primary, bold = true },
|
|
['@variable.parameter'] = { fg = c.fg },
|
|
['@variable.member'] = { fg = c.primary_weak },
|
|
|
|
['@constant'] = { fg = c.fg_strong, italic = true },
|
|
['@constant.builtin'] = { fg = c.fg_strong, italic = true, bold = true },
|
|
['@constant.macro'] = { fg = c.fg, bold = true },
|
|
|
|
['@module'] = { fg = c.primary },
|
|
['@label'] = { fg = c.fg_stronger, bold = true },
|
|
|
|
-- ============================================================================
|
|
-- Literals
|
|
-- ============================================================================
|
|
|
|
['@string'] = { fg = c.fg_strong, italic = true },
|
|
['@string.documentation'] = { fg = c.fg_weak, italic = true },
|
|
['@string.regex'] = { fg = c.fg_strong, bold = true },
|
|
['@string.escape'] = { fg = c.primary_stronger, bold = true },
|
|
['@string.special'] = { fg = c.primary_stronger },
|
|
['@string.special.symbol'] = { fg = c.primary },
|
|
|
|
['@character'] = '@string',
|
|
['@character.special'] = '@string.escape',
|
|
|
|
['@number'] = { fg = c.fg_strong, italic = true },
|
|
['@number.float'] = '@number',
|
|
|
|
['@boolean'] = { fg = c.fg_strong, italic = true },
|
|
|
|
-- ============================================================================
|
|
-- Functions
|
|
-- ============================================================================
|
|
|
|
['@function'] = { fg = c.primary_strong, bold = true },
|
|
['@function.builtin'] = { fg = c.primary_stronger },
|
|
['@function.call'] = '@function',
|
|
['@function.macro'] = { fg = c.fg, bold = true },
|
|
|
|
['@function.method'] = '@function',
|
|
['@function.method.call'] = '@function',
|
|
|
|
['@constructor'] = { fg = c.primary, bold = true },
|
|
|
|
-- ============================================================================
|
|
-- Keywords
|
|
-- ============================================================================
|
|
|
|
['@keyword'] = { fg = c.fg_weaker, bold = true },
|
|
['@keyword.function'] = { fg = c.primary, bold = true },
|
|
['@keyword.operator'] = { fg = c.fg, bold = true },
|
|
['@keyword.return'] = { fg = c.fg_strong, bold = true },
|
|
['@keyword.conditional'] = { fg = c.fg_strong, bold = true },
|
|
['@keyword.repeat'] = '@keyword.conditional',
|
|
['@keyword.import'] = { fg = c.fg_weak, bold = true },
|
|
['@keyword.exception'] = { fg = c.fg_exception, bold = true },
|
|
|
|
-- ============================================================================
|
|
-- Operators & Punctuation
|
|
-- ============================================================================
|
|
|
|
['@operator'] = { fg = c.fg, bold = true },
|
|
|
|
['@punctuation.delimiter'] = { fg = c.fg_weaker },
|
|
['@punctuation.bracket'] = { fg = c.fg_weaker },
|
|
['@punctuation.special'] = { fg = c.primary_stronger },
|
|
|
|
-- ============================================================================
|
|
-- Types
|
|
-- ============================================================================
|
|
|
|
['@type'] = { fg = c.primary, bold = true },
|
|
['@type.builtin'] = { fg = c.primary, bold = true },
|
|
['@type.definition'] = '@type',
|
|
['@type.qualifier'] = { fg = c.primary },
|
|
|
|
['@attribute'] = { fg = c.fg_weak },
|
|
['@property'] = { fg = c.primary_weak },
|
|
|
|
-- ============================================================================
|
|
-- Identifiers
|
|
-- ============================================================================
|
|
|
|
['@variable.parameter'] = { fg = c.fg },
|
|
['@variable.member'] = { fg = c.primary_weak },
|
|
|
|
-- ============================================================================
|
|
-- Text & Comments
|
|
-- ============================================================================
|
|
|
|
['@comment'] = { fg = c.fg_weaker, italic = true, bold = true },
|
|
['@comment.documentation'] = { fg = c.fg_weak, italic = true },
|
|
['@comment.error'] = { fg = c.alert_strong, bold = true },
|
|
['@comment.warning'] = { fg = c.alert, bold = true },
|
|
['@comment.todo'] = { fg = c.alert_strong },
|
|
['@comment.note'] = { fg = c.alert_weak },
|
|
|
|
-- ============================================================================
|
|
-- Markup (Markdown, etc.)
|
|
-- ============================================================================
|
|
|
|
['@markup.strong'] = { bold = true },
|
|
['@markup.italic'] = { italic = true },
|
|
['@markup.underline'] = { underline = true },
|
|
['@markup.strike'] = { strikethrough = true },
|
|
|
|
['@markup.heading'] = { fg = c.primary_strong, bold = true },
|
|
['@markup.heading.1'] = { fg = c.primary_strong, bold = true },
|
|
['@markup.heading.2'] = { fg = c.primary, bold = true },
|
|
['@markup.heading.3'] = { fg = c.primary_weak, bold = true },
|
|
['@markup.heading.4'] = { fg = c.primary_weak },
|
|
['@markup.heading.5'] = { fg = c.primary_weak },
|
|
['@markup.heading.6'] = { fg = c.primary_weak },
|
|
|
|
['@markup.link'] = { fg = c.primary },
|
|
['@markup.link.label'] = { fg = c.primary },
|
|
['@markup.link.url'] = { fg = c.c3, underline = true },
|
|
|
|
['@markup.raw'] = { fg = c.fg_strong },
|
|
['@markup.raw.block'] = '@markup.raw',
|
|
|
|
['@markup.list'] = { fg = c.fg_strong },
|
|
['@markup.list.checked'] = { fg = c.success },
|
|
['@markup.list.unchecked'] = { fg = c.fg_weak },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: CSS (Green - c2)
|
|
-- ============================================================================
|
|
|
|
['@property.css'] = { fg = c.primary_weak },
|
|
['@type.css'] = { fg = c.c2 }, -- Tag selectors
|
|
['@string.css'] = { fg = c.fg, bold = true },
|
|
['@number.css'] = { fg = c.fg, bold = true },
|
|
['@function.css'] = { fg = c.fg_strong },
|
|
['@operator.css'] = 'Noise',
|
|
|
|
-- CSS-specific TreeSitter captures
|
|
['@variable.css'] = { fg = c.c2_weak }, -- CSS variables (--custom-property)
|
|
['@constant.css'] = { fg = c.fg_strong },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: SCSS/Sass (Green - c2)
|
|
-- ============================================================================
|
|
|
|
['@property.scss'] = { fg = c.primary_weak },
|
|
['@type.scss'] = { fg = c.c2 },
|
|
['@variable.scss'] = { fg = c.c2_weak }, -- SCSS variables ($variable)
|
|
['@function.scss'] = { fg = c.fg_strong },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: HTML (Blue - c3)
|
|
-- ============================================================================
|
|
|
|
['@tag.html'] = { fg = c.c3 },
|
|
['@tag.attribute.html'] = { fg = c.fg_weak },
|
|
['@tag.delimiter.html'] = { fg = c.c3 },
|
|
['@string.html'] = { fg = c.fg_strong },
|
|
['@constant.builtin.html'] = { fg = c.c3 }, -- DOCTYPE, etc.
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: PHP (Primary - brownish-red)
|
|
-- ============================================================================
|
|
|
|
['@variable.php'] = { fg = c.primary_weak },
|
|
['@variable.builtin.php'] = { fg = c.primary, bold = true }, -- $this, $GLOBALS, etc.
|
|
['@function.php'] = { fg = c.primary_strong, bold = true },
|
|
['@function.method.php'] = { fg = c.primary_strong, bold = true },
|
|
['@keyword.php'] = { fg = c.fg_weaker, bold = true },
|
|
['@keyword.function.php'] = { fg = c.primary, bold = true },
|
|
['@type.php'] = { fg = c.primary, bold = true },
|
|
['@constant.php'] = { fg = c.fg_strong, italic = true },
|
|
['@constant.builtin.php'] = { fg = c.fg_strong, italic = true, bold = true },
|
|
['@property.php'] = { fg = c.primary_weak },
|
|
['@variable.member.php'] = { fg = c.primary_weak },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: JavaScript/TypeScript (Primary - brownish-red)
|
|
-- ============================================================================
|
|
|
|
['@variable.javascript'] = { fg = c.primary_weak },
|
|
['@variable.builtin.javascript'] = { fg = c.primary, bold = true }, -- this, arguments, etc.
|
|
['@function.javascript'] = { fg = c.primary_strong, bold = true },
|
|
['@keyword.javascript'] = { fg = c.fg_weaker, bold = true },
|
|
['@keyword.function.javascript'] = { fg = c.primary, bold = true },
|
|
['@property.javascript'] = { fg = c.primary_weak },
|
|
['@constant.builtin.javascript'] = { fg = c.fg_strong, italic = true, bold = true },
|
|
|
|
['@variable.typescript'] = { fg = c.primary_weak },
|
|
['@variable.builtin.typescript'] = { fg = c.primary, bold = true },
|
|
['@function.typescript'] = { fg = c.primary_strong, bold = true },
|
|
['@keyword.typescript'] = { fg = c.fg_weaker, bold = true },
|
|
['@keyword.function.typescript'] = { fg = c.primary, bold = true },
|
|
['@property.typescript'] = { fg = c.primary_weak },
|
|
['@type.typescript'] = { fg = c.primary, bold = true },
|
|
|
|
-- JSX/TSX (HTML in JS - keep HTML blue)
|
|
['@tag.tsx'] = { fg = c.c3 },
|
|
['@tag.attribute.tsx'] = { fg = c.fg_weak },
|
|
['@tag.delimiter.tsx'] = { fg = c.c3 },
|
|
|
|
['@tag.jsx'] = { fg = c.c3 },
|
|
['@tag.attribute.jsx'] = { fg = c.fg_weak },
|
|
['@tag.delimiter.jsx'] = { fg = c.c3 },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: Lua (Primary - brownish-red)
|
|
-- ============================================================================
|
|
|
|
['@variable.lua'] = { fg = c.primary_weak },
|
|
['@variable.builtin.lua'] = { fg = c.primary, bold = true }, -- _G, _VERSION, etc.
|
|
['@function.lua'] = { fg = c.primary_strong, bold = true },
|
|
['@keyword.lua'] = { fg = c.fg_weaker, bold = true },
|
|
['@keyword.function.lua'] = { fg = c.primary, bold = true },
|
|
['@property.lua'] = { fg = c.primary_weak },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: Markdown (Primary for structure)
|
|
-- ============================================================================
|
|
|
|
['@markup.heading.markdown'] = { fg = c.primary_strong, bold = true },
|
|
['@markup.heading.1.markdown'] = { fg = c.primary_strong, bold = true },
|
|
['@markup.heading.2.markdown'] = { fg = c.primary, bold = true },
|
|
['@markup.heading.3.markdown'] = { fg = c.primary_weak, bold = true },
|
|
['@markup.heading.4.markdown'] = { fg = c.primary_weak },
|
|
['@markup.heading.5.markdown'] = { fg = c.primary_weak },
|
|
['@markup.heading.6.markdown'] = { fg = c.primary_weak },
|
|
|
|
['@markup.link.markdown'] = { fg = c.primary },
|
|
['@markup.link.url.markdown'] = { fg = c.c3, underline = true },
|
|
['@markup.raw.markdown'] = { fg = c.fg_strong },
|
|
['@markup.raw.block.markdown'] = { fg = c.fg_strong },
|
|
|
|
-- Code blocks in markdown use their language colors
|
|
['@markup.raw.markdown_inline'] = { fg = c.fg_strong },
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: JSON (Neutral colors)
|
|
-- ============================================================================
|
|
|
|
['@property.json'] = { fg = c.primary_weak },
|
|
['@string.json'] = { fg = c.fg_strong, italic = true },
|
|
['@number.json'] = { fg = c.fg_strong, italic = true },
|
|
['@constant.builtin.json'] = { fg = c.fg_strong, italic = true }, -- true, false, null
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific: Bash/Shell (Primary - brownish-red)
|
|
-- ============================================================================
|
|
|
|
['@variable.bash'] = { fg = c.primary_weak },
|
|
['@variable.builtin.bash'] = { fg = c.primary, bold = true },
|
|
['@function.bash'] = { fg = c.primary_strong, bold = true },
|
|
['@function.builtin.bash'] = { fg = c.primary_stronger },
|
|
['@keyword.bash'] = { fg = c.fg_weaker, bold = true },
|
|
['@string.bash'] = { fg = c.fg_strong, italic = true },
|
|
|
|
-- ============================================================================
|
|
-- Template Languages (Magenta - c5)
|
|
-- ============================================================================
|
|
|
|
-- Twig/Jinja/Django template syntax
|
|
['@punctuation.special.twig'] = { fg = c.c5 },
|
|
['@keyword.twig'] = { fg = c.c5, bold = true },
|
|
['@function.twig'] = { fg = c.c5, bold = true },
|
|
|
|
['@punctuation.special.jinja'] = { fg = c.c5 },
|
|
['@keyword.jinja'] = { fg = c.c5, bold = true },
|
|
['@function.jinja'] = { fg = c.c5, bold = true },
|
|
|
|
-- ============================================================================
|
|
-- Diagnostics & Diffs
|
|
-- ============================================================================
|
|
|
|
['@diff.plus'] = { fg = c.success },
|
|
['@diff.minus'] = { fg = c.fail },
|
|
['@diff.delta'] = { fg = c.modified },
|
|
|
|
-- ============================================================================
|
|
-- Special
|
|
-- ============================================================================
|
|
|
|
['@none'] = {},
|
|
['@conceal'] = { fg = c.fg_weaker },
|
|
|
|
['@spell'] = {},
|
|
['@nospell'] = {},
|
|
}
|