Initial Commit

This commit is contained in:
Henrik Hautakoski 2026-05-17 16:26:31 +02:00
commit 694515c168
16 changed files with 1325 additions and 0 deletions

View file

@ -0,0 +1,79 @@
local M = {}
---@param c Colors
function M.get(c)
return {
Normal = { fg = c.fg, bg = c.bg },
NormalNC = { fg = c.fg, bg = c.bg },
NormalFloat = { fg = c.fg, bg = c.bg_float },
FloatBorder = { fg = c.border, bg = c.bg_float },
FloatTitle = { fg = c.accent, bg = c.bg_float, bold = true },
WinBar = { fg = c.fg_dim, bg = c.none },
WinBarNC = { fg = c.fg_gutter, bg = c.none },
Cursor = { fg = c.bg, bg = c.fg },
lCursor = { link = "Cursor" },
CursorIM = { link = "Cursor" },
TermCursor = { link = "Cursor" },
TermCursorNC = { fg = c.bg, bg = c.fg_dim },
CursorLine = { bg = c.bg_cursorline },
CursorColumn = { link = "CursorLine" },
LineNr = { fg = c.fg_gutter },
CursorLineNr = { fg = c.fg_gutter_active, bold = true },
SignColumn = { fg = c.fg_gutter, bg = c.none },
FoldColumn = { fg = c.fg_gutter, bg = c.none },
Search = { fg = c.fg_bright, bg = c.bg_search },
IncSearch = { fg = c.bg, bg = c.bg_search },
CurSearch = { link = "IncSearch" },
Substitute = { fg = c.bg, bg = c.operator },
Visual = { bg = c.bg_selection },
VisualNOS = { link = "Visual" },
StatusLine = { fg = c.fg, bg = c.bg_float },
StatusLineNC = { fg = c.fg_dim, bg = c.bg_float },
WinSeparator = { fg = c.border },
VertSplit = { link = "WinSeparator" },
TabLine = { fg = c.fg_dim, bg = c.bg_float },
TabLineFill = { bg = c.bg_float },
TabLineSel = { fg = c.fg_bright, bg = c.bg, bold = true },
Pmenu = { fg = c.fg, bg = c.bg_float },
PmenuSel = { fg = c.fg_bright, bg = c.bg_selection },
PmenuSbar = { bg = c.bg_elevated },
PmenuThumb = { bg = c.fg_gutter },
PmenuKind = { fg = c.keyword, bg = c.bg_float },
PmenuKindSel = { fg = c.keyword, bg = c.bg_selection },
PmenuExtra = { fg = c.fg_dim, bg = c.bg_float },
PmenuExtraSel = { fg = c.fg_dim, bg = c.bg_selection },
Folded = { fg = c.fg_comment, bg = c.none },
NonText = { fg = c.nontext },
SpecialKey = { link = "NonText" },
Whitespace = { link = "NonText" },
EndOfBuffer = { link = "NonText" },
MatchParen = { fg = c.match_paren, bold = true },
ModeMsg = { fg = c.fg_bright, bold = true },
MsgArea = { fg = c.fg },
MoreMsg = { fg = c.accent },
Question = { fg = c.accent },
Directory = { fg = c.accent },
Title = { fg = c.accent, bold = true },
ErrorMsg = { fg = c.error },
WarningMsg = { fg = c.warning },
Conceal = { fg = c.fg_dim },
SpellBad = { sp = c.error, undercurl = true },
SpellCap = { sp = c.warning, undercurl = true },
SpellLocal = { sp = c.info, undercurl = true },
SpellRare = { sp = c.hint, undercurl = true },
ColorColumn = { bg = c.bg_cursorline },
QuickFixLine = { bg = c.bg_selection, bold = true },
WildMenu = { link = "PmenuSel" },
}
end
return M

View file

