feat: my own neovim theme!
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
local function get(p)
|
||||
return {
|
||||
Normal = { fg = p.fg_bright, bg = p.bg },
|
||||
NormalFloat = { fg = p.fg_bright, bg = p.bg_dark },
|
||||
NormalNC = { fg = p.fg, bg = p.bg },
|
||||
EndOfBuffer = { fg = p.bg },
|
||||
|
||||
Cursor = { fg = p.bg, bg = p.fg_bright },
|
||||
lCursor = { link = "Cursor" },
|
||||
CursorIM = { link = "Cursor" },
|
||||
CursorLine = { bg = p.bg_highlight },
|
||||
CursorColumn = { bg = p.bg_highlight },
|
||||
CursorLineNr = { fg = p.gold },
|
||||
|
||||
LineNr = { fg = p.fg_muted2 },
|
||||
SignColumn = { bg = p.bg },
|
||||
|
||||
FoldColumn = { fg = p.fg_subtle, bg = p.bg },
|
||||
Folded = { fg = p.fg_muted, bg = p.bg_highlight },
|
||||
|
||||
Pmenu = { fg = p.fg, bg = p.bg_dark },
|
||||
PmenuSel = { fg = p.fg_bright, bg = p.deep_lavender },
|
||||
PmenuSbar = { bg = p.bg_visual },
|
||||
PmenuThumb = { bg = p.fg_subtle },
|
||||
PmenuKind = { fg = p.lavender },
|
||||
PmenuKindSel = { fg = p.fg_white, bg = p.deep_lavender },
|
||||
PmenuExtra = { fg = p.fg_muted },
|
||||
PmenuExtraSel = { fg = p.fg_bright },
|
||||
|
||||
Search = { fg = p.bg, bg = p.gold },
|
||||
IncSearch = { fg = p.bg, bg = p.bright_gold },
|
||||
CurSearch = { fg = p.bg, bg = p.bright_gold },
|
||||
Substitute = { fg = p.bg, bg = p.coral },
|
||||
|
||||
Visual = { bg = p.accent_subtle },
|
||||
VisualNOS = { bg = p.accent_subtle },
|
||||
|
||||
MatchParen = { bg = p.accent_muted },
|
||||
|
||||
ColorColumn = { bg = p.bg_highlight },
|
||||
Conceal = { fg = p.fg_subtle },
|
||||
|
||||
SpellBad = { sp = p.coral, undercurl = true },
|
||||
SpellCap = { sp = p.gold, undercurl = true },
|
||||
SpellLocal = { sp = p.teal, undercurl = true },
|
||||
SpellRare = { sp = p.lavender, undercurl = true },
|
||||
|
||||
StatusLine = { fg = p.fg, bg = p.bg_highlight },
|
||||
StatusLineNC = { fg = p.fg_muted, bg = p.bg },
|
||||
|
||||
TabLine = { fg = p.fg_muted, bg = p.bg },
|
||||
TabLineFill = { bg = p.bg },
|
||||
TabLineSel = { fg = p.fg_bright, bg = p.bg_highlight },
|
||||
|
||||
WinSeparator = { fg = p.bg_border },
|
||||
VertSplit = { fg = p.bg_border },
|
||||
|
||||
FloatBorder = { fg = p.lavender, bg = p.bg_dark },
|
||||
FloatTitle = { fg = p.lavender },
|
||||
|
||||
NonText = { fg = p.bg_visual },
|
||||
Whitespace = { fg = p.bg_visual },
|
||||
SpecialKey = { fg = p.fg_subtle },
|
||||
|
||||
Question = { fg = p.lavender },
|
||||
Title = { fg = p.lavender },
|
||||
WarningMsg = { fg = p.gold },
|
||||
ErrorMsg = { fg = p.coral },
|
||||
MoreMsg = { fg = p.teal },
|
||||
ModeMsg = { fg = p.fg },
|
||||
|
||||
WildMenu = { fg = p.bg, bg = p.lavender },
|
||||
QuickFixLine = { bg = p.accent_subtle },
|
||||
|
||||
DiffAdd = { bg = p.success_muted },
|
||||
DiffDelete = { bg = p.danger_muted },
|
||||
DiffChange = { bg = p.attention_muted },
|
||||
DiffText = { bg = p.attention_muted },
|
||||
|
||||
diffAdded = { fg = p.teal },
|
||||
diffRemoved = { fg = p.coral },
|
||||
diffFile = { fg = p.lavender },
|
||||
diffNewFile = { fg = p.teal },
|
||||
diffLine = { fg = p.fg_muted },
|
||||
diffIndexLine = { fg = p.fg_muted },
|
||||
|
||||
Directory = { fg = p.lavender },
|
||||
|
||||
Debug = { fg = p.coral },
|
||||
DebugPC = { bg = p.accent_subtle },
|
||||
DebugBreakpoint = { fg = p.bg, bg = p.coral },
|
||||
}
|
||||
end
|
||||
|
||||
return { get = get }
|
||||
@@ -0,0 +1,80 @@
|
||||
local function get(p)
|
||||
return {
|
||||
DiagnosticError = { fg = p.coral },
|
||||
DiagnosticWarn = { fg = p.gold },
|
||||
DiagnosticInfo = { fg = p.lavender },
|
||||
DiagnosticHint = { fg = p.fg_muted },
|
||||
DiagnosticOk = { fg = p.teal },
|
||||
|
||||
DiagnosticVirtualTextError = { fg = p.coral },
|
||||
DiagnosticVirtualTextWarn = { fg = p.gold },
|
||||
DiagnosticVirtualTextInfo = { fg = p.lavender },
|
||||
DiagnosticVirtualTextHint = { fg = p.fg_muted },
|
||||
DiagnosticVirtualTextOk = { fg = p.teal },
|
||||
|
||||
DiagnosticUnderlineError = { sp = p.coral, undercurl = true },
|
||||
DiagnosticUnderlineWarn = { sp = p.gold, undercurl = true },
|
||||
DiagnosticUnderlineInfo = { sp = p.lavender, undercurl = true },
|
||||
DiagnosticUnderlineHint = { sp = p.fg_muted, undercurl = true },
|
||||
DiagnosticUnderlineOk = { sp = p.teal, undercurl = true },
|
||||
|
||||
DiagnosticFloatingError = { fg = p.coral },
|
||||
DiagnosticFloatingWarn = { fg = p.gold },
|
||||
DiagnosticFloatingInfo = { fg = p.lavender },
|
||||
DiagnosticFloatingHint = { fg = p.fg_muted },
|
||||
|
||||
DiagnosticSignError = { fg = p.coral },
|
||||
DiagnosticSignWarn = { fg = p.gold },
|
||||
DiagnosticSignInfo = { fg = p.lavender },
|
||||
DiagnosticSignHint = { fg = p.fg_muted },
|
||||
DiagnosticSignOk = { fg = p.teal },
|
||||
|
||||
DiagnosticDeprecated = { sp = p.coral, strikethrough = true },
|
||||
DiagnosticUnnecessary = { fg = p.fg_muted2 },
|
||||
|
||||
LspReferenceText = { bg = p.accent_subtle },
|
||||
LspReferenceRead = { bg = p.accent_subtle },
|
||||
LspReferenceWrite = { bg = p.accent_subtle },
|
||||
|
||||
LspSignatureActiveParameter = { fg = p.gold, bold = true },
|
||||
|
||||
LspInlayHint = { fg = p.fg_muted2, bg = p.bg_highlight },
|
||||
|
||||
LspCodeLens = { fg = p.fg_muted },
|
||||
LspCodeLensSeparator = { fg = p.fg_muted },
|
||||
|
||||
LspInfoBorder = { fg = p.lavender },
|
||||
|
||||
-- Legacy LSP diagnostic groups
|
||||
LspDiagnosticsDefaultError = { fg = p.coral },
|
||||
LspDiagnosticsDefaultWarning = { fg = p.gold },
|
||||
LspDiagnosticsDefaultInformation = { fg = p.lavender },
|
||||
LspDiagnosticsDefaultHint = { fg = p.fg_muted },
|
||||
LspDiagnosticsDefaultOk = { fg = p.teal },
|
||||
LspDiagnosticsVirtualTextError = { fg = p.coral },
|
||||
LspDiagnosticsVirtualTextWarning = { fg = p.gold },
|
||||
LspDiagnosticsVirtualTextInformation = { fg = p.lavender },
|
||||
LspDiagnosticsVirtualTextHint = { fg = p.fg_muted },
|
||||
LspDiagnosticsUnderlineError = { sp = p.coral, undercurl = true },
|
||||
LspDiagnosticsUnderlineWarning = { sp = p.gold, undercurl = true },
|
||||
LspDiagnosticsUnderlineInformation = { sp = p.lavender, undercurl = true },
|
||||
LspDiagnosticsUnderlineHint = { sp = p.fg_muted, undercurl = true },
|
||||
LspDiagnosticsFloatingError = { fg = p.coral },
|
||||
LspDiagnosticsFloatingWarning = { fg = p.gold },
|
||||
LspDiagnosticsFloatingInformation = { fg = p.lavender },
|
||||
LspDiagnosticsFloatingHint = { fg = p.fg_muted },
|
||||
LspDiagnosticsSignError = { fg = p.coral },
|
||||
LspDiagnosticsSignWarning = { fg = p.gold },
|
||||
LspDiagnosticsSignInformation = { fg = p.lavender },
|
||||
LspDiagnosticsSignHint = { fg = p.fg_muted },
|
||||
|
||||
-- Terminal colors
|
||||
Terminal = { bg = p.bg },
|
||||
|
||||
healthError = { fg = p.coral },
|
||||
healthSuccess = { fg = p.teal },
|
||||
healthWarning = { fg = p.gold },
|
||||
}
|
||||
end
|
||||
|
||||
return { get = get }
|
||||
@@ -0,0 +1,62 @@
|
||||
local function get(p, config)
|
||||
local styles = config.styles
|
||||
|
||||
local function st(style_opts)
|
||||
local result = {}
|
||||
|
||||
if style_opts then
|
||||
for k, v in pairs(style_opts) do
|
||||
result[k] = v
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
return {
|
||||
Comment = vim.tbl_extend("force", { fg = p.fg_muted2 }, st(styles.comments)),
|
||||
|
||||
Constant = { fg = p.gold },
|
||||
String = { fg = p.lavender },
|
||||
Character = { fg = p.lavender },
|
||||
Number = { fg = p.gold },
|
||||
Boolean = { fg = p.gold },
|
||||
Float = { fg = p.gold },
|
||||
|
||||
Identifier = { fg = p.fg_bright },
|
||||
Function = vim.tbl_extend("force", { fg = p.deep_lavender }, st(styles.functions)),
|
||||
|
||||
Statement = vim.tbl_extend("force", { fg = p.coral }, st(styles.keywords)),
|
||||
Conditional = vim.tbl_extend("force", { fg = p.coral }, st(styles.conditionals)),
|
||||
Repeat = vim.tbl_extend("force", { fg = p.coral }, st(styles.loops)),
|
||||
Label = { fg = p.coral },
|
||||
Operator = vim.tbl_extend("force", { fg = p.gold }, st(styles.operators)),
|
||||
Keyword = vim.tbl_extend("force", { fg = p.coral }, st(styles.keywords)),
|
||||
Exception = { fg = p.coral },
|
||||
|
||||
PreProc = { fg = p.coral },
|
||||
Include = { fg = p.coral },
|
||||
Define = { fg = p.coral },
|
||||
Macro = { fg = p.coral },
|
||||
PreCondit = { fg = p.coral },
|
||||
|
||||
Type = vim.tbl_extend("force", { fg = p.teal }, st(styles.types)),
|
||||
StorageClass = { fg = p.teal },
|
||||
Structure = { fg = p.teal },
|
||||
Typedef = { fg = p.teal },
|
||||
|
||||
Special = { fg = p.fg_bright },
|
||||
SpecialChar = { fg = p.fg_bright },
|
||||
Tag = { fg = p.teal },
|
||||
Delimiter = { fg = p.fg_dim },
|
||||
SpecialComment = { fg = p.fg_muted },
|
||||
|
||||
Underlined = { underline = true },
|
||||
Bold = { bold = true },
|
||||
Italic = { italic = true },
|
||||
|
||||
Error = { fg = p.coral },
|
||||
Todo = { fg = p.gold, bg = p.bg },
|
||||
}
|
||||
end
|
||||
|
||||
return { get = get }
|
||||
@@ -0,0 +1,130 @@
|
||||
local function get(p, config)
|
||||
local styles = config.styles
|
||||
|
||||
return {
|
||||
["@comment"] = { fg = p.fg_muted2, italic = true },
|
||||
["@comment.error"] = { fg = p.coral },
|
||||
["@comment.warning"] = { fg = p.gold },
|
||||
["@comment.todo"] = { fg = p.gold, bold = true },
|
||||
["@comment.note"] = { fg = p.lavender, bold = true },
|
||||
["@comment.hint"] = { fg = p.teal },
|
||||
|
||||
["@constant"] = { fg = p.gold },
|
||||
["@constant.builtin"] = { fg = p.gold },
|
||||
["@constant.macro"] = { fg = p.gold },
|
||||
["@define"] = { fg = p.gold },
|
||||
|
||||
["@string"] = { fg = p.lavender },
|
||||
["@string.documentation"] = { fg = p.lavender },
|
||||
["@string.regexp"] = { fg = p.cyan },
|
||||
["@string.escape"] = { fg = p.teal },
|
||||
["@string.special"] = { fg = p.teal },
|
||||
|
||||
["@character"] = { fg = p.lavender },
|
||||
["@character.special"] = { fg = p.teal },
|
||||
|
||||
["@number"] = { fg = p.gold },
|
||||
["@number.float"] = { fg = p.gold },
|
||||
["@boolean"] = { fg = p.gold },
|
||||
|
||||
["@function"] = { fg = p.deep_lavender },
|
||||
["@function.builtin"] = { fg = p.gold },
|
||||
["@function.call"] = { fg = p.deep_lavender },
|
||||
["@function.macro"] = { fg = p.gold },
|
||||
["@function.method"] = { fg = p.deep_lavender },
|
||||
["@function.method.call"] = { fg = p.deep_lavender },
|
||||
|
||||
["@parameter"] = { fg = p.fg_bright },
|
||||
["@parameter.reference"] = { fg = p.fg_bright },
|
||||
|
||||
["@field"] = { fg = p.fg_bright },
|
||||
["@property"] = { fg = p.fg_bright },
|
||||
["@symbol"] = { fg = p.fg_bright },
|
||||
|
||||
["@variable"] = { fg = p.fg_bright },
|
||||
["@variable.builtin"] = { fg = p.coral },
|
||||
["@variable.member"] = { fg = p.fg_bright },
|
||||
["@variable.parameter"] = { fg = p.fg_bright },
|
||||
|
||||
["@type"] = { fg = p.teal },
|
||||
["@type.builtin"] = { fg = p.teal },
|
||||
["@type.definition"] = { fg = p.teal },
|
||||
["@type.qualifier"] = { fg = p.teal },
|
||||
|
||||
["@keyword"] = { fg = p.coral },
|
||||
["@keyword.function"] = { fg = p.coral },
|
||||
["@keyword.return"] = { fg = p.coral },
|
||||
["@keyword.operator"] = { fg = p.coral },
|
||||
["@keyword.exception"] = { fg = p.coral },
|
||||
["@keyword.modifier"] = { fg = p.coral },
|
||||
["@keyword.repeat"] = { fg = p.coral },
|
||||
["@keyword.storage"] = { fg = p.teal },
|
||||
["@keyword.conditional"] = { fg = p.coral },
|
||||
["@keyword.directive"] = { fg = p.coral },
|
||||
["@keyword.directive.define"] = { fg = p.coral },
|
||||
|
||||
["@conditional"] = { fg = p.coral },
|
||||
["@repeat"] = { fg = p.coral },
|
||||
["@debug"] = { fg = p.coral },
|
||||
["@label"] = { fg = p.fg_bright },
|
||||
|
||||
["@operator"] = { fg = p.gold },
|
||||
|
||||
["@punctuation.delimiter"] = { fg = p.fg_dim },
|
||||
["@punctuation.bracket"] = { fg = p.fg },
|
||||
["@punctuation.special"] = { fg = p.coral },
|
||||
|
||||
["@preproc"] = { fg = p.coral },
|
||||
["@include"] = { fg = p.coral },
|
||||
["@attribute"] = { fg = p.teal },
|
||||
|
||||
["@tag"] = { fg = p.teal },
|
||||
["@tag.attribute"] = { fg = p.fg_bright },
|
||||
["@tag.delimiter"] = { fg = p.fg_muted },
|
||||
|
||||
["@namespace"] = { fg = p.teal },
|
||||
["@module"] = { fg = p.deep_lavender },
|
||||
|
||||
["@text"] = { fg = p.fg_bright },
|
||||
["@text.strong"] = { bold = true },
|
||||
["@text.emphasis"] = { italic = true },
|
||||
["@text.underline"] = { underline = true },
|
||||
["@text.strike"] = { strikethrough = true },
|
||||
["@text.title"] = { fg = p.deep_lavender },
|
||||
["@text.literal"] = { fg = p.lavender },
|
||||
["@text.quote"] = { fg = p.fg_muted },
|
||||
["@text.note"] = { fg = p.lavender },
|
||||
["@text.warning"] = { fg = p.gold },
|
||||
["@text.danger"] = { fg = p.coral },
|
||||
["@text.diff.add"] = { fg = p.teal },
|
||||
["@text.diff.delete"] = { fg = p.coral },
|
||||
|
||||
["@markup.heading"] = { fg = p.deep_lavender },
|
||||
["@markup.heading.1"] = { fg = p.coral },
|
||||
["@markup.heading.2"] = { fg = p.gold },
|
||||
["@markup.heading.3"] = { fg = p.teal },
|
||||
["@markup.heading.4"] = { fg = p.lavender },
|
||||
["@markup.heading.5"] = { fg = p.deep_lavender },
|
||||
["@markup.heading.6"] = { fg = p.lavender },
|
||||
["@markup.list"] = { fg = p.fg_bright },
|
||||
["@markup.list.checked"] = { fg = p.teal },
|
||||
["@markup.list.unchecked"] = { fg = p.fg_muted },
|
||||
["@markup.link"] = { fg = p.lavender, underline = true },
|
||||
["@markup.link.url"] = { fg = p.lavender, underline = true },
|
||||
["@markup.link.label"] = { fg = p.fg_bright },
|
||||
["@markup.raw"] = { fg = p.fg_bright },
|
||||
["@markup.raw.block"] = { fg = p.fg_bright },
|
||||
["@markup.code"] = { fg = p.fg_bright },
|
||||
["@markup.math"] = { fg = p.cyan },
|
||||
["@markup.environment"] = { fg = p.fg_bright },
|
||||
["@markup.environment.name"] = { fg = p.teal },
|
||||
|
||||
["@diff.plus"] = { fg = p.teal },
|
||||
["@diff.minus"] = { fg = p.coral },
|
||||
["@diff.delta"] = { fg = p.gold },
|
||||
|
||||
["@none"] = {},
|
||||
}
|
||||
end
|
||||
|
||||
return { get = get }
|
||||
Reference in New Issue
Block a user