Initial commit

This commit is contained in:
Webhooked
2025-05-06 12:02:29 +02:00
commit 62e9c5d669
37 changed files with 2991 additions and 0 deletions
+201
View File
@@ -0,0 +1,201 @@
-- local c = require("kanso.color")
local M = {}
---@param colors KansoColors
---@param config? KansoConfig
function M.setup(colors, config)
local theme = colors.theme
config = config or require("kanso").config
return {
-- ColorColumn Used for the columns set with 'colorcolumn'.
ColorColumn = { bg = theme.ui.bg_p1 },
-- Conceal Placeholder characters substituted for concealed text (see 'conceallevel').
Conceal = { fg = theme.ui.special, bold = true },
-- CurSearch Used for highlighting a search pattern under the cursor (see 'hlsearch').
CurSearch = { fg = theme.ui.fg, bg = theme.ui.bg_search, bold = true },
-- Cursor Character under the cursor.
Cursor = { fg = theme.ui.cursor_fg, bg = theme.ui.cursor_bg },
-- lCursor Character under the cursor when |language-mapping| is used (see 'guicursor').
lCursor = { link = "Cursor" },
-- CursorIM Like Cursor, but used when in IME mode.
CursorIM = { link = "Cursor" },
-- CursorColumn Screen-column at the cursor, when 'cursorcolumn' is set.
CursorColumn = { link = "CursorLine" },
-- CursorLine Screen-line at the cursor, when 'cursorline' is set. Low-priority if foreground (ctermfg OR guifg) is not set.
CursorLine = { bg = theme.ui.bg_p2 },
-- Directory Directory names (and other special names in listings).
Directory = { fg = theme.syn.fun },
-- DiffAdd Diff mode: Added line. |diff.txt|
DiffAdd = { bg = theme.diff.add },
-- DiffChange Diff mode: Changed line. |diff.txt|
DiffChange = { bg = theme.diff.change },
-- DiffDelete Diff mode: Deleted line. |diff.txt|
DiffDelete = { fg = theme.vcs.removed, bg = theme.diff.delete },
-- DiffText Diff mode: Changed text within a changed line. |diff.txt|
DiffText = { bg = theme.diff.text },
-- EndOfBuffer Filler lines (~) after the end of the buffer. By default, this is highlighted like |hl-NonText|.
EndOfBuffer = { fg = theme.ui.bg },
-- TermCursor Cursor in a focused terminal.
-- TermCursorNC Cursor in an unfocused terminal.
-- ErrorMsg Error messages on the command line.
ErrorMsg = { fg = theme.diag.error },
-- WinSeparator Separators between window splits.
WinSeparator = { fg = theme.ui.bg_m3, bg = config.dimInactive and theme.ui.bg_dim or "NONE" },
VertSplit = { link = "WinSeparator" },
-- Folded Line used for closed folds.
Folded = { fg = theme.ui.special, bg = theme.ui.bg_p1 },
-- FoldColumn 'foldcolumn'
FoldColumn = { fg = theme.ui.nontext, bg = theme.ui.bg_gutter },
-- SignColumn Column where |signs| are displayed.
SignColumn = { fg = theme.ui.special, bg = theme.ui.bg_gutter },
-- IncSearch 'incsearch' highlighting; also used for the text replaced with ":s///c".
IncSearch = { fg = theme.ui.fg_reverse, bg = theme.diag.warning },
-- Substitute |:substitute| replacement text highlighting.
Substitute = { fg = theme.ui.fg, bg = theme.vcs.removed },
-- LineNr Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set.
LineNr = { fg = theme.ui.cursor_line_nr_foreground, bg = theme.ui.none },
-- LineNrAbove Line number for when the 'relativenumber' option is set, above the cursor line.
-- LineNrBelow Line number for when the 'relativenumber' option is set, below the cursor line.
-- CursorLineNr Like LineNr when 'cursorline' is set and 'cursorlineopt' contains "number" or is "both", for the cursor line.
CursorLineNr = { fg = theme.ui.cursor_line_nr_active_foreground, bg = theme.ui.none },
-- CursorLineFold Like FoldColumn when 'cursorline' is set for the cursor line.
-- CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
-- MatchParen Character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
MatchParen = { fg = theme.diag.warning, bold = true },
-- ModeMsg 'showmode' message (e.g., "-- INSERT --").
ModeMsg = { fg = theme.diag.warning, bold = true },
-- MsgArea Area for messages and cmdline.
MsgArea = vim.o.cmdheight == 0 and {link = 'StatusLine'} or { fg = theme.ui.fg_dim },
-- MsgSeparator Separator for scrolled messages |msgsep|.
MsgSeparator = { bg = vim.o.cmdheight == 0 and theme.ui.bg or theme.ui.bg_m3 },
-- MoreMsg |more-prompt|
MoreMsg = { fg = theme.diag.info },
-- NonText '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
NonText = { fg = theme.ui.nontext },
-- Normal Normal text.
Normal = { fg = theme.ui.fg, bg = not config.transparent and theme.ui.bg or "NONE" },
-- NormalFloat Normal text in floating windows.
NormalFloat = { fg = theme.ui.float.fg, bg = theme.ui.float.bg },
-- FloatBorder Border of floating windows.
FloatBorder = { fg = theme.ui.float.fg_border, bg = theme.ui.float.bg_border },
-- FloatTitle Title of floating windows.
FloatTitle = { fg = theme.ui.special, bg = theme.ui.float.bg_border, bold = true },
-- FloatFooter Footer of floating windows.
FloatFooter = { fg = theme.ui.nontext, bg = theme.ui.float.bg_border },
-- NormalNC Normal text in non-current windows.
NormalNC = config.dimInactive and { fg = theme.ui.fg_dim, bg = theme.ui.bg_dim } or { link = "Normal" },
-- Pmenu Popup menu: Normal item.
Pmenu = { fg = theme.ui.pmenu.fg, bg = theme.ui.pmenu.bg },
-- PmenuSel Popup menu: Selected item.
PmenuSel = { fg = theme.ui.pmenu.fg_sel, bg = theme.ui.pmenu.bg_sel },
-- PmenuKind Popup menu: Normal item "kind".
PmenuKind = { fg = theme.ui.fg_dim, bg = theme.ui.pmenu.bg },
-- PmenuKindSel Popup menu: Selected item "kind".
PmenuKindSel = { fg = theme.ui.fg_dim, bg = theme.ui.pmenu.bg_sel },
-- PmenuExtra Popup menu: Normal item "extra text".
PmenuExtra = { fg = theme.ui.special, bg = theme.ui.pmenu.bg },
-- PmenuExtraSel Popup menu: Selected item "extra text".
PmenuExtraSel = { fg = theme.ui.special, bg = theme.ui.pmenu.bg_sel },
-- PmenuSbar Popup menu: Scrollbar.
PmenuSbar = { bg = theme.ui.pmenu.bg_sbar },
-- PmenuThumb Popup menu: Thumb of the scrollbar.
PmenuThumb = { bg = theme.ui.pmenu.bg_thumb },
-- Question |hit-enter| prompt and yes/no questions.
Question = { link = "MoreMsg" },
-- QuickFixLine Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
QuickFixLine = { bg = theme.ui.bg_p1 },
-- Search Last search pattern highlighting (see 'hlsearch'). Also used for similar items that need to stand out.
Search = { fg = theme.ui.fg, bg = theme.ui.bg_search },
-- SpecialKey Unprintable characters: Text displayed differently from what it really is. But not 'listchars' whitespace. |hl-Whitespace|
SpecialKey = { fg = theme.ui.special },
-- SpellBad Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
SpellBad = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.error },
-- SpellCap Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
SpellCap = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.warning },
-- SpellLocal Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
SpellLocal = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.warning },
-- SpellRare Word that is recognized by the spellchecker as one that is hardly ever used. |spell| Combined with the highlighting used otherwise.
SpellRare = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.warning },
-- StatusLine Status line of current window.
StatusLine = { fg = theme.ui.fg_dim, bg = theme.ui.bg_m3 },
-- StatusLineNC Status lines of not-current windows. Note: If this is equal to "StatusLine", Vim will use "^^^" in the status line of the current window.
StatusLineNC = { fg = theme.ui.nontext, bg = theme.ui.bg_m3 },
-- TabLine Tab pages line, not active tab page label.
TabLine = { bg = theme.ui.bg_m3, fg = theme.ui.special },
-- TabLineFill Tab pages line, where there are no labels.
TabLineFill = { bg = theme.ui.bg },
-- TabLineSel Tab pages line, active tab page label.
TabLineSel = { fg = theme.ui.fg_dim, bg = theme.ui.bg_p1 },
-- Title Titles for output from ":set all", ":autocmd" etc.
Title = { fg = theme.syn.fun, bold = true },
-- Visual Visual mode selection.
Visual = { bg = theme.ui.bg_visual },
-- VisualNOS Visual mode selection when vim is "Not Owning the Selection".
VisualNOS = { link = "Visual" },
-- WarningMsg Warning messages.
WarningMsg = { fg = theme.diag.warning },
-- Whitespace "nbsp", "space", "tab", "multispace", "lead" and "trail" in 'listchars'.
Whitespace = { fg = theme.ui.whitespace },
-- WildMenu Current match in 'wildmenu' completion.
WildMenu = { link = "Pmenu" },
-- WinBar Window bar of current window.
WinBar = { fg = theme.ui.fg_dim, bg = "NONE" },
-- WinBarNC Window bar of not-current windows.
WinBarNC = { fg = theme.ui.fg_dim, bg = config.dimInactive and theme.ui.bg_dim or "NONE" },
-- SignColumnSB = { link = "SignColumn" },
-- NormalSB = { link = "Normal" },
debugPC = { bg = theme.diff.delete },
debugBreakpoint = { fg = theme.syn.special1, bg = theme.ui.bg_gutter },
LspReferenceText = { bg = theme.ui.bg_p2 },
LspReferenceRead = { link = "LspReferenceText" },
LspReferenceWrite = { bg = theme.ui.bg_p2, underline = true },
-- LspInlayHint = { link = "NonText"},
DiagnosticError = { fg = theme.diag.error },
DiagnosticWarn = { fg = theme.diag.warning },
DiagnosticInfo = { fg = theme.diag.info },
DiagnosticHint = { fg = theme.diag.hint },
DiagnosticOk = { fg = theme.diag.ok },
DiagnosticFloatingError = { fg = theme.diag.error },
DiagnosticFloatingWarn = { fg = theme.diag.warning },
DiagnosticFloatingInfo = { fg = theme.diag.info },
DiagnosticFloatingHint = { fg = theme.diag.hint },
DiagnosticFloatingOk = { fg = theme.diag.ok },
DiagnosticSignError = { fg = theme.diag.error, bg = theme.ui.bg_gutter },
DiagnosticSignWarn = { fg = theme.diag.warning, bg = theme.ui.bg_gutter },
DiagnosticSignInfo = { fg = theme.diag.info, bg = theme.ui.bg_gutter },
DiagnosticSignHint = { fg = theme.diag.hint, bg = theme.ui.bg_gutter },
DiagnosticVirtualTextError = { link = "DiagnosticError" },
DiagnosticVirtualTextWarn = { link = "DiagnosticWarn" },
DiagnosticVirtualTextInfo = { link = "DiagnosticInfo" },
DiagnosticVirtualTextHint = { link = "DiagnosticHint" },
DiagnosticUnderlineError = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.error },
DiagnosticUnderlineWarn = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.warning },
DiagnosticUnderlineInfo = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.info },
DiagnosticUnderlineHint = { undercurl = config.undercurl, underline = not config.undercurl, sp = theme.diag.hint },
LspSignatureActiveParameter = { fg = theme.diag.warning },
LspCodeLens = { fg = theme.syn.comment },
-- vcs
diffAdded = { fg = theme.vcs.added },
diffRemoved = { fg = theme.vcs.removed },
diffDeleted = { fg = theme.vcs.removed },
diffChanged = { fg = theme.vcs.changed },
diffOldFile = { fg = theme.vcs.removed },
diffNewFile = { fg = theme.vcs.added },
-- diffFile = { fg = c.steelGray },
-- diffLine = { fg = c.steelGray },
-- diffIndexLine = { link = 'Identifier' },
}
end
return M
+37
View File
@@ -0,0 +1,37 @@
local M = {}
---@param highlights table
---@param termcolors table
function M.highlight(highlights, termcolors)
for hl, spec in pairs(highlights) do
vim.api.nvim_set_hl(0, hl, spec)
end
for i, tcolor in ipairs(termcolors) do
vim.g["terminal_color_" .. i - 1] = tcolor
end
end
---@param colors KansoColors
---@param config? KansoConfig
function M.setup(colors, config)
config = config or require("kanso").config
local highlights = {}
for _, highlight in ipairs({ "editor", "syntax", "treesitter", "lsp", "plugins" }) do
local mod = require("kanso.highlights." .. highlight)
for hl, spec in pairs(mod.setup(colors, config)) do
highlights[hl] = spec
end
end
for hl, spec in pairs(config.overrides(colors)) do
if highlights[hl] and next(spec) then
highlights[hl].link = nil
end
highlights[hl] = vim.tbl_extend("force", highlights[hl] or {}, spec)
end
return highlights
end
return M
+60
View File
@@ -0,0 +1,60 @@
local M = {}
---@param colors KansoColors
---@param config? KansoConfig
function M.setup(colors, config)
config = config or require("kanso").config
local theme = colors.theme
return {
-- ["@lsp.type.class"] = { link = "Structure" },
-- ["@lsp.type.decorator"] = { link = "Function" },
-- ["@lsp.type.enum"] = { link = "Structure" },
-- ["@lsp.type.enumMember"] = { link = "Constant" },
-- ["@lsp.type.function"] = { link = "Function" },
-- ["@lsp.type.interface"] = { link = "Structure" },
["@lsp.type.macro"] = { link = "Macro" },
["@lsp.type.method"] = { link = "@function.method" }, -- Function
["@lsp.type.namespace"] = { link = "@module" }, -- Structure
["@lsp.type.parameter"] = { link = "@variable.parameter" }, -- Identifier
-- ["@lsp.type.property"] = { link = "Identifier" },
-- ["@lsp.type.struct"] = { link = "Structure" },
-- ["@lsp.type.type"] = { link = "Type" },
-- ["@lsp.type.typeParameter"] = { link = "TypeDef" },
["@lsp.type.variable"] = { fg = "none" }, -- Identifier
["@lsp.type.comment"] = { link = "Comment" }, -- Comment
["@lsp.type.const"] = { link = "Constant" },
["@lsp.type.comparison"] = { link = "Operator" },
["@lsp.type.bitwise"] = { link = "Operator" },
["@lsp.type.punctuation"] = { link = "Delimiter" },
["@lsp.type.selfParameter"] = { link = "@variable.builtin" },
-- ["@lsp.type.builtinConstant"] = { link = "@constant.builtin" },
["@lsp.type.builtinConstant"] = { link = "@constant.builtin" },
["@lsp.type.magicFunction"] = { link = "@function.builtin" },
["@lsp.mod.readonly"] = { link = "Constant" },
["@lsp.mod.typeHint"] = { link = "Type" },
-- ["@lsp.mod.defaultLibrary"] = { link = "Special" },
-- ["@lsp.mod.builtin"] = { link = "Special" },
["@lsp.typemod.operator.controlFlow"] = { link = "@keyword.exception" }, -- rust ? operator
["@lsp.type.lifetime"] = { link = "Operator" },
["@lsp.typemod.keyword.documentation"] = { link = "Special" },
["@lsp.type.decorator.rust"] = { link = "PreProc" },
["@lsp.typemod.variable.global"] = { link = "Constant" },
["@lsp.typemod.variable.static"] = { link = "Constant" },
["@lsp.typemod.variable.defaultLibrary"] = { link = "Special" },
["@lsp.typemod.function.builtin"] = { link = "@function.builtin" },
["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" },
["@lsp.typemod.method.defaultLibrary"] = { link = "@function.builtin" },
["@lsp.typemod.variable.injected"] = { link = "@variable" },
["@lsp.typemod.function.readonly"] = { fg = theme.syn.fun, bold = true },
}
end
return M
--vim: fdm=marker
+540
View File
@@ -0,0 +1,540 @@
local M = {}
---@param colors KansoColors
---@param config? KansoConfig
function M.setup(colors, config)
config = config or require("kanso").config
local theme = colors.theme
return {
-- Neovcs
-- NeovcsBranch = {},
-- NeovcsRemote = {},
-- NeovcsDiffDelete = { fg = theme.vcs.removed, bg = theme.diff.delete },
-- NeovcsDiffAdd = { fg = theme.vcs.added, bg = theme.diff.add },
-- NeovcsHunkHeader = { fg = theme.syn.identifier },
-- NeovcsDiffContextHighlight = { bg = theme.diff.change },
-- vcsSigns
-- vcsSignsAdd = { link = "diffAdded" },
-- vcsSignsChange = { link = "diffChanged" },
-- vcsSignsDelete = { link = "diffDeleted" },
-- vcsSignsDeleteLn = { bg = theme.diff.delete },
-- Gitsigns
GitSignsAdd = { fg = theme.vcs.added, bg = theme.ui.bg_gutter },
GitSignsChange = { fg = theme.vcs.changed, bg = theme.ui.bg_gutter },
GitSignsDelete = { fg = theme.vcs.removed, bg = theme.ui.bg_gutter },
-- Neogit
NeogitDiffContextHighlight = { bg = theme.diff.change }, --[[ guibg=#333333 guifg=#b2b2b2 ]]
NeogitHunkHeader = { fg = theme.syn.fun }, --[[ guifg=#cccccc guibg=#404040 ]]
NeogitHunkHeaderHighlight = { fg = theme.syn.constant, bg = theme.diff.change }, --[[ guifg=#cccccc guibg=#4d4d4d ]]
NeogitDiffAddHighlight = { bg = theme.diff.add },
NeogitDiffDeleteHighlight = { bg = theme.diff.delete },
-- TreeSitter Extensions
TreesitterContext = { link = "Folded" },
TreesitterContextLineNumber = { fg = theme.ui.special, bg = theme.ui.bg_gutter },
-- Telescope
TelescopeBorder = { fg = theme.ui.float.fg_border, bg = theme.ui.bg },
TelescopeTitle = { fg = theme.ui.special },
TelescopeSelection = { link = "CursorLine" },
TelescopeSelectionCaret = { link = "CursorLineNr" },
TelescopeResultsClass = { link = "Structure" },
TelescopeResultsStruct = { link = "Structure" },
TelescopeResultsField = { link = "@field" },
TelescopeResultsMethod = { link = "Function" },
TelescopeResultsVariable = { link = "@variable" },
-- NvimTree
NvimTreeNormal = { link = "Normal" },
NvimTreeNormalNC = { link = "NvimTreeNormal" },
NvimTreeRootFolder = { fg = theme.syn.identifier, bold = true },
NvimTreeGitDirty = { fg = theme.vcs.changed },
NvimTreeGitNew = { fg = theme.vcs.added },
NvimTreeGitDeleted = { fg = theme.vcs.removed },
NvimTreeGitStaged = { fg = theme.vcs.added },
NvimTreeSpecialFile = { fg = theme.syn.special1 },
-- NvimTreeIndentMarker = {},
NvimTreeImageFile = { fg = theme.syn.special2 },
NvimTreeSymlink = { link = "Type" },
NvimTreeFolderName = { link = "Directory" },
NvimTreeExecFile = { fg = theme.syn.string, bold = true },
NvimTreeOpenedFile = { fg = theme.syn.special1, italic = true },
NvimTreeWinSeparator = { link = "WinSeparator" },
NvimTreeWindowPicker = { bg = theme.ui.bg_m1, fg = theme.syn.special1, bold = true },
-- NeoTree
NeoTreeTabInactive = { link = "TabLine" },
NeoTreeTabActive = { link = "TabLineSel" },
NeoTreeTabSeparatorInactive = { link = "NeoTreeTabInactive" },
NeoTreeTabSeparatorActive = { link = "NeoTreeTabActive" },
NeoTreeRootName = { fg = theme.syn.identifier, bold = true },
NeoTreeModified = { link = "String" },
NeoTreeGitModified = { fg = theme.vcs.changed },
NeoTreeGitAdded = { fg = theme.vcs.added },
NeoTreeGitDeleted = { fg = theme.vcs.removed },
NeoTreeGitStaged = { fg = theme.vcs.added },
NeoTreeGitConflict = { fg = theme.diag.error },
NeoTreeGitUntracked = { link = "NeoTreeGitModified", default = true },
NeoTreeGitUnstaged = { link = "NeoTreeGitModified", default = true },
NeoTreeIndentMarker = { link = "NonText" },
-- WindowPicker
-- NvimWindowSwitch = { bg = theme.ui.bg_m3, fg = theme.diag.warning },
-- NvimWindowSwitchNC = { link = "NvimWindowSwitch" },
-- Dashboard
DashboardShortCut = { fg = theme.syn.special1 },
DashboardHeader = { fg = theme.vcs.removed },
DashboardCenter = { fg = theme.syn.identifier },
DashboardFooter = { fg = theme.syn.comment },
DashboardDesc = { fg = theme.syn.identifier },
DashboardKey = { fg = theme.syn.special1 },
DashboardIcon = { fg = theme.ui.special },
-- Notify
NotifyBackground = { bg = theme.ui.bg },
NotifyERRORBorder = { link = "DiagnosticError" },
NotifyWARNBorder = { link = "DiagnosticWarn" },
NotifyINFOBorder = { link = "DiagnosticInfo" },
NotifyHINTBorder = { link = "DiagnosticHint" },
NotifyDEBUGBorder = { link = "Debug" },
NotifyTRACEBorder = { link = "Comment" },
NotifyERRORIcon = { link = "DiagnosticError" },
NotifyWARNIcon = { link = "DiagnosticWarn" },
NotifyINFOIcon = { link = "DiagnosticInfo" },
NotifyHINTIcon = { link = "DiagnosticHint" },
NotifyDEBUGIcon = { link = "Debug" },
NotifyTRACEIcon = { link = "Comment" },
NotifyERRORTitle = { link = "DiagnosticError" },
NotifyWARNTitle = { link = "DiagnosticWarn" },
NotifyINFOTitle = { link = "DiagnosticInfo" },
NotifyHINTTitle = { link = "DiagnosticHint" },
NotifyDEBUGTitle = { link = "Debug" },
NotifyTRACETitle = { link = "Comment" },
-- Dap-UI
-- DapUIVariable = { link = "Normal" },
DapUIScope = { link = "Special" }, -- guifg=#00F1F5"
DapUIType = { link = "Type" }, -- guifg=#D484FF"
-- DapUIValue = { link = "Normal" },
DapUIModifiedValue = { fg = theme.syn.special1, bold = true }, -- guifg=#00F1F5 gui=bold"
DapUIDecoration = { fg = theme.ui.float.fg_border }, -- guifg=#00F1F5"
DapUIThread = { fg = theme.syn.identifier }, --guifg=#A9FF68"
DapUIStoppedThread = { fg = theme.syn.special1 }, --guifg=#00f1f5"
-- DapUIFrameName = { link = "Normal"},
DapUISource = { fg = theme.syn.special2 }, -- guifg=#D484FF"
DapUILineNumber = { fg = theme.syn.special1 }, -- guifg=#00f1f5"
DapUIFloatBorder = { fg = theme.ui.float.fg_border }, -- guifg=#00F1F5"
DapUIWatchesEmpty = { fg = theme.diag.error }, -- guifg=#F70067"
DapUIWatchesValue = { fg = theme.syn.identifier }, -- guifg=#A9FF68"
DapUIWatchesError = { fg = theme.diag.error }, --guifg=#F70067"
DapUIBreakpointsPath = { link = "Directory" }, --guifg=#00F1F5"
DapUIBreakpointsInfo = { fg = theme.diag.info }, --guifg=#A9FF68"
DapUIBreakpointsCurrentLine = { fg = theme.syn.identifier, bold = true }, --guifg=#A9FF68 gui=bold"
-- DapUIBreakpointsLine = {}, -- DapUILineNumber"
DapUIBreakpointsDisabledLine = { link = "Comment" }, --guifg=#424242"
-- DapUICurrentFrameName = {}, -- DapUIBreakpointsCurrentLine"
DapUIStepOver = { fg = theme.syn.special1 }, --guifg=#00f1f5"
DapUIStepInto = { fg = theme.syn.special1 }, --guifg=#00f1f5"
DapUIStepBack = { fg = theme.syn.special1 }, --guifg=#00f1f5"
DapUIStepOut = { fg = theme.syn.special1 }, --guifg=#00f1f5"
DapUIStop = { fg = theme.diag.error }, --guifg=#F70067"
DapUIPlayPause = { fg = theme.syn.string }, --guifg=#A9FF68"
DapUIRestart = { fg = theme.syn.string }, --guifg=#A9FF68"
DapUIUnavailable = { fg = theme.syn.comment }, --guifg=#424242"
-- Floaterm
FloatermBorder = { fg = theme.ui.float.fg_border, bg = theme.ui.bg },
-- NeoVim = {},
healthError = { fg = theme.diag.error },
healthSuccess = { fg = theme.diag.ok },
healthWarning = { fg = theme.diag.warning },
-- Cmp
CmpDocumentation = { link = "NormalFloat" },
CmpDocumentationBorder = { link = "FloatBorder" },
CmpCompletion = { link = "Pmenu" },
CmpCompletionSel = { link = "PmenuSel" },
CmpCompletionBorder = { fg = theme.ui.bg_search, bg = theme.ui.pmenu.bg },
CmpCompletionThumb = { link = "PmenuThumb" },
CmpCompletionSbar = { link = "PmenuSbar" },
CmpItemAbbr = { fg = theme.ui.pmenu.fg },
CmpItemAbbrDeprecated = { fg = theme.syn.comment, strikethrough = true },
CmpItemAbbrMatch = { fg = theme.syn.fun },
CmpItemAbbrMatchFuzzy = { link = "CmpItemAbbrMatch" },
CmpItemKindDefault = { fg = theme.ui.fg_dim },
CmpItemMenu = { fg = theme.ui.fg_dim },
CmpGhostText = { fg = theme.syn.comment },
CmpItemKindText = { fg = theme.ui.fg },
CmpItemKindMethod = { link = "@function.method" },
CmpItemKindFunction = { link = "Function" },
CmpItemKindConstructor = { link = "@constructor" },
CmpItemKindField = { link = "@variable.member" },
CmpItemKindVariable = { fg = theme.ui.fg_dim },
CmpItemKindClass = { link = "Type" },
CmpItemKindInterface = { link = "Type" },
CmpItemKindModule = { link = "@module" },
CmpItemKindProperty = { link = "@property" },
CmpItemKindUnit = { link = "Number" },
CmpItemKindValue = { link = "String" },
CmpItemKindEnum = { link = "Type" },
CmpItemKindKeyword = { link = "Keyword" },
CmpItemKindSnippet = { link = "Special" },
CmpItemKindColor = { link = "Special" },
CmpItemKindFile = { link = "Directory" },
CmpItemKindReference = { link = "Special" },
CmpItemKindFolder = { link = "Directory" },
CmpItemKindEnumMember = { link = "Constant" },
CmpItemKindConstant = { link = "Constant" },
CmpItemKindStruct = { link = "Type" },
CmpItemKindEvent = { link = "Type" },
CmpItemKindOperator = { link = "Operator" },
CmpItemKindTypeParameter = { link = "Type" },
CmpItemKindCopilot = { link = "String" },
-- blink.cmp
BlinkCmpMenu = { link = "Pmenu" },
BlinkCmpMenuSelection = { link = "PmenuSel" },
BlinkCmpMenuBorder = { fg = theme.ui.bg_search, bg = theme.ui.pmenu.bg },
BlinkCmpScrollBarThumb = { link = "PmenuThumb" },
BlinkCmpScrollBarGutter = { link = "PmenuSbar" },
BlinkCmpLabel = { fg = theme.ui.pmenu.fg },
BlinkCmpLabelMatch = { fg = theme.syn.fun },
BlinkCmpLabelDetails = { fg = theme.syn.comment },
BlinkCmpLabelDeprecated = { fg = theme.syn.comment, strikethrough = true },
BlinkCmpGhostText = { fg = theme.syn.comment },
BlinkCmpDoc = { link = "NormalFloat" },
BlinkCmpDocBorder = { link = "FloatBorder" },
BlinkCmpDocCursorLine = { link = "Visual"},
BlinkCmpSignatureHelp = { link = "NormalFloat" },
BlinkCmpSignatureHelpBorder = { link = "FloatBorder" },
BlinkCmpSignatureHelpActiveParameter = { link = "LspSignatureActiveParameter"},
BlinkCmpKind = { fg = theme.ui.fg_dim },
BlinkCmpKindText = { fg = theme.ui.fg },
BlinkCmpKindMethod = { link = "@function.method" },
BlinkCmpKindFunction = { link = "Function" },
BlinkCmpKindConstructor = { link = "@constructor" },
BlinkCmpKindField = { link = "@variable.member" },
BlinkCmpKindVariable = { fg = theme.ui.fg_dim },
BlinkCmpKindClass = { link = "Type" },
BlinkCmpKindInterface = { link = "Type" },
BlinkCmpKindModule = { link = "@module" },
BlinkCmpKindProperty = { link = "@property" },
BlinkCmpKindUnit = { link = "Number" },
BlinkCmpKindValue = { link = "String" },
BlinkCmpKindEnum = { link = "Type" },
BlinkCmpKindKeyword = { link = "Keyword" },
BlinkCmpKindSnippet = { link = "Special" },
BlinkCmpKindColor = { link = "Special" },
BlinkCmpKindFile = { link = "Directory" },
BlinkCmpKindReference = { link = "Special" },
BlinkCmpKindFolder = { link = "Directory" },
BlinkCmpKindEnumMember = { link = "Constant" },
BlinkCmpKindConstant = { link = "Constant" },
BlinkCmpKindStruct = { link = "Type" },
BlinkCmpKindEvent = { link = "Type" },
BlinkCmpKindOperator = { link = "Operator" },
BlinkCmpKindTypeParameter = { link = "Type" },
BlinkCmpKindCopilot = { link = "String" },
-- IndentBlankline
IndentBlanklineChar = { fg = theme.ui.whitespace },
IndentBlanklineSpaceChar = { fg = theme.ui.whitespace },
IndentBlanklineSpaceCharBlankline = { fg = theme.ui.whitespace },
IndentBlanklineContextChar = { fg = theme.ui.special },
IndentBlanklineContextStart = { sp = theme.ui.special, underline = true },
IblIndent = { fg = theme.ui.whitespace },
IblWhitespace = { fg = theme.ui.whitespace },
IblScope = { fg = theme.ui.special },
-- Lazy
LazyProgressTodo = { fg = theme.ui.nontext },
-- Trouble
TroubleIndent = { fg = theme.ui.whitespace },
TroublePos = { fg = theme.ui.special },
-- Nvim-Navic
NavicIconsFile = { link = "Directory" },
NavicIconsModule = { link = "@module" },
NavicIconsNamespace = { link = "@module" },
NavicIconsPackage = { link = "@module" },
NavicIconsClass = { link = "Type" },
NavicIconsMethod = { link = "@function.method" },
NavicIconsProperty = { link = "@property" },
NavicIconsField = { link = "@variable.member" },
NavicIconsConstructor = { link = "@constructor" },
NavicIconsEnum = { link = "Type" },
NavicIconsInterface = { link = "Type" },
NavicIconsFunction = { link = "Function" },
NavicIconsVariable = { link = "@variable" },
NavicIconsConstant = { link = "Constant" },
NavicIconsString = { link = "String" },
NavicIconsNumber = { link = "Number" },
NavicIconsBoolean = { link = "Boolean" },
NavicIconsArray = { link = "Type" },
NavicIconsObject = { link = "Type" },
NavicIconsKey = { link = "Identifier" },
NavicIconsNull = { link = "Type" },
NavicIconsEnumMember = { link = "Constant" },
NavicIconsStruct = { link = "Structure" },
NavicIconsEvent = { link = "Structure" },
NavicIconsOperator = { link = "Operator" },
NavicIconsTypeParameter = { link = "Type" },
NavicText = { fg = theme.ui.fg },
NavicSeparator = { fg = theme.ui.fg },
-- Aerial icons
AerialFileIcon = { link = "Directory" },
AerialModuleIcon = { link = "@module" },
AerialNamespaceIcon = { link = "@module" },
AerialPackageIcon = { link = "@module" },
AerialClassIcon = { link = "Type" },
AerialMethodIcon = { link = "@function.method" },
AerialPropertyIcon = { link = "@property" },
AerialFieldIcon = { link = "@variable.member" },
AerialConstructorIcon = { link = "@constructor" },
AerialEnumIcon = { link = "Type" },
AerialInterfaceIcon = { link = "Type" },
AerialFunctionIcon = { link = "Function" },
AerialVariableIcon = { link = "@variable" },
AerialConstantIcon = { link = "Constant" },
AerialStringIcon = { link = "String" },
AerialNumberIcon = { link = "Number" },
AerialBooleanIcon = { link = "Boolean" },
AerialArrayIcon = { link = "Type" },
AerialObjectIcon = { link = "Type" },
AerialKeyIcon = { link = "Identifier" },
AerialNullIcon = { link = "Type" },
AerialEnumMemberIcon = { link = "Constant" },
AerialStructIcon = { link = "Structure" },
AerialEventIcon = { link = "Structure" },
AerialOperatorIcon = { link = "Operator" },
AerialTypeParameterIcon = { link = "Type" },
-- Mini
MiniAnimateCursor = { reverse = true, nocombine = true },
MiniAnimateNormalFloat = { link = "NormalFloat" },
MiniClueBorder = { link = "FloatBorder" },
MiniClueDescGroup = { link = "DiagnosticFloatingWarn" },
MiniClueDescSingle = { link = "NormalFloat" },
MiniClueNextKey = { link = "DiagnosticFloatingHint" },
MiniClueNextKeyWithPostkeys = { link = "DiagnosticFloatingError" },
MiniClueSeparator = { link = "DiagnosticFloatingInfo" },
MiniClueTitle = { link = "FloatTitle" },
MiniCompletionActiveParameter = { underline = true },
MiniCursorword = { underline = true },
MiniCursorwordCurrent = { underline = true },
MiniDepsChangeAdded = { link = "diffAdded" },
MiniDepsChangeRemoved = { link = "diffRemoved" },
MiniDepsHint = { fg = theme.diag.hint },
MiniDepsInfo = { fg = theme.diag.info },
MiniDepsMsgBreaking = { fg = theme.diag.warning },
MiniDepsPlaceholder = { link = "Comment" },
MiniDepsTitle = { link = "Title" },
MiniDepsTitleError = { link = "DiffDelete" },
MiniDepsTitleSame = { link = "DiffText" },
MiniDepsTitleUpdate = { link = "DiffAdd" },
MiniDiffSignAdd = { fg = theme.vcs.added, bg = theme.ui.bg_gutter },
MiniDiffSignChange = { fg = theme.vcs.changed, bg = theme.ui.bg_gutter },
MiniDiffSignDelete = { fg = theme.vcs.removed, bg = theme.ui.bg_gutter },
MiniDiffOverAdd = { link = "DiffAdd" },
MiniDiffOverChange = { link = "DiffText" },
MiniDiffOverContext = { link = "DiffChange" },
MiniDiffOverDelete = { link = "DiffDelete" },
MiniFilesBorder = { link = "FloatBorder" },
MiniFilesBorderModified = { link = "DiagnosticFloatingWarn" },
MiniFilesCursorLine = { link = "CursorLine" },
MiniFilesDirectory = { link = "Directory" },
MiniFilesFile = { fg = theme.ui.fg },
MiniFilesNormal = { link = "NormalFloat" },
MiniFilesTitle = { fg = theme.ui.special, bg = theme.ui.float.bg_border, bold = true },
MiniFilesTitleFocused = { fg = theme.ui.fg, bg = theme.ui.float.bg_border, bold = true },
MiniHipatternsFixme = { fg = theme.ui.bg, bg = theme.diag.error, bold = true },
MiniHipatternsHack = { fg = theme.ui.bg, bg = theme.diag.warning, bold = true },
MiniHipatternsNote = { fg = theme.ui.bg, bg = theme.diag.info, bold = true },
MiniHipatternsTodo = { fg = theme.ui.bg, bg = theme.diag.hint, bold = true },
MiniIconsAzure = { fg = theme.syn.special1 },
MiniIconsBlue = { fg = theme.syn.fun },
MiniIconsCyan = { fg = theme.syn.type },
MiniIconsGreen = { fg = theme.syn.string },
MiniIconsGrey = { fg = theme.ui.fg },
MiniIconsOrange = { fg = theme.syn.constant },
MiniIconsPurple = { fg = theme.syn.keyword },
MiniIconsRed = { fg = theme.syn.special3 },
MiniIconsYellow = { fg = theme.syn.identifier },
MiniIndentscopeSymbol = { fg = theme.syn.special1 },
MiniIndentscopePrefix = { nocombine = true }, -- Make it invisible
MiniJump = { link = "SpellRare" },
MiniJump2dDim = { link = "Comment" },
MiniJump2dSpot = { fg = theme.syn.constant, bold = true, nocombine = true },
MiniJump2dSpotAhead = { fg = theme.diag.hint, bg = theme.ui.bg_dim, nocombine = true },
MiniJump2dSpotUnique = { fg = theme.syn.special1, bold = true, nocombine = true },
MiniMapNormal = { link = "NormalFloat" },
MiniMapSymbolCount = { link = "Special" },
MiniMapSymbolLine = { link = "Title" },
MiniMapSymbolView = { link = "Delimiter" },
MiniNotifyBorder = { link = "FloatBorder" },
MiniNotifyNormal = { link = "NormalFloat" },
MiniNotifyTitle = { link = "FloatTitle" },
MiniOperatorsExchangeFrom = { link = "IncSearch" },
MiniPickBorder = { link = "FloatBorder" },
MiniPickBorderBusy = { link = "DiagnosticFloatingWarn" },
MiniPickBorderText = { link = "FloatTitle" },
MiniPickIconDirectory = { link = "Directory" },
MiniPickIconFile = { link = "MiniPickNormal" },
MiniPickHeader = { link = "DiagnosticFloatingHint" },
MiniPickMatchCurrent = { link = "CursorLine" },
MiniPickMatchMarked = { link = "Visual" },
MiniPickMatchRanges = { link = "DiagnosticFloatingHint" },
MiniPickNormal = { link = "NormalFloat" },
MiniPickPreviewLine = { link = "CursorLine" },
MiniPickPreviewRegion = { link = "IncSearch" },
MiniPickPrompt = { fg = theme.syn.fun, bg = theme.ui.float.bg_border },
MiniStarterCurrent = { nocombine = true },
MiniStarterFooter = { fg = theme.syn.deprecated },
MiniStarterHeader = { link = "Title" },
MiniStarterInactive = { link = "Comment" },
MiniStarterItem = { link = "Normal" },
MiniStarterItemBullet = { link = "Delimiter" },
MiniStarterItemPrefix = { fg = theme.diag.warning },
MiniStarterSection = { fg = theme.diag.ok },
MiniStarterQuery = { fg = theme.diag.info },
MiniStatuslineDevinfo = { fg = theme.ui.fg_dim, bg = theme.ui.bg_p1 },
MiniStatuslineFileinfo = { fg = theme.ui.fg_dim, bg = theme.ui.bg_p1 },
MiniStatuslineFilename = { fg = theme.ui.fg_dim, bg = theme.ui.bg_dim },
MiniStatuslineInactive = { link = "StatusLineNC" },
MiniStatuslineModeCommand = { fg = theme.ui.bg, bg = theme.syn.operator, bold = true },
MiniStatuslineModeInsert = { fg = theme.ui.bg, bg = theme.diag.ok, bold = true },
MiniStatuslineModeNormal = { fg = theme.ui.bg_m3, bg = theme.syn.fun, bold = true },
MiniStatuslineModeOther = { fg = theme.ui.bg, bg = theme.syn.type, bold = true },
MiniStatuslineModeReplace = { fg = theme.ui.bg, bg = theme.syn.constant, bold = true },
MiniStatuslineModeVisual = { fg = theme.ui.bg, bg = theme.syn.keyword, bold = true },
MiniSurround = { link = "IncSearch" },
MiniTablineCurrent = { fg = theme.ui.fg_dim, bg = theme.ui.bg_p1, bold = true },
MiniTablineFill = { link = "TabLineFill" },
MiniTablineHidden = { fg = theme.ui.special, bg = theme.ui.bg_m3 },
MiniTablineModifiedCurrent = { fg = theme.ui.bg_p1, bg = theme.ui.fg_dim, bold = true },
MiniTablineModifiedHidden = { fg = theme.ui.bg_m3, bg = theme.ui.special },
MiniTablineModifiedVisible = { fg = theme.ui.bg_m3, bg = theme.ui.special, bold = true },
MiniTablineTabpagesection = { fg = theme.ui.fg, bg = theme.ui.bg_search, bold = true },
MiniTablineVisible = { fg = theme.ui.special, bg = theme.ui.bg_m3, bold = true },
MiniTestEmphasis = { bold = true },
MiniTestFail = { fg = theme.diag.error, bold = true },
MiniTestPass = { fg = theme.diag.ok, bold = true },
MiniTrailspace = { bg = theme.vcs.removed },
NeotestAdapterName = { fg = theme.syn.special3, },
NeotestDir = { fg = theme.syn.fun, },
NeotestExpandMarker = { fg = theme.syn.punct, bold = true, },
NeotestFailed = { fg = theme.diag.error },
NeotestFile = { fg = theme.syn.fun, },
NeotestFocused = { bold = true, underline = true, },
NeotestIndent = { fg = theme.ui.special, bold = true, },
NeotestMarked = { fg = theme.diag.warning, italic = true, },
NeotestNamespace = { fg = theme.syn.fun, },
NeotestPassed = { fg = theme.diag.ok },
NeotestRunning = { fg = theme.vcs.changed, },
NeotestWinSelect = { fg = theme.diag.hint },
NeotestSkipped = { fg = theme.syn.special1 },
NeotestTarget = { fg = theme.syn.special3 },
NeotestTest = { fg = theme.ui.float.fg },
NeotestUnknown = { fg = theme.syn.deprecated },
NeotestWatching = { fg = theme.vcs.changed, },
SnacksPicker = { bg = theme.ui.bg },
SnacksPickerTitle = { fg = theme.ui.fg, bg = theme.ui.bg },
SnacksPickerBorder = { fg = theme.ui.bg },
SnacksPickerNormal = { fg = theme.ui.fg, bg = theme.ui.bg },
SnacksPickerMatch = { fg = theme.ui.fg },
SnacksPickerCursor = { fg = theme.ui.bg, bg = theme.ui.bg },
SnacksPickerPrompt = { fg = theme.ui.fg },
SnacksPickerDim = { fg = theme.ui.fg_dim },
SnacksInputIcon = { fg = theme.ui.fg, bg = theme.ui.bg },
SnacksIndent = { fg = theme.ui.bg_gutter, bg = theme.ui.bg },
SnacksIndentScope = { fg = theme.ui.bg, bg = theme.ui.bg },
SnacksPickerInputBorder = { fg = theme.ui.bg, bg = theme.ui.bg },
SnacksPickerInputTitle = { fg = theme.ui.bg, bg = theme.ui.bg },
SnacksPickerBoxTitle = { fg = theme.ui.bg, bg = theme.ui.bg },
SnacksPickerSelected = { fg = theme.ui.bg },
SnacksPickerPickWinCurrent = { fg = theme.ui.fg, bg = theme.ui.bg, bold = true },
SnacksPickerPickWin = { fg = theme.ui.fg, bg = theme.ui.bg_search, bold = true },
BufferLineBackground = { fg = theme.ui.none, bg = theme.ui.none },
BufferLineBuffer = { fg = theme.ui.none, bg = theme.ui.none },
BufferLineBufferSelected = { bg = theme.ui.none },
BufferLineBufferVisible = { bg = theme.ui.none },
BufferLineCloseButton = { bg = theme.ui.none },
BufferLineCloseButtonSelected = { bg = theme.ui.none },
BufferLineCloseButtonVisible = { bg = theme.ui.none },
BufferLineDuplicate = { bg = theme.ui.none },
BufferLineDuplicateSelected = { bg = theme.ui.none },
BufferLineDuplicateVisible = { bg = theme.ui.none },
BufferLineError = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineErrorDiagnostic = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineErrorDiagnosticSelected = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineErrorDiagnosticVisible = { bg = theme.ui.none },
BufferLineErrorSelected = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineErrorVisible = { bg = theme.ui.none },
BufferLineFill = { bg = theme.ui.none },
BufferLineHint = { sp = theme.ui.none, bg = theme.ui.none },
BufferLineHintDiagnostic = { sp = theme.ui.none, bg = theme.ui.none },
BufferLineHintDiagnosticSelected = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineHintDiagnosticVisible = { bg = theme.ui.none },
BufferLineHintSelected = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineHintVisible = { bg = theme.ui.none },
BufferLineInfo = { sp = theme.ui.none, bg = theme.ui.none },
BufferLineInfoDiagnostic = { sp = theme.ui.none, bg = theme.ui.none },
BufferLineInfoDiagnosticSelected = { sp = theme.ui.none, bg = theme.ui.none },
BufferLineInfoDiagnosticVisible = { bg = theme.ui.none },
BufferLineInfoSelected = { bg = theme.ui.none, sp = theme.ui.none },
BufferLineInfoVisible = { bg = theme.ui.none },
BufferLineIndicatorSelected = { bg = theme.ui.none },
BufferLineModified = { bg = theme.ui.none },
BufferLineModifiedSelected = { bg = theme.ui.none },
BufferLineModifiedVisible = { bg = theme.ui.none },
BufferLineNumbers = { bg = theme.ui.none },
BufferLineNumbersSelected = { bg = theme.ui.none },
BufferLineNumbersVisible = { bg = theme.ui.none },
BufferLineOffsetSeparator = { bg = theme.ui.none },
BufferLineSeparator = { bg = theme.ui.none },
BufferLineSeparatorSelected = { bg = theme.ui.none },
BufferLineSeparatorVisible = { bg = theme.ui.none },
BufferLineTab = { bg = theme.ui.none },
BufferLinePick = { bg = theme.ui.none },
BufferLinePickSelected = { bg = theme.ui.none },
BufferLineDevIconLua = { bg = theme.ui.none },
BufferLineDevIconLuaSelected = { bg = theme.ui.none },
BufferLineDevIconLuaVisible = { bg = theme.ui.none },
BufferLineDevIconLuaInactive = { bg = theme.ui.none },
BufferLinePickVisible = { bg = theme.ui.none },
BufferLineIndicatorVisible = { bg = theme.ui.none },
BufferLineTabClose = { bg = theme.ui.none },
BufferLineTabSelected = { bg = theme.ui.none },
BufferLineTabSeparator = { bg = theme.ui.none },
BufferLineTabSeparatorSelected = { bg = theme.ui.none },
BufferLineTruncMarker = { bg = theme.ui.none },
BufferLineWarning = { bg = theme.ui.none },
BufferLineWarningDiagnostic = { bg = theme.ui.none },
BufferLineWarningDiagnosticSelected = { bg = theme.ui.none },
BufferLineWarningDiagnosticVisible = { bg = theme.ui.none },
BufferLineWarningSelected = { bg = theme.ui.none },
BufferLineWarningVisible = { bg = theme.ui.none },
}
end
return M
+103
View File
@@ -0,0 +1,103 @@
-- local c = require("kanso.color")
local M = {}
---@param colors KansoColors
---@param config? KansoConfig
function M.setup(colors, config)
local theme = colors.theme
config = config or require("kanso").config
return {
-- *Comment any comment
Comment = vim.tbl_extend("force", { fg = theme.syn.comment }, config.commentStyle),
-- *Constant any constant
Constant = { fg = theme.syn.constant },
-- String a string constant: "this is a string"
String = { fg = theme.syn.string },
-- Character a character constant: 'c', '\n'
Character = { link = "String" },
-- Number a number constant: 234, 0xff
Number = { fg = theme.syn.number },
-- Boolean a boolean constant: TRUE, false
Boolean = { fg = theme.syn.constant },
-- Float a floating point constant: 2.3e10
Float = { link = "Number" },
-- *Identifier any variable name
Identifier = { fg = theme.syn.identifier },
-- Function function name (also: methods for classes)
Function = vim.tbl_extend("force", { fg = theme.syn.fun }, config.functionStyle),
-- *Statement any statement
Statement = vim.tbl_extend("force", { fg = theme.syn.statement }, config.statementStyle),
-- Conditional if, then, else, endif, switch, etc.
-- Repeat for, do, while, etc.
-- Label case, default, etc.
-- Operator "sizeof", "+", "*", etc.
Operator = { fg = theme.syn.operator },
-- Keyword any other keyword
Keyword = vim.tbl_extend("force", { fg = theme.syn.keyword }, config.keywordStyle),
-- Exception try, catch, throw
Exception = { fg = theme.syn.special2 },
-- *PreProc generic Preprocessor
PreProc = { fg = theme.syn.preproc },
-- Include preprocessor #include
-- Define preprocessor #define
-- Macro same as Define
-- PreCondit preprocessor #if, #else, #endif, etc.
-- *Type int, long, char, etc.
Type = vim.tbl_extend("force", { fg = theme.syn.type }, config.typeStyle),
-- StorageClass static, register, volatile, etc.
-- Structure struct, union, enum, etc.
-- Typedef A typedef
-- *Special any special symbol
Special = { fg = theme.syn.special1 },
-- SpecialChar special character in a constant
-- Tag you can use CTRL-] on this
-- Delimiter character that needs attention
Delimiter = { fg = theme.syn.punct },
-- SpecialComment special things inside a comment
-- Debug debugging statements
-- *Underlined text that stands out, HTML links
Underlined = { fg = theme.syn.special1, underline = true },
Bold = { bold = true },
Italic = { italic = true },
-- *Ignore left blank, hidden |hl-Ignore|
Ignore = { link = "NonText" },
-- *Error any erroneous construct
Error = { fg = theme.diag.error },
-- *Todo anything that needs extra attention; mostly the keywords TODO FIXME WARNING and XXX
Todo = { fg = theme.ui.fg_reverse, bg = theme.diag.info, bold = true },
qfLineNr = { link = "lineNr" },
qfFileName = { link = "Directory" },
-- htmlH1 = {},
-- htmlH2 = {},
-- mkdHeading = {},
-- mkdCode = {},
-- mkdCodeDelimiter = {},
-- mkdCodeStart = {},
-- mkdCodeEnd = {},
-- mkdLink = {},
-- markdownHeadingDelimiter = {},
markdownCode = { fg = theme.syn.string },
markdownCodeBlock = { fg = theme.syn.string },
markdownEscape = { fg = "NONE" },
-- markdownH1 = {},
-- markdownH2 = {},
-- markdownLinkText = {},
}
end
return M
+165
View File
@@ -0,0 +1,165 @@
local M = {}
---@param colors KansoColors
---@param config? KansoConfig
function M.setup(colors, config)
config = config or require("kanso").config
local theme = colors.theme
return {
-- @variable various variable names
["@variable"] = { fg = theme.ui.fg },
-- @variable.builtin (Special) built-in variable names (e.g. `this`, `self`)
["@variable.builtin"] = { fg = theme.syn.special2, italic = true },
-- @variable.parameter parameters of a function
["@variable.parameter"] = { fg = theme.syn.parameter },
-- @variable.parameter.builtin special parameters (e.g. `_`, `it`)
-- @variable.member object and struct fields
["@variable.member"] = { fg = theme.syn.identifier },
--
-- @constant (Constant) constant identifiers
-- @constant.builtin built-in constant values
-- @constant.macro constants defined by the preprocessor
--
-- @module (Structure) modules or namespaces
-- @module.builtin built-in modules or namespaces
-- @label `GOTO` and other labels (e.g. `label:` in C), including heredoc labels
--
-- @string string literals
-- @string.documentation string documenting code (e.g. Python docstrings)
-- @string.regexp regular expressions
["@string.regexp"] = { fg = theme.syn.regex },
-- @string.escape escape sequences
["@string.escape"] = { fg = theme.syn.regex },
-- @string.special other special strings (e.g. dates)
-- @string.special.symbol symbols or atoms
["@string.special.symbol"] = { fg = theme.syn.identifier },
-- @string.special.path filenames
-- @string.special.url (Underlined) URIs (e.g. hyperlinks)
["@string.special.url"] = { fg = theme.syn.special1, undercurl = true },
-- @character character literals
-- @character.special special characters (e.g. wildcards)
--
-- @boolean boolean literals
-- @number numeric literals
-- @number.float floating-point number literals
--
-- @type type or class definitions and annotations
-- @type.builtin built-in types
-- @type.definition identifiers in type definitions (e.g. `typedef <type> <identifier>` in C)
--
-- @attribute attribute annotations (e.g. Python decorators, Rust lifetimes)
["@attribute"] = { link = "Constant" },
-- @attribute.builtin builtin annotations (e.g. `@property` in Python)
-- @property the key in key/value pairs
--
-- @function function definitions
-- @function.builtin built-in functions
-- @function.call function calls
-- @function.macro preprocessor macros
--
-- @function.method method definitions
-- @function.method.call method calls
--
-- @constructor constructor calls and definitions
["@constructor"] = { fg = theme.syn.special1 },
["@constructor.lua"] = { fg = theme.syn.keyword },
-- @operator symbolic operators (e.g. `+`, `*`)
["@operator"] = { link = "Operator" },
--
-- @keyword keywords not fitting into specific categories
-- @keyword.coroutine keywords related to coroutines (e.g. `go` in Go, `async/await` in Python)
-- @keyword.function keywords that define a function (e.g. `func` in Go, `def` in Python)
-- @keyword.operator operators that are English words (e.g. `and`, `or`)
["@keyword.operator"] = { fg = theme.syn.operator },
-- @keyword.import keywords for including modules (e.g. `import`, `from` in Python)
["@keyword.import"] = { link = "PreProc" },
-- @keyword.type keywords defining composite types (e.g. `struct`, `enum`)
-- @keyword.modifier keywords defining type modifiers (e.g. `const`, `static`, `public`)
-- @keyword.repeat keywords related to loops (e.g. `for`, `while`)
-- @keyword.return keywords like `return` and `yield`
["@keyword.return"] = vim.tbl_extend("force", { fg = theme.syn.special3 }, config.keywordStyle),
-- @keyword.debug keywords related to debugging
-- @keyword.exception keywords related to exceptions (e.g. `throw`, `catch`)
["@keyword.exception"] = vim.tbl_extend("force", { fg = theme.syn.special3 }, config.statementStyle),
["@keyword.luap"] = { link = "@string.regex" },
--
-- @keyword.conditional keywords related to conditionals (e.g. `if`, `else`)
-- @keyword.conditional.ternary ternary operator (e.g. `?`, `:`)
--
-- @keyword.directive various preprocessor directives and shebangs
-- @keyword.directive.define preprocessor definition directives
--
-- @punctuation.delimiter delimiters (e.g. `;`, `.`, `,`)
["@punctuation.delimiter"] = { fg = theme.syn.punct },
-- @punctuation.bracket brackets (e.g. `()`, `{}`, `[]`)
["@punctuation.bracket"] = { fg = theme.syn.punct },
-- @punctuation.special special symbols (e.g. `{}` in string interpolation)
["@punctuation.special"] = { fg = theme.syn.special1 },
--
-- @comment line and block comments
-- @comment.documentation comments documenting code
--
-- @comment.error error-type comments (e.g. `ERROR`, `FIXME`, `DEPRECATED`)
["@comment.error"] = { fg = theme.ui.fg, bg = theme.diag.error, bold = true },
-- @comment.warning warning-type comments (e.g. `WARNING`, `FIX`, `HACK`)
["@comment.warning"] = { fg = theme.ui.fg_reverse, bg = theme.diag.warning, bold = true },
-- @comment.todo todo-type comments (e.g. `TODO`, `WIP`)
-- @comment.note note-type comments (e.g. `NOTE`, `INFO`, `XXX`)
["@comment.note"] = { fg = theme.ui.fg_reverse, bg = theme.diag.hint, bold = true },
--
-- @markup.strong bold text
["@markup.strong"] = { bold = true },
-- @markup.italic italic text
["@markup.italic"] = { italic = true },
-- @markup.strikethrough struck-through text
["@markup.strikethrough"] = { strikethrough = true },
-- @markup.underline underlined text (only for literal underline markup!)
["@markup.underline"] = { underline = true },
--
-- @markup.heading headings, titles (including markers)
["@markup.heading"] = { link = "Function" },
-- @markup.heading.1 top-level heading
-- @markup.heading.2 section heading
-- @markup.heading.3 subsection heading
-- @markup.heading.4 and so on
-- @markup.heading.5 and so forth
-- @markup.heading.6 six levels ought to be enough for anybody
--
-- @markup.quote block quotes
["@markup.quote"] = { link = "@variable.parameter" },
-- @markup.math math environments (e.g. `$ ... $` in LaTeX)
["@markup.math"] = { link = "Constant" },
-- @markup.environment environments (e.g. in LaTeX)
["@markup.environment"] = { link = "Keyword" },
--
-- @markup.link text references, footnotes, citations, etc.
-- @markup.link.label link, reference descriptions
-- @markup.link.url URL-style links
["@markup.link.url"] = { link = "@string.special.url" },
-- @markup.raw literal or verbatim text (e.g. inline code)
["@markup.raw"] = { link = "String" },
-- @markup.raw.block literal or verbatim text as a stand-alone block
--
-- @markup.list list markers
-- @markup.list.checked checked todo-style list markers
-- @markup.list.unchecked unchecked todo-style list markers
--
-- @diff.plus added text (for diff files)
["@diff.plus"] = { fg = theme.vcs.added },
-- @diff.minus deleted text (for diff files)
["@diff.minus"] = { fg = theme.vcs.removed },
-- @diff.delta changed text (for diff files)
["@diff.delta"] = { fg = theme.vcs.changed },
--
-- @tag XML-style tag names (e.g. in XML, HTML, etc.)
-- @tag.builtin XML-style tag names (e.g. HTML5 tags)
-- @tag.attribute XML-style tag attributes
["@tag.attribute"] = { fg = theme.syn.identifier },
-- @tag.delimiter XML-style tag delimiters
["@tag.delimiter"] = { fg = theme.syn.punct },
}
end
return M
--vim: fdm=marker