@ -0,0 +1,241 @@
local M = {}
---@param c Colors
function M.get(c)
return {
-- Git signs
GitSignsAdd = { fg = c.git_add },
GitSignsChange = { fg = c.git_change },
GitSignsDelete = { fg = c.git_delete },
-- Diff
DiffAdd = { bg = c.diff_add_bg },
DiffChange = { bg = c.diff_change_bg },
DiffDelete = { bg = c.diff_delete_bg },
DiffText = { bg = c.diff_text_bg },
Added = { fg = c.git_add },
Changed = { fg = c.git_change },
Removed = { fg = c.git_delete },
-- Telescope
TelescopeBorder = { fg = c.border, bg = c.bg_float },
TelescopeNormal = { fg = c.fg, bg = c.bg_float },
TelescopePromptBorder = { fg = c.border, bg = c.bg_float },
TelescopePromptNormal = { fg = c.fg, bg = c.bg_float },
TelescopePromptPrefix = { fg = c.accent },
TelescopePromptTitle = { fg = c.accent, bold = true },
TelescopePreviewTitle = { fg = c.string, bold = true },
TelescopeResultsTitle = { fg = c.keyword, bold = true },
TelescopeSelection = { bg = c.bg_selection },
TelescopeMatching = { fg = c.accent, bold = true },
-- nvim-cmp
CmpItemAbbr = { fg = c.fg },
CmpItemAbbrDeprecated = { fg = c.fg_gutter, strikethrough = true },
CmpItemAbbrMatch = { fg = c.accent, bold = true },
CmpItemAbbrMatchFuzzy = { fg = c.accent, bold = true },
CmpItemMenu = { fg = c.fg_comment },
CmpItemKindDefault = { fg = c.fg_dim },
CmpItemKindKeyword = { fg = c.keyword },
CmpItemKindVariable = { fg = c.variable },
CmpItemKindConstant = { fg = c.constant },
CmpItemKindReference = { fg = c.variable },
CmpItemKindValue = { fg = c.constant },
CmpItemKindFunction = { fg = c.func },
CmpItemKindMethod = { fg = c.func },
CmpItemKindConstructor = { fg = c.type },
CmpItemKindClass = { fg = c.type },
CmpItemKindInterface = { fg = c.type },
CmpItemKindStruct = { fg = c.type },
CmpItemKindEvent = { fg = c.keyword },
CmpItemKindEnum = { fg = c.type },
CmpItemKindUnit = { fg = c.constant },
CmpItemKindModule = { fg = c.fg_dim },
CmpItemKindProperty = { fg = c.operator },
CmpItemKindField = { fg = c.operator },
CmpItemKindTypeParameter = { fg = c.type },
CmpItemKindEnumMember = { fg = c.constant },
CmpItemKindOperator = { fg = c.operator },
CmpItemKindSnippet = { fg = c.special },
CmpItemKindText = { fg = c.fg },
CmpItemKindFile = { fg = c.fg },
CmpItemKindFolder = { fg = c.accent },
CmpItemKindColor = { fg = c.special },
-- blink.cmp
BlinkCmpMenu = { fg = c.fg, bg = c.bg_float },
BlinkCmpMenuBorder = { fg = c.border, bg = c.bg_float },
BlinkCmpMenuSelection = { bg = c.bg_selection },
BlinkCmpLabel = { fg = c.fg },
BlinkCmpLabelMatch = { fg = c.accent, bold = true },
BlinkCmpLabelDeprecated = { fg = c.fg_gutter, strikethrough = true },
BlinkCmpKind = { fg = c.fg_dim },
BlinkCmpKindFunction = { fg = c.func },
BlinkCmpKindMethod = { fg = c.func },
BlinkCmpKindConstructor = { fg = c.type },
BlinkCmpKindClass = { fg = c.type },
BlinkCmpKindStruct = { fg = c.type },
BlinkCmpKindInterface = { fg = c.type },
BlinkCmpKindModule = { fg = c.fg_dim },
BlinkCmpKindProperty = { fg = c.operator },
BlinkCmpKindField = { fg = c.operator },
BlinkCmpKindVariable = { fg = c.variable },
BlinkCmpKindKeyword = { fg = c.keyword },
BlinkCmpKindSnippet = { fg = c.special },
BlinkCmpKindText = { fg = c.fg },
BlinkCmpKindValue = { fg = c.constant },
BlinkCmpKindEnum = { fg = c.type },
BlinkCmpKindColor = { fg = c.special },
BlinkCmpKindFile = { fg = c.fg },
BlinkCmpKindFolder = { fg = c.accent },
BlinkCmpKindConstant = { fg = c.constant },
BlinkCmpKindTypeParameter = { fg = c.type },
BlinkCmpKindOperator = { fg = c.operator },
BlinkCmpDoc = { fg = c.fg, bg = c.bg_float },
BlinkCmpDocBorder = { fg = c.border, bg = c.bg_float },
-- Indent blankline
IblIndent = { fg = c.guide },
IblScope = { fg = c.guide_active },
IblWhitespace = { fg = c.guide },
-- Which-key
WhichKey = { fg = c.accent },
WhichKeyGroup = { fg = c.keyword },
WhichKeyDesc = { fg = c.fg },
WhichKeySeparator = { fg = c.fg_comment },
WhichKeyValue = { fg = c.fg_dim },
WhichKeyBorder = { fg = c.border },
-- Trouble
TroubleText = { fg = c.fg },
TroubleCount = { fg = c.accent, bold = true },
TroubleNormal = { fg = c.fg, bg = c.bg_float },
-- Nvim-tree
NvimTreeNormal = { fg = c.fg, bg = c.bg_dim },
NvimTreeRootFolder = { fg = c.accent, bold = true },
NvimTreeFolderName = { fg = c.accent },
NvimTreeFolderIcon = { link = "NvimTreeFolderName" },
NvimTreeOpenedFolderName = { link = "NvimTreeFolderName" },
NvimTreeOpenedHL = { fg = c.accent },
NvimTreeGitDirty = { fg = c.git_change },
NvimTreeGitNew = { fg = c.fg_dim },
NvimTreeGitDeleted = { fg = c.git_delete },
NvimTreeGitIgnored = { fg = c.git_ignore },
NvimTreeGitStaged = { fg = c.git_add },
NvimTreeSpecialFile = { fg = c.special },
NvimTreeIndentMarker = { fg = c.guide },
NvimTreeWinSeparator = { fg = c.border, bg = c.bg_dim },
-- Neo-tree
NeoTreeNormal = { fg = c.fg, bg = c.bg_float },
NeoTreeNormalNC = { fg = c.fg, bg = c.bg_float },
NeoTreeDimText = { fg = c.fg_dim },
NeoTreeRootName = { fg = c.accent, bold = true },
NeoTreeDirectoryName = { fg = c.accent },
NeoTreeDirectoryIcon = { fg = c.accent },
NeoTreeGitAdded = { fg = c.git_add },
NeoTreeGitModified = { fg = c.git_change },
NeoTreeGitDeleted = { fg = c.git_delete },
NeoTreeGitIgnored = { fg = c.git_ignore },
NeoTreeIndentMarker = { fg = c.guide },
NeoTreeWinSeparator = { fg = c.border },
-- Lazy
LazyButton = { fg = c.fg, bg = c.bg_elevated },
LazyButtonActive = { fg = c.fg_bright, bg = c.bg_selection, bold = true },
LazyH1 = { fg = c.bg, bg = c.accent, bold = true },
LazyProgressDone = { fg = c.accent },
LazyProgressTodo = { fg = c.fg_gutter },
LazySpecial = { fg = c.accent },
-- Mason
MasonHeader = { fg = c.bg, bg = c.accent, bold = true },
MasonHighlight = { fg = c.accent },
MasonHighlightBlock = { fg = c.bg, bg = c.accent },
MasonMutedBlock = { fg = c.fg, bg = c.bg_elevated },
-- Noice
NoiceCmdlinePopup = { fg = c.fg, bg = c.bg_float },
NoiceCmdlinePopupBorder = { fg = c.border },
NoiceCmdlineIcon = { fg = c.accent },
NoiceConfirm = { fg = c.fg, bg = c.bg_float },
NoiceConfirmBorder = { fg = c.border },
-- Notify
NotifyERRORBorder = { fg = c.error },
NotifyERRORIcon = { fg = c.error },
NotifyERRORTitle = { fg = c.error },
NotifyWARNBorder = { fg = c.warning },
NotifyWARNIcon = { fg = c.warning },
NotifyWARNTitle = { fg = c.warning },
NotifyINFOBorder = { fg = c.info },
NotifyINFOIcon = { fg = c.info },
NotifyINFOTitle = { fg = c.info },
NotifyDEBUGBorder = { fg = c.fg_comment },
NotifyDEBUGIcon = { fg = c.fg_comment },
NotifyDEBUGTitle = { fg = c.fg_comment },
NotifyTRACEBorder = { fg = c.keyword },
NotifyTRACEIcon = { fg = c.keyword },
NotifyTRACETitle = { fg = c.keyword },
-- Mini
MiniStatuslineModeNormal = { fg = c.bg, bg = c.accent, bold = true },
MiniStatuslineModeInsert = { fg = c.bg, bg = c.string, bold = true },
MiniStatuslineModeVisual = { fg = c.bg, bg = c.keyword, bold = true },
MiniStatuslineModeReplace = { fg = c.bg, bg = c.error, bold = true },
MiniStatuslineModeCommand = { fg = c.bg, bg = c.warning, bold = true },
MiniStatuslineModeOther = { fg = c.bg, bg = c.special, bold = true },
MiniStatuslineFilename = { fg = c.fg, bg = c.bg_elevated },
MiniStatuslineFileinfo = { fg = c.fg_dim, bg = c.bg_elevated },
MiniStatuslineDevinfo = { fg = c.fg_dim, bg = c.bg_elevated },
MiniStatuslineInactive = { fg = c.fg_gutter, bg = c.bg_elevated },
-- Snacks
SnacksIndent = { fg = c.guide },
SnacksIndentScope = { fg = c.guide_active },
-- Flash
FlashLabel = { fg = c.bg, bg = c.accent, bold = true },
FlashMatch = { fg = c.fg_dim, bg = c.bg_selection },
FlashCurrent = { fg = c.fg_bright, bg = c.bg_search },
-- Treesitter context
TreesitterContext = { bg = c.bg_elevated },
TreesitterContextLineNumber = { fg = c.fg_gutter_active, bg = c.bg_elevated },
-- Dashboard / Alpha
DashboardHeader = { fg = c.accent },
DashboardFooter = { fg = c.fg_comment, italic = true },
DashboardDesc = { fg = c.fg },
DashboardKey = { fg = c.constant },
DashboardIcon = { fg = c.accent },
DashboardShortCut = { fg = c.keyword },
-- Render-markdown
RenderMarkdownH1Bg = { fg = c.red, bg = c.red_dim },
RenderMarkdownH2Bg = { fg = c.orange, bg = c.orange_dim },
RenderMarkdownH3Bg = { fg = c.yellow, bg = c.yellow_dim },
RenderMarkdownH4Bg = { fg = c.green, bg = c.green_dim },
RenderMarkdownH5Bg = { fg = c.cyan, bg = c.cyan_dim },
RenderMarkdownH6Bg = { fg = c.blue, bg = c.blue_dim },
RenderMarkdownCode = { bg = c.bg_elevated },
-- Oil
OilDir = { fg = c.accent },
OilDirIcon = { fg = c.accent },
OilFile = { fg = c.fg },
OilCreate = { fg = c.git_add },
OilDelete = { fg = c.git_delete },
OilMove = { fg = c.git_change },
OilCopy = { fg = c.info },
-- Fzf-lua
FzfLuaBorder = { fg = c.border },
FzfLuaTitle = { fg = c.accent, bold = true },
FzfLuaCursorLine = { bg = c.bg_selection },
}
end
return M

