Initial commit
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user