98
lua/skift/groups/lsp.lua Normal file
View file

@ -0,0 +1,98 @@
local M = {}
---@param c Colors
function M.get(c)
return {
LspReferenceText = { bg = c.bg_selection },
LspReferenceRead = { bg = c.bg_selection },
LspReferenceWrite = { bg = c.bg_selection, bold = true },
LspCodeLens = { fg = c.fg_comment },
LspCodeLensSeparator = { fg = c.fg_gutter },
LspSignatureActiveParameter = { fg = c.accent, bold = true },
LspInlayHint = { fg = c.fg_gutter, italic = true },
DiagnosticError = { fg = c.error },
DiagnosticWarn = { fg = c.warning },
DiagnosticInfo = { fg = c.info },
DiagnosticHint = { fg = c.hint },
DiagnosticOk = { fg = c.ok },
DiagnosticSignError = { fg = c.error },
DiagnosticSignWarn = { fg = c.warning },
DiagnosticSignInfo = { fg = c.info },
DiagnosticSignHint = { fg = c.hint },
DiagnosticSignOk = { fg = c.ok },
DiagnosticVirtualTextError = { fg = c.error, bg = c.bg_elevated },
DiagnosticVirtualTextWarn = { fg = c.warning, bg = c.bg_elevated },
DiagnosticVirtualTextInfo = { fg = c.info, bg = c.bg_elevated },
DiagnosticVirtualTextHint = { fg = c.hint, bg = c.bg_elevated },
DiagnosticVirtualTextOk = { fg = c.ok, bg = c.bg_elevated },
DiagnosticUnderlineError = { sp = c.error, undercurl = true },
DiagnosticUnderlineWarn = { sp = c.warning, undercurl = true },
DiagnosticUnderlineInfo = { sp = c.info, undercurl = true },
DiagnosticUnderlineHint = { sp = c.hint, undercurl = true },
DiagnosticUnderlineOk = { sp = c.ok, undercurl = true },
DiagnosticFloatingError = { fg = c.error },
DiagnosticFloatingWarn = { fg = c.warning },
DiagnosticFloatingInfo = { fg = c.info },
DiagnosticFloatingHint = { fg = c.hint },
DiagnosticFloatingOk = { fg = c.ok },
["@lsp.type.boolean"] = { link = "@boolean" },
["@lsp.type.builtinType"] = { link = "@type.builtin" },
["@lsp.type.comment"] = { link = "@comment" },
["@lsp.type.decorator"] = { link = "@attribute" },
["@lsp.type.deriveHelper"] = { link = "@attribute" },
["@lsp.type.enum"] = { link = "@type" },
["@lsp.type.enumMember"] = { link = "@constant" },
["@lsp.type.escapeSequence"] = { link = "@string.escape" },
["@lsp.type.formatSpecifier"] = { link = "@punctuation.special" },
["@lsp.type.function"] = { link = "@function" },
["@lsp.type.generic"] = { link = "@variable" },
["@lsp.type.interface"] = { link = "@type" },
["@lsp.type.keyword"] = { link = "@keyword" },
["@lsp.type.lifetime"] = { link = "@keyword.modifier" },
["@lsp.type.macro"] = { link = "@function.macro" },
["@lsp.type.method"] = { link = "@function.method" },
["@lsp.type.namespace"] = { link = "@module" },
["@lsp.type.number"] = { link = "@number" },
["@lsp.type.operator"] = { link = "@operator" },
["@lsp.type.parameter"] = { link = "@variable.parameter" },
["@lsp.type.property"] = { link = "@property" },
["@lsp.type.selfKeyword"] = { link = "@variable.builtin" },
["@lsp.type.selfTypeKeyword"] = { link = "@variable.builtin" },
["@lsp.type.string"] = { link = "@string" },
["@lsp.type.struct"] = { link = "@type" },
["@lsp.type.type"] = { link = "@type" },
["@lsp.type.typeAlias"] = { link = "@type.definition" },
["@lsp.type.typeParameter"] = { link = "@type" },
["@lsp.type.unresolvedReference"] = { sp = c.error, undercurl = true },
["@lsp.type.variable"] = {},
["@lsp.typemod.class.defaultLibrary"] = { link = "@type.builtin" },
["@lsp.typemod.enum.defaultLibrary"] = { link = "@type.builtin" },
["@lsp.typemod.enumMember.defaultLibrary"] = { link = "@constant.builtin" },
["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" },
["@lsp.typemod.keyword.async"] = { link = "@keyword.coroutine" },
["@lsp.typemod.keyword.injected"] = { link = "@keyword" },
["@lsp.typemod.macro.defaultLibrary"] = { link = "@function.builtin" },
["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" },
["@lsp.typemod.operator.injected"] = { link = "@operator" },
["@lsp.typemod.string.injected"] = { link = "@string" },
["@lsp.typemod.struct.defaultLibrary"] = { link = "@type.builtin" },
["@lsp.typemod.type.defaultLibrary"] = { link = "@type.builtin" },
["@lsp.typemod.typeAlias.defaultLibrary"] = { link = "@type.builtin" },
["@lsp.typemod.variable.callable"] = { link = "@function" },
["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" },
["@lsp.typemod.variable.injected"] = { link = "@variable" },
["@lsp.typemod.variable.static"] = { link = "@constant" },
["@lsp.typemod.property"] = { link = "@property" },
["@lsp.typemod.property.declaration"] = { link = "@variable" }, -- a property declaration is a variable
}
end
return M

View file

@ -0,0 +1,46 @@
local M = {}
---@param c Colors
function M.get(c)
return {
Comment = { fg = c.fg_comment, italic = true },
String = { fg = c.string },
Character = { fg = c.string },
Number = { fg = c.number },
Float = { link = "Number" },
Boolean = { link = "Constant" },
Identifier = { link = "Constant" },
Function = { link = "Normal" },
Statement = { link = "Keyword" },
Conditional = { link = "Keyword" },
Repeat = { link = "Keyword" },
Label = { fg = c.tag },
Operator = { fg = c.operator },
Keyword = { fg = c.keyword },
Exception = { fg = c.error },
PreProc = { fg = c.special },
Include = { link = "PreProc" },
Define = { link = "PreProc" },
Macro = { link = "PreProc" },
PreCondit = { link = "PreProc" },
Type = { fg = c.type },
StorageClass = { fg = c.keyword, italic = true },
Structure = { fg = c.type, bold = true },
Typedef = { link = "PreProc" },
Constant = { fg = c.constant },
Special = { fg = c.special },
SpecialChar = { link = "Special" },
Tag = { fg = c.tag },
Delimiter = { fg = c.fg_dim },
SpecialComment = { fg = c.constant, italic = true },
Debug = { fg = c.hint },
Underlined = { fg = c.accent, underline = true },
Bold = { bold = true },
Italic = { italic = true },
Ignore = { fg = c.nontext },
Error = { fg = c.error },
Todo = { fg = c.bg, bg = c.info, bold = true },
}
end
return M

View file

@ -0,0 +1,121 @@
local M = {}
---@param c Colors
function M.get(c)
return {
["@variable"] = { fg = c.variable },
["@variable.builtin"] = { fg = c.variable, italic = true },
["@variable.parameter"] = { link = "@variable" },
["@variable.parameter.builtin"] = { link = "@variable.builtin" },
["@variable.member"] = { link = "@variable" },
["@property"] = { fg = c.property },
["@constant"] = { fg = c.constant },
["@constant.builtin"] = { fg = c.constant, bold = true },
["@constant.macro"] = { fg = c.special, bold = true },
["@preproc"] = { link = "PreProc" },
["@module"] = { link = "@preproc" },
["@module.builtin"] = { link = "@module" },
["@label"] = { fg = c.tag },
["@string"] = { link = "String" },
["@string.documentation"] = { link = "@string" },
["@string.escape"] = { fg = c.special },
["@string.regexp"] = { fg = c.special },
["@string.special"] = { fg = c.special },
["@string.special.symbol"] = { link = "@string.special" },
["@string.special.url"] = { fg = c.special, underline = true },
["@string.special.path"] = { link = "@string.special" },
["@character"] = { link = "String" },
["@character.special"] = { link = "@string.special" },
["@number"] = { link = "Number" },
["@number.float"] = { link = "@number" },
["@boolean"] = { link = "Boolean" },
["@type"] = { link = "Type" },
["@type.builtin"] = { link = "@type" },
["@type.definition"] = { link = "@type" },
["@type.qualifier"] = { link = "@type" },
["@attribute"] = { fg = c.type },
["@attribute.builtin"] = { fg = c.type, italic = true },
["@function"] = { link = "Function" },
["@function.builtin"] = { link = "@function" },
["@function.call"] = { link = "@function" },
["@function.macro"] = { link = "@function" },
["@function.method"] = { link = "@function" },
["@function.method.call"] = { link = "@function" },
["@constructor"] = { link = "Normal" },
["@class"] = { link = "Normal" },
["@operator"] = { link = "Operator" },
["@keyword"] = { link = "Keyword" },
["@keyword.coroutine"] = { fg = c.special },
["@keyword.function"] = { link = "@keyword" },
["@keyword.operator"] = { link = "@operator" },
["@keyword.import"] = { link = "@keyword" },
["@keyword.type"] = { link = "@keyword" },
["@keyword.modifier"] = { link = "@keyword" },
["@keyword.repeat"] = { link = "@keyword" },
["@keyword.return"] = { link = "@keyword" },
["@keyword.debug"] = { fg = c.error },
["@keyword.exception"] = { fg = c.error },
["@keyword.conditional"] = { link = "Conditional" },
["@keyword.conditional.ternary"] = { link = "Conditional" },
["@keyword.directive"] = { link = "PreProc" },
["@keyword.directive.define"] = { link = "@keyword.directive" },
["@punctuation.bracket"] = { link = "Operator" },
["@punctuation.delimiter"] = { link = "Operator" },
["@punctuation.special"] = { link = "Operator" },
["@comment"] = { link = "Comment" },
["@comment.documentation"] = { link = "@comment" },
["@comment.error"] = { fg = c.error },
["@comment.warning"] = { fg = c.warning },
["@comment.todo"] = { fg = c.info },
["@comment.note"] = { fg = c.hint },
["@markup.strong"] = { fg = c.fg_bright, bold = true },
["@markup.italic"] = { fg = c.fg_bright, italic = true },
["@markup.strikethrough"] = { fg = c.fg_dim, strikethrough = true },
["@markup.underline"] = { underline = true },
["@markup.heading"] = { fg = c.red, bold = true },
["@markup.heading.1"] = { fg = c.red, bold = true },
["@markup.heading.2"] = { fg = c.orange, bold = true },
["@markup.heading.3"] = { fg = c.yellow, bold = true },
["@markup.heading.4"] = { fg = c.green, bold = true },
["@markup.heading.5"] = { fg = c.cyan, bold = true },
["@markup.heading.6"] = { fg = c.blue, bold = true },
["@markup.quote"] = { fg = c.fg_dim, italic = true },
["@markup.math"] = { fg = c.constant },
["@markup.environment"] = { fg = c.keyword },
["@markup.link"] = { fg = c.string, underline = true },
["@markup.link.label"] = { fg = c.string },
["@markup.link.url"] = { fg = c.string, underline = true },
["@markup.raw"] = { fg = c.rose },
["@markup.raw.block"] = { fg = c.fg },
["@markup.list"] = { fg = c.operator },
["@markup.list.checked"] = { fg = c.ok },
["@markup.list.unchecked"] = { fg = c.fg_dim },
["@tag"] = { fg = c.keyword },
["@tag.builtin"] = { fg = c.keyword, italic = true },
["@tag.attribute"] = { link = "@tag" },
["@tag.delimiter"] = { fg = c.operator },
["@diff.plus"] = { fg = c.git_add },
["@diff.minus"] = { fg = c.git_delete },
["@diff.delta"] = { fg = c.git_change },
}
end
return M