refactor: move config into separate file

This commit is contained in:
mvllow 2023-01-08 18:29:24 -05:00
commit 544b809b45
No known key found for this signature in database
4 changed files with 625 additions and 600 deletions

View file

@ -1,70 +1,12 @@
local util = require('rose-pine.util') local config = require('rose-pine.config')
local M = {} local M = {}
local config = { ---@param options Config|nil
bold_vert_split = false, function M.colorscheme(options)
dark_variant = 'main', if options then
dim_nc_background = false, config.extend(options)
disable_background = false,
disable_float_background = false,
disable_italics = false,
groups = {
background = 'base',
panel = 'surface',
border = 'highlight_med',
comment = 'muted',
link = 'iris',
punctuation = 'muted',
error = 'love',
hint = 'iris',
info = 'foam',
warn = 'gold',
git_add = 'foam',
git_change = 'rose',
git_delete = 'love',
git_dirty = 'rose',
git_ignore = 'muted',
git_merge = 'iris',
git_rename = 'pine',
git_stage = 'iris',
git_text = 'rose',
headings = {
h1 = 'iris',
h2 = 'foam',
h3 = 'rose',
h4 = 'gold',
h5 = 'pine',
h6 = 'foam',
},
},
highlight_groups = {},
}
function M.setup(opts)
opts = opts or {}
vim.g.rose_pine_variant = opts.dark_variant or 'main'
if opts.groups and type(opts.groups.headings) == 'string' then
opts.groups.headings = {
h1 = opts.groups.headings,
h2 = opts.groups.headings,
h3 = opts.groups.headings,
h4 = opts.groups.headings,
h5 = opts.groups.headings,
h6 = opts.groups.headings,
}
end end
config.user_variant = opts.dark_variant or nil
config = vim.tbl_deep_extend('force', config, opts)
end
function M.colorscheme()
if vim.g.colors_name then if vim.g.colors_name then
vim.cmd('hi clear') vim.cmd('hi clear')
end end
@ -72,20 +14,9 @@ function M.colorscheme()
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.g.colors_name = 'rose-pine' vim.g.colors_name = 'rose-pine'
local theme = require('rose-pine.theme').get(config) require('rose-pine.theme')._load(config.options)
-- Set theme highlights
for group, color in pairs(theme) do
-- Skip highlight group if user overrides
if config.highlight_groups[group] == nil then
util.highlight(group, color)
end
end
-- Set user highlights
for group, color in pairs(config.highlight_groups) do
util.highlight(group, color)
end
end end
M.setup = config.setup
return M return M

98
lua/rose-pine/config.lua Normal file
View file

@ -0,0 +1,98 @@
local M = {}
---@class Groups
---@field background string
---@field panel string
---@field border string
---@field comment string
---@field link string
---@field punctuation string
---@field error string
---@field hint string
---@field info string
---@field warn string
---@field git_add string
---@field git_change string
---@field git_delete string
---@field git_dirty string
---@field git_ignore string
---@field git_merge string
---@field git_rename string
---@field git_stage string
---@field git_text string
---@field headings Headings|string
---@class Headings
---@field h1 string
---@field h2 string
---@field h3 string
---@field h4 string
---@field h5 string
---@field h6 string
---@class Config
---@field dark_variant 'main'|'moon'
---@field bold_vert_split boolean
---@field dim_nc_background boolean
---@field disable_background boolean
---@field disable_float_background boolean
---@field disable_italics boolean
---@field groups Groups
---@field highlight_groups table<string, any>
local defaults = {
dark_variant = 'main',
bold_vert_split = false,
dim_nc_background = false,
disable_background = false,
disable_float_background = false,
disable_italics = false,
highlight_groups = {},
groups = {
background = 'base',
panel = 'surface',
border = 'highlight_med',
comment = 'muted',
link = 'iris',
punctuation = 'muted',
error = 'love',
hint = 'iris',
info = 'foam',
warn = 'gold',
git_add = 'foam',
git_change = 'rose',
git_delete = 'love',
git_dirty = 'rose',
git_ignore = 'muted',
git_merge = 'iris',
git_rename = 'pine',
git_stage = 'iris',
git_text = 'rose',
headings = {
h1 = 'iris',
h2 = 'foam',
h3 = 'rose',
h4 = 'gold',
h5 = 'pine',
h6 = 'foam',
},
},
}
---@type Config
M.options = {}
---@param options Config|nil
function M.setup(options)
M.options = vim.tbl_deep_extend('force', {}, defaults, options or {})
end
---@param options Config|nil
function M.extend(options)
M.options =
vim.tbl_deep_extend('force', {}, M.options or defaults, options or {})
end
M.setup()
return M

View file

@ -1,3 +1,5 @@
local options = require('rose-pine.config').options
local variants = { local variants = {
main = { main = {
base = '#191724', base = '#191724',
@ -55,12 +57,5 @@ local variants = {
}, },
} }
local palette = {} return vim.o.background == 'light' and variants.dawn
or variants[options.dark_variant or 'main']
if vim.o.background == 'light' then
palette = variants.dawn
else
palette = variants[(vim.g.rose_pine_variant == 'moon' and 'moon') or 'main']
end
return palette

View file

@ -1,521 +1,519 @@
local M = {} local M = {}
function M.get(config) ---@param options Config
function M._load(options)
local h = require('rose-pine.util').highlight
local p = require('rose-pine.palette') local p = require('rose-pine.palette')
local theme = {} local groups = options.groups or {}
local groups = config.groups or {} local maybe = {
local styles = { base = (options.disable_background and p.none) or p.base,
italic = not config.disable_italics, surface = (options.disable_float_background and p.none) or p.surface,
vert_split = (config.bold_vert_split and groups.border) or p.none, italic = not options.disable_italics,
background = (config.disable_background and p.none)
or groups.background,
float_background = (config.disable_float_background and p.none)
or groups.panel,
} }
styles.nc_background = (config.dim_nc_background and groups.panel) maybe.bold_vert_split = (options.bold_vert_split and groups.border)
or styles.background or p.none
maybe.dim_nc_background = (options.dim_nc_background and groups.panel)
theme = { h('ColorColumn', { bg = p.overlay })
ColorColumn = { bg = p.overlay }, h('Conceal', { bg = p.none })
Conceal = { bg = p.none }, h('CurSearch', { link = 'IncSearch' })
CurSearch = { link = 'IncSearch' },
-- Cursor = {}, -- Cursor = {},
CursorColumn = { bg = p.highlight_low }, h('CursorColumn', { bg = p.highlight_low })
-- CursorIM = {}, -- CursorIM = {},
CursorLine = { bg = p.highlight_low }, h('CursorLine', { bg = p.highlight_low })
CursorLineNr = { fg = p.text }, h('CursorLineNr', { fg = p.text })
DarkenedPanel = { bg = groups.panel }, h('DarkenedPanel', { bg = maybe.surface })
DarkenedStatusline = { bg = groups.panel }, h('DarkenedStatusline', { bg = maybe.surface })
DiffAdd = { bg = groups.git_add, blend = 20 }, h('DiffAdd', { bg = groups.git_add, blend = 20 })
DiffChange = { bg = p.overlay },
DiffDelete = { bg = groups.git_delete, blend = 20 }, h('DiffChange', { bg = p.overlay })
DiffText = { bg = groups.git_text, blend = 20 }, h('DiffDelete', { bg = groups.git_delete, blend = 20 })
diffAdded = { link = 'DiffAdd' }, h('DiffText', { bg = groups.git_text, blend = 20 })
diffChanged = { link = 'DiffChange' }, h('diffAdded', { link = 'DiffAdd' })
diffRemoved = { link = 'DiffDelete' }, h('diffChanged', { link = 'DiffChange' })
Directory = { fg = p.foam, bg = p.none }, h('diffRemoved', { link = 'DiffDelete' })
h('Directory', { fg = p.foam, bg = p.none })
-- EndOfBuffer = {}, -- EndOfBuffer = {},
ErrorMsg = { fg = p.love, bold = true }, h('ErrorMsg', { fg = p.love, bold = true })
FloatBorder = { fg = groups.border }, h('FloatBorder', { fg = groups.border })
FloatTitle = { fg = p.muted }, h('FloatTitle', { fg = p.muted })
FoldColumn = { fg = p.muted }, h('FoldColumn', { fg = p.muted })
Folded = { fg = p.text, bg = groups.panel }, h('Folded', { fg = p.text, bg = maybe.surface })
IncSearch = { fg = p.base, bg = p.rose }, h('IncSearch', { fg = p.base, bg = p.rose })
LineNr = { fg = p.muted }, h('LineNr', { fg = p.muted })
MatchParen = { fg = p.text, bg = p.highlight_med }, h('MatchParen', { fg = p.text, bg = p.highlight_med })
ModeMsg = { fg = p.subtle }, h('ModeMsg', { fg = p.subtle })
MoreMsg = { fg = p.iris }, h('MoreMsg', { fg = p.iris })
NonText = { fg = p.muted }, h('NonText', { fg = p.muted })
Normal = { fg = p.text, bg = styles.background }, h('Normal', { fg = p.text, bg = maybe.base })
NormalFloat = { fg = p.text, bg = styles.float_background }, h('NormalFloat', { fg = p.text, bg = maybe.surface })
NormalNC = { fg = p.text, bg = styles.nc_background }, h('NormalNC', { fg = p.text, bg = maybe.dim_nc_background })
NvimInternalError = { fg = '#ffffff', bg = p.love }, h('NvimInternalError', { fg = '#ffffff', bg = p.love })
Pmenu = { fg = p.subtle, bg = styles.float_background }, h('Pmenu', { fg = p.subtle, bg = maybe.surface })
PmenuSbar = { bg = p.highlight_low }, h('PmenuSbar', { bg = p.highlight_low })
PmenuSel = { fg = p.text, bg = p.overlay }, h('PmenuSel', { fg = p.text, bg = p.overlay })
PmenuThumb = { bg = p.highlight_med }, h('PmenuThumb', { bg = p.highlight_med })
Question = { fg = p.gold }, h('Question', { fg = p.gold })
-- QuickFixLine = {}, -- QuickFixLine = {},
-- RedrawDebugNormal = {} -- RedrawDebugNormal = {}
RedrawDebugClear = { fg = '#ffffff', bg = p.gold }, h('RedrawDebugClear', { fg = '#ffffff', bg = p.gold })
RedrawDebugComposed = { fg = '#ffffff', bg = p.pine }, h('RedrawDebugComposed', { fg = '#ffffff', bg = p.pine })
RedrawDebugRecompose = { fg = '#ffffff', bg = p.love }, h('RedrawDebugRecompose', { fg = '#ffffff', bg = p.love })
Search = { bg = p.highlight_med }, h('Search', { bg = p.highlight_med })
SpecialKey = { fg = p.foam }, h('SpecialKey', { fg = p.foam })
SpellBad = { sp = p.subtle, undercurl = true }, h('SpellBad', { sp = p.subtle, undercurl = true })
SpellCap = { sp = p.subtle, undercurl = true }, h('SpellCap', { sp = p.subtle, undercurl = true })
SpellLocal = { sp = p.subtle, undercurl = true }, h('SpellLocal', { sp = p.subtle, undercurl = true })
SpellRare = { sp = p.subtle, undercurl = true }, h('SpellRare', { sp = p.subtle, undercurl = true })
SignColumn = { fg = p.text, bg = styles.background }, h('SignColumn', { fg = p.text, bg = maybe.base })
StatusLine = { fg = p.subtle, bg = styles.float_background }, h('StatusLine', { fg = p.subtle, bg = maybe.surface })
StatusLineNC = { fg = p.muted, bg = styles.background }, h('StatusLineNC', { fg = p.muted, bg = maybe.base })
StatusLineTerm = { link = 'StatusLine' }, h('StatusLineTerm', { link = 'StatusLine' })
StatusLineTermNC = { link = 'StatusLineNC' }, h('StatusLineTermNC', { link = 'StatusLineNC' })
TabLine = { fg = p.subtle, bg = styles.float_background }, h('TabLine', { fg = p.subtle, bg = maybe.surface })
TabLineFill = { bg = styles.float_background }, h('TabLineFill', { bg = maybe.surface })
TabLineSel = { fg = p.text, bg = p.overlay }, h('TabLineSel', { fg = p.text, bg = p.overlay })
Title = { fg = p.text }, h('Title', { fg = p.text })
VertSplit = { fg = groups.border, bg = styles.vert_split }, h('VertSplit', { fg = groups.border, bg = maybe.bold_vert_split })
Visual = { bg = p.highlight_med }, h('Visual', { bg = p.highlight_med })
-- VisualNOS = {}, -- VisualNOS = {},
WarningMsg = { fg = p.gold }, h('WarningMsg', { fg = p.gold })
-- Whitespace = {}, -- Whitespace = {},
WildMenu = { link = 'IncSearch' }, h('WildMenu', { link = 'IncSearch' })
Boolean = { fg = p.rose }, h('Boolean', { fg = p.rose })
Character = { fg = p.gold }, h('Character', { fg = p.gold })
Comment = { fg = groups.comment, italic = styles.italic }, h('Comment', { fg = groups.comment, italic = maybe.italic })
Conditional = { fg = p.pine }, h('Conditional', { fg = p.pine })
Constant = { fg = p.gold }, h('Constant', { fg = p.gold })
Debug = { fg = p.rose }, h('Debug', { fg = p.rose })
Define = { fg = p.iris }, h('Define', { fg = p.iris })
Delimiter = { fg = p.subtle }, h('Delimiter', { fg = p.subtle })
Error = { fg = p.love }, h('Error', { fg = p.love })
Exception = { fg = p.pine }, h('Exception', { fg = p.pine })
Float = { fg = p.gold }, h('Float', { fg = p.gold })
Function = { fg = p.rose }, h('Function', { fg = p.rose })
Identifier = { fg = p.rose }, h('Identifier', { fg = p.rose })
-- Ignore = {}, -- Ignore = {},
Include = { fg = p.iris }, h('Include', { fg = p.iris })
Keyword = { fg = p.pine }, h('Keyword', { fg = p.pine })
Label = { fg = p.foam }, h('Label', { fg = p.foam })
Macro = { fg = p.iris }, h('Macro', { fg = p.iris })
Number = { fg = p.gold }, h('Number', { fg = p.gold })
Operator = { fg = p.subtle }, h('Operator', { fg = p.subtle })
PreCondit = { fg = p.iris }, h('PreCondit', { fg = p.iris })
PreProc = { fg = p.iris }, h('PreProc', { fg = p.iris })
Repeat = { fg = p.pine }, h('Repeat', { fg = p.pine })
Special = { fg = p.rose }, h('Special', { fg = p.rose })
SpecialChar = { fg = p.rose }, h('SpecialChar', { fg = p.rose })
SpecialComment = { fg = p.iris }, h('SpecialComment', { fg = p.iris })
Statement = { fg = p.pine }, h('Statement', { fg = p.pine })
StorageClass = { fg = p.foam }, h('StorageClass', { fg = p.foam })
String = { fg = p.gold }, h('String', { fg = p.gold })
Structure = { fg = p.foam }, h('Structure', { fg = p.foam })
Tag = { fg = p.rose }, h('Tag', { fg = p.rose })
Todo = { fg = p.iris }, h('Todo', { fg = p.iris })
Type = { fg = p.foam }, h('Type', { fg = p.foam })
Typedef = { fg = p.foam }, h('Typedef', { fg = p.foam })
Underlined = { underline = true }, h('Underlined', { underline = true })
htmlArg = { fg = p.iris }, h('htmlArg', { fg = p.iris })
htmlBold = { bold = true }, h('htmlBold', { bold = true })
htmlEndTag = { fg = p.subtle }, h('htmlEndTag', { fg = p.subtle })
htmlH1 = { fg = groups.headings.h1, bold = true }, h('htmlH1', { fg = groups.headings.h1, bold = true })
htmlH2 = { fg = groups.headings.h2, bold = true }, h('htmlH2', { fg = groups.headings.h2, bold = true })
htmlH3 = { fg = groups.headings.h3, bold = true }, h('htmlH3', { fg = groups.headings.h3, bold = true })
htmlH4 = { fg = groups.headings.h4, bold = true }, h('htmlH4', { fg = groups.headings.h4, bold = true })
htmlH5 = { fg = groups.headings.h5, bold = true }, h('htmlH5', { fg = groups.headings.h5, bold = true })
htmlItalic = { italic = styles.italic }, h('htmlItalic', { italic = maybe.italic })
htmlLink = { fg = groups.link }, h('htmlLink', { fg = groups.link })
htmlTag = { fg = p.subtle }, h('htmlTag', { fg = p.subtle })
htmlTagN = { fg = p.text }, h('htmlTagN', { fg = p.text })
htmlTagName = { fg = p.foam }, h('htmlTagName', { fg = p.foam })
markdownDelimiter = { fg = p.subtle }, h('markdownDelimiter', { fg = p.subtle })
markdownH1 = { fg = groups.headings.h1, bold = true }, h('markdownH1', { fg = groups.headings.h1, bold = true })
markdownH1Delimiter = { link = 'markdownH1' }, h('markdownH1Delimiter', { link = 'markdownH1' })
markdownH2 = { fg = groups.headings.h2, bold = true }, h('markdownH2', { fg = groups.headings.h2, bold = true })
markdownH2Delimiter = { link = 'markdownH2' }, h('markdownH2Delimiter', { link = 'markdownH2' })
markdownH3 = { fg = groups.headings.h3, bold = true }, h('markdownH3', { fg = groups.headings.h3, bold = true })
markdownH3Delimiter = { link = 'markdownH3' }, h('markdownH3Delimiter', { link = 'markdownH3' })
markdownH4 = { fg = groups.headings.h4, bold = true }, h('markdownH4', { fg = groups.headings.h4, bold = true })
markdownH4Delimiter = { link = 'markdownH4' }, h('markdownH4Delimiter', { link = 'markdownH4' })
markdownH5 = { fg = groups.headings.h5, bold = true }, h('markdownH5', { fg = groups.headings.h5, bold = true })
markdownH5Delimiter = { link = 'markdownH5' }, h('markdownH5Delimiter', { link = 'markdownH5' })
markdownH6 = { fg = groups.headings.h6, bold = true }, h('markdownH6', { fg = groups.headings.h6, bold = true })
markdownH6Delimiter = { link = 'markdownH6' }, h('markdownH6Delimiter', { link = 'markdownH6' })
markdownLinkText = { fg = groups.link, underline = true }, h('markdownLinkText', { fg = groups.link, underline = true })
markdownUrl = { link = 'markdownLinkText' }, h('markdownUrl', { link = 'markdownLinkText' })
mkdCode = { fg = p.foam, italic = styles.italic }, h('mkdCode', { fg = p.foam, italic = maybe.italic })
mkdCodeDelimiter = { fg = p.rose }, h('mkdCodeDelimiter', { fg = p.rose })
mkdCodeEnd = { fg = p.foam }, h('mkdCodeEnd', { fg = p.foam })
mkdCodeStart = { fg = p.foam }, h('mkdCodeStart', { fg = p.foam })
mkdFootnotes = { fg = p.foam }, h('mkdFootnotes', { fg = p.foam })
mkdID = { fg = p.foam, underline = true }, h('mkdID', { fg = p.foam, underline = true })
mkdInlineURL = { fg = groups.link, underline = true }, h('mkdInlineURL', { fg = groups.link, underline = true })
mkdLink = { link = 'mkdInlineURL' }, h('mkdLink', { link = 'mkdInlineURL' })
mkdLinkDef = { link = 'mkdInlineURL' }, h('mkdLinkDef', { link = 'mkdInlineURL' })
mkdListItemLine = { fg = p.text }, h('mkdListItemLine', { fg = p.text })
mkdRule = { fg = p.subtle }, h('mkdRule', { fg = p.subtle })
mkdURL = { link = 'mkdInlineURL' }, h('mkdURL', { link = 'mkdInlineURL' })
DiagnosticError = { fg = groups.error }, h('DiagnosticError', { fg = groups.error })
DiagnosticHint = { fg = groups.hint }, h('DiagnosticHint', { fg = groups.hint })
DiagnosticInfo = { fg = groups.info }, h('DiagnosticInfo', { fg = groups.info })
DiagnosticWarn = { fg = groups.warn }, h('DiagnosticWarn', { fg = groups.warn })
DiagnosticDefaultError = { fg = groups.error }, h('DiagnosticDefaultError', { fg = groups.error })
DiagnosticDefaultHint = { fg = groups.hint }, h('DiagnosticDefaultHint', { fg = groups.hint })
DiagnosticDefaultInfo = { fg = groups.info }, h('DiagnosticDefaultInfo', { fg = groups.info })
DiagnosticDefaultWarn = { fg = groups.warn }, h('DiagnosticDefaultWarn', { fg = groups.warn })
DiagnosticFloatingError = { fg = groups.error }, h('DiagnosticFloatingError', { fg = groups.error })
DiagnosticFloatingHint = { fg = groups.hint }, h('DiagnosticFloatingHint', { fg = groups.hint })
DiagnosticFloatingInfo = { fg = groups.info }, h('DiagnosticFloatingInfo', { fg = groups.info })
DiagnosticFloatingWarn = { fg = groups.warn }, h('DiagnosticFloatingWarn', { fg = groups.warn })
DiagnosticSignError = { fg = groups.error }, h('DiagnosticSignError', { fg = groups.error })
DiagnosticSignHint = { fg = groups.hint }, h('DiagnosticSignHint', { fg = groups.hint })
DiagnosticSignInfo = { fg = groups.info }, h('DiagnosticSignInfo', { fg = groups.info })
DiagnosticSignWarn = { fg = groups.warn }, h('DiagnosticSignWarn', { fg = groups.warn })
DiagnosticStatusLineError = { fg = groups.error, bg = groups.panel }, h('DiagnosticStatusLineError', { fg = groups.error, bg = maybe.surface })
DiagnosticStatusLineHint = { fg = groups.hint, bg = groups.panel }, h('DiagnosticStatusLineHint', { fg = groups.hint, bg = maybe.surface })
DiagnosticStatusLineInfo = { fg = groups.info, bg = groups.panel }, h('DiagnosticStatusLineInfo', { fg = groups.info, bg = maybe.surface })
DiagnosticStatusLineWarn = { fg = groups.warn, bg = groups.panel }, h('DiagnosticStatusLineWarn', { fg = groups.warn, bg = maybe.surface })
DiagnosticUnderlineError = { sp = groups.error, undercurl = true }, h('DiagnosticUnderlineError', { sp = groups.error, undercurl = true })
DiagnosticUnderlineHint = { sp = groups.hint, undercurl = true }, h('DiagnosticUnderlineHint', { sp = groups.hint, undercurl = true })
DiagnosticUnderlineInfo = { sp = groups.info, undercurl = true }, h('DiagnosticUnderlineInfo', { sp = groups.info, undercurl = true })
DiagnosticUnderlineWarn = { sp = groups.warn, undercurl = true }, h('DiagnosticUnderlineWarn', { sp = groups.warn, undercurl = true })
DiagnosticVirtualTextError = { fg = groups.error }, h('DiagnosticVirtualTextError', { fg = groups.error })
DiagnosticVirtualTextHint = { fg = groups.hint }, h('DiagnosticVirtualTextHint', { fg = groups.hint })
DiagnosticVirtualTextInfo = { fg = groups.info }, h('DiagnosticVirtualTextInfo', { fg = groups.info })
DiagnosticVirtualTextWarn = { fg = groups.warn }, h('DiagnosticVirtualTextWarn', { fg = groups.warn })
-- healthcheck -- healthcheck
healthError = { fg = groups.error }, h('healthError', { fg = groups.error })
healthSuccess = { fg = groups.info }, h('healthSuccess', { fg = groups.info })
healthWarning = { fg = groups.warn }, h('healthWarning', { fg = groups.warn })
-- TSAttribute = {}, -- TSAttribute = {},
TSBoolean = { link = 'Boolean' }, h('TSBoolean', { link = 'Boolean' })
TSCharacter = { link = 'Character' }, h('TSCharacter', { link = 'Character' })
TSComment = { link = 'Comment' }, h('TSComment', { link = 'Comment' })
TSConditional = { link = 'Conditional' }, h('TSConditional', { link = 'Conditional' })
TSConstBuiltin = { fg = p.love }, h('TSConstBuiltin', { fg = p.love })
-- TSConstMacro = {}, -- TSConstMacro = {},
TSConstant = { fg = p.foam }, h('TSConstant', { fg = p.foam })
TSConstructor = { fg = p.foam }, h('TSConstructor', { fg = p.foam })
-- TSEmphasis = {}, -- TSEmphasis = {},
-- TSError = {}, -- TSError = {},
-- TSException = {}, -- TSException = {},
TSField = { fg = p.foam }, h('TSField', { fg = p.foam })
-- TSFloat = {}, -- TSFloat = {},
TSFuncBuiltin = { fg = p.love }, h('TSFuncBuiltin', { fg = p.love })
-- TSFuncMacro = {}, -- TSFuncMacro = {},
TSFunction = { fg = p.rose }, h('TSFunction', { fg = p.rose })
TSInclude = { fg = p.pine }, h('TSInclude', { fg = p.pine })
TSKeyword = { fg = p.pine }, h('TSKeyword', { fg = p.pine })
-- TSKeywordFunction = {}, -- TSKeywordFunction = {},
TSKeywordOperator = { fg = p.subtle }, h('TSKeywordOperator', { fg = p.subtle })
TSLabel = { fg = p.foam }, h('TSLabel', { fg = p.foam })
-- TSLiteral = {}, -- TSLiteral = {},
-- TSMethod = {}, -- TSMethod = {},
-- TSNamespace = {}, -- TSNamespace = {},
-- TSNone = {}, -- TSNone = {},
TSNumber = { link = 'Number' }, h('TSNumber', { link = 'Number' })
TSOperator = { fg = p.subtle }, h('TSOperator', { fg = p.subtle })
TSParameter = { fg = p.iris, italic = styles.italic }, h('TSParameter', { fg = p.iris, italic = maybe.italic })
-- TSParameterReference = {}, -- TSParameterReference = {},
TSProperty = { fg = p.iris, italic = styles.italic }, h('TSProperty', { fg = p.iris, italic = maybe.italic })
TSPunctBracket = { fg = groups.punctuation }, h('TSPunctBracket', { fg = groups.punctuation })
TSPunctDelimiter = { fg = groups.punctuation }, h('TSPunctDelimiter', { fg = groups.punctuation })
TSPunctSpecial = { fg = groups.punctuation }, h('TSPunctSpecial', { fg = groups.punctuation })
-- TSRepeat = {}, -- TSRepeat = {},
-- TSStrike = {}, -- TSStrike = {},
TSString = { link = 'String' }, h('TSString', { link = 'String' })
TSStringEscape = { fg = p.pine }, h('TSStringEscape', { fg = p.pine })
-- TSStringRegex = {}, -- TSStringRegex = {},
TSStringSpecial = { link = 'TSString' }, h('TSStringSpecial', { link = 'TSString' })
-- TSSymbol = {}, -- TSSymbol = {},
TSTag = { fg = p.foam }, h('TSTag', { fg = p.foam })
TSTagDelimiter = { fg = p.subtle }, h('TSTagDelimiter', { fg = p.subtle })
TSText = { fg = p.text }, h('TSText', { fg = p.text })
TSTitle = { fg = groups.headings.h1, bold = true }, h('TSTitle', { fg = groups.headings.h1, bold = true })
TSType = { link = 'Type' }, h('TSType', { link = 'Type' })
-- TSTypeBuiltin = {}, -- TSTypeBuiltin = {},
TSURI = { fg = groups.link }, h('TSURI', { fg = groups.link })
-- TSUnderline = {}, -- TSUnderline = {},
TSVariable = { fg = p.text, italic = styles.italic }, h('TSVariable', { fg = p.text, italic = maybe.italic })
TSVariableBuiltin = { fg = p.love }, h('TSVariableBuiltin', { fg = p.love })
-- Treesitter -- Treesitter
['@annotation'] = { link = 'PreProc' }, h('@annotation', { link = 'PreProc' })
['@attribute'] = { link = 'PreProc' }, h('@attribute', { link = 'PreProc' })
['@boolean'] = { link = 'Boolean' }, h('@boolean', { link = 'Boolean' })
['@character'] = { link = 'Character' }, h('@character', { link = 'Character' })
['@comment'] = { link = 'Comment' }, h('@comment', { link = 'Comment' })
['@conditional'] = { link = 'Conditional' }, h('@conditional', { link = 'Conditional' })
['@constant'] = { fg = p.foam }, h('@constant', { fg = p.foam })
['@constant.builtin'] = { fg = p.love }, h('@constant.builtin', { fg = p.love })
['@constructor'] = { fg = p.foam }, h('@constructor', { fg = p.foam })
['@field'] = { fg = p.foam }, h('@field', { fg = p.foam })
['@function'] = { fg = p.rose }, h('@function', { fg = p.rose })
['@function.builtin'] = { fg = p.love }, h('@function.builtin', { fg = p.love })
['@include'] = { fg = p.pine }, h('@include', { fg = p.pine })
['@keyword'] = { fg = p.pine }, h('@keyword', { fg = p.pine })
['@keyword.operator'] = { fg = p.subtle }, h('@keyword.operator', { fg = p.subtle })
['@label'] = { fg = p.foam }, h('@label', { fg = p.foam })
['@namespace'] = { link = 'Include' }, h('@namespace', { link = 'Include' })
['@number'] = { link = 'Number' }, h('@number', { link = 'Number' })
['@operator'] = { fg = p.subtle }, h('@operator', { fg = p.subtle })
['@parameter'] = { fg = p.iris, italic = styles.italic }, h('@parameter', { fg = p.iris, italic = maybe.italic })
['@property'] = { fg = p.iris, italic = styles.italic }, h('@property', { fg = p.iris, italic = maybe.italic })
['@punctuation.bracket'] = { fg = groups.punctuation }, h('@punctuation.bracket', { fg = groups.punctuation })
['@punctuation.delimiter'] = { fg = groups.punctuation }, h('@punctuation.delimiter', { fg = groups.punctuation })
['@punctuation.special'] = { fg = groups.punctuation }, h('@punctuation.special', { fg = groups.punctuation })
['@string'] = { link = 'String' }, h('@string', { link = 'String' })
['@string.escape'] = { fg = p.pine }, h('@string.escape', { fg = p.pine })
['@string.special'] = { link = '@string' }, h('@string.special', { link = '@string' })
['@symbol'] = { link = 'Identifier' }, h('@symbol', { link = 'Identifier' })
['@tag'] = { fg = p.foam }, h('@tag', { fg = p.foam })
['@tag.attribute'] = { link = '@property' }, h('@tag.attribute', { link = '@property' })
['@tag.delimiter'] = { fg = p.subtle }, h('@tag.delimiter', { fg = p.subtle })
['@text'] = { fg = p.text }, h('@text', { fg = p.text })
['@text.strong'] = { bold = true }, h('@text.strong', { bold = true })
['@text.emphasis'] = { italic = true }, h('@text.emphasis', { italic = true })
['@text.underline'] = { underline = true }, h('@text.underline', { underline = true })
['@text.strike'] = { strikethrough = true }, h('@text.strike', { strikethrough = true })
['@text.math'] = { link = 'Special' }, h('@text.math', { link = 'Special' })
['@text.environment'] = { link = 'Macro' }, h('@text.environment', { link = 'Macro' })
['@text.environment.name'] = { link = 'Type' }, h('@text.environment.name', { link = 'Type' })
['@text.title'] = { fg = groups.headings.h1, bold = true }, h('@text.title', { fg = groups.headings.h1, bold = true })
['@text.uri'] = { fg = groups.link }, h('@text.uri', { fg = groups.link })
['@text.note'] = { link = 'SpecialComment' }, h('@text.note', { link = 'SpecialComment' })
['@text.warning'] = { link = 'Todo' }, h('@text.warning', { link = 'Todo' })
['@text.danger'] = { link = 'WarningMsg' }, h('@text.danger', { link = 'WarningMsg' })
['@todo'] = { link = 'Todo' }, h('@todo', { link = 'Todo' })
['@type'] = { link = 'Type' }, h('@type', { link = 'Type' })
['@variable'] = { fg = p.text, italic = styles.italic }, h('@variable', { fg = p.text, italic = maybe.italic })
['@variable.builtin'] = { fg = p.love }, h('@variable.builtin', { fg = p.love })
-- vim.lsp.buf.document_highlight() -- vim.lsp.buf.document_highlight()
LspReferenceText = { bg = p.highlight_med }, h('LspReferenceText', { bg = p.highlight_med })
LspReferenceRead = { bg = p.highlight_med }, h('LspReferenceRead', { bg = p.highlight_med })
LspReferenceWrite = { bg = p.highlight_med }, h('LspReferenceWrite', { bg = p.highlight_med })
-- lsp-highlight-codelens -- lsp-highlight-codelens
LspCodeLens = { fg = p.subtle }, -- virtual text of code lens h('LspCodeLens', { fg = p.subtle }) -- virtual text of code len
LspCodeLensSeparator = { fg = p.highlight_high }, -- separator between two or more code lens h('LspCodeLensSeparator', { fg = p.highlight_high }) -- separator between two or more code len
-- romgrk/barbar.nvim -- romgrk/barbar.nvim
BufferCurrent = { fg = p.text, bg = p.overlay }, h('BufferCurrent', { fg = p.text, bg = p.overlay })
BufferCurrentIndex = { fg = p.text, bg = p.overlay }, h('BufferCurrentIndex', { fg = p.text, bg = p.overlay })
BufferCurrentMod = { fg = p.foam, bg = p.overlay }, h('BufferCurrentMod', { fg = p.foam, bg = p.overlay })
BufferCurrentSign = { fg = p.subtle, bg = p.overlay }, h('BufferCurrentSign', { fg = p.subtle, bg = p.overlay })
BufferCurrentTarget = { fg = p.gold, bg = p.overlay }, h('BufferCurrentTarget', { fg = p.gold, bg = p.overlay })
BufferInactive = { fg = p.subtle }, h('BufferInactive', { fg = p.subtle })
BufferInactiveIndex = { fg = p.subtle }, h('BufferInactiveIndex', { fg = p.subtle })
BufferInactiveMod = { fg = p.foam }, h('BufferInactiveMod', { fg = p.foam })
BufferInactiveSign = { fg = p.muted }, h('BufferInactiveSign', { fg = p.muted })
BufferInactiveTarget = { fg = p.gold }, h('BufferInactiveTarget', { fg = p.gold })
BufferTabpageFill = { fg = groups.background, bg = groups.background }, h('BufferTabpageFill', { fg = p.base, bg = p.base })
BufferVisible = { fg = p.subtle }, h('BufferVisible', { fg = p.subtle })
BufferVisibleIndex = { fg = p.subtle }, h('BufferVisibleIndex', { fg = p.subtle })
BufferVisibleMod = { fg = p.foam }, h('BufferVisibleMod', { fg = p.foam })
BufferVisibleSign = { fg = p.muted }, h('BufferVisibleSign', { fg = p.muted })
BufferVisibleTarget = { fg = p.gold }, h('BufferVisibleTarget', { fg = p.gold })
-- lewis6991/gitsigns.nvim -- lewis6991/gitsigns.nvim
GitSignsAdd = { fg = groups.git_add }, h('GitSignsAdd', { fg = groups.git_add })
GitSignsChange = { fg = groups.git_change }, h('GitSignsChange', { fg = groups.git_change })
GitSignsDelete = { fg = groups.git_delete }, h('GitSignsDelete', { fg = groups.git_delete })
SignAdd = { link = 'GitSignsAdd' }, h('SignAdd', { link = 'GitSignsAdd' })
SignChange = { link = 'GitSignsChange' }, h('SignChange', { link = 'GitSignsChange' })
SignDelete = { link = 'GitSignsDelete' }, h('SignDelete', { link = 'GitSignsDelete' })
-- mvllow/modes.nvim -- mvllow/modes.nvim
ModesCopy = { bg = p.gold }, h('ModesCopy', { bg = p.gold })
ModesDelete = { bg = p.love }, h('ModesDelete', { bg = p.love })
ModesInsert = { bg = p.foam }, h('ModesInsert', { bg = p.foam })
ModesVisual = { bg = p.iris }, h('ModesVisual', { bg = p.iris })
-- kyazdani42/nvim-tree.lua -- kyazdani42/nvim-tree.lua
NvimTreeEmptyFolderName = { fg = p.muted }, h('NvimTreeEmptyFolderName', { fg = p.muted })
NvimTreeFileDeleted = { fg = p.love }, h('NvimTreeFileDeleted', { fg = p.love })
NvimTreeFileDirty = { fg = p.rose }, h('NvimTreeFileDirty', { fg = p.rose })
NvimTreeFileMerge = { fg = p.iris }, h('NvimTreeFileMerge', { fg = p.iris })
NvimTreeFileNew = { fg = p.foam }, h('NvimTreeFileNew', { fg = p.foam })
NvimTreeFileRenamed = { fg = p.pine }, h('NvimTreeFileRenamed', { fg = p.pine })
NvimTreeFileStaged = { fg = p.iris }, h('NvimTreeFileStaged', { fg = p.iris })
NvimTreeFolderIcon = { fg = p.subtle }, h('NvimTreeFolderIcon', { fg = p.subtle })
NvimTreeFolderName = { fg = p.foam }, h('NvimTreeFolderName', { fg = p.foam })
NvimTreeGitDeleted = { fg = groups.git_delete }, h('NvimTreeGitDeleted', { fg = groups.git_delete })
NvimTreeGitDirty = { fg = groups.git_dirty }, h('NvimTreeGitDirty', { fg = groups.git_dirty })
NvimTreeGitIgnored = { fg = groups.git_ignore }, h('NvimTreeGitIgnored', { fg = groups.git_ignore })
NvimTreeGitMerge = { fg = groups.git_merge }, h('NvimTreeGitMerge', { fg = groups.git_merge })
NvimTreeGitNew = { fg = groups.git_add }, h('NvimTreeGitNew', { fg = groups.git_add })
NvimTreeGitRenamed = { fg = groups.git_rename }, h('NvimTreeGitRenamed', { fg = groups.git_rename })
NvimTreeGitStaged = { fg = groups.git_stage }, h('NvimTreeGitStaged', { fg = groups.git_stage })
NvimTreeImageFile = { fg = p.text }, h('NvimTreeImageFile', { fg = p.text })
NvimTreeNormal = { fg = p.text }, h('NvimTreeNormal', { fg = p.text })
NvimTreeOpenedFile = { fg = p.text, bg = p.highlight_med }, h('NvimTreeOpenedFile', { fg = p.text, bg = p.highlight_med })
NvimTreeOpenedFolderName = { link = 'NvimTreeFolderName' }, h('NvimTreeOpenedFolderName', { link = 'NvimTreeFolderName' })
NvimTreeRootFolder = { fg = p.iris }, h('NvimTreeRootFolder', { fg = p.iris })
NvimTreeSpecialFile = { link = 'NvimTreeNormal' }, h('NvimTreeSpecialFile', { link = 'NvimTreeNormal' })
NvimTreeWindowPicker = { fg = groups.background, bg = p.iris }, h('NvimTreeWindowPicker', { fg = p.love, bg = p.love, blend = 10 })
-- folke/which-key.nvim -- folke/which-key.nvim
WhichKey = { fg = p.iris }, h('WhichKey', { fg = p.iris })
WhichKeyGroup = { fg = p.foam }, h('WhichKeyGroup', { fg = p.foam })
WhichKeySeparator = { fg = p.subtle }, h('WhichKeySeparator', { fg = p.subtle })
WhichKeyDesc = { fg = p.gold }, h('WhichKeyDesc', { fg = p.gold })
WhichKeyFloat = { bg = groups.panel }, h('WhichKeyFloat', { bg = maybe.surface })
WhichKeyValue = { fg = p.rose }, h('WhichKeyValue', { fg = p.rose })
-- luka-reineke/indent-blankline.nvim -- luka-reineke/indent-blankline.nvim
IndentBlanklineChar = { fg = p.muted }, h('IndentBlanklineChar', { fg = p.muted })
IndentBlanklineSpaceChar = { fg = p.muted }, h('IndentBlanklineSpaceChar', { fg = p.muted })
IndentBlanklineSpaceCharBlankline = { fg = p.muted }, h('IndentBlanklineSpaceCharBlankline', { fg = p.muted })
-- hrsh7th/nvim-cmp -- hrsh7th/nvim-cmp
CmpItemAbbr = { fg = p.subtle }, h('CmpItemAbbr', { fg = p.subtle })
CmpItemAbbrDeprecated = { fg = p.subtle, strikethrough = true }, h('CmpItemAbbrDeprecated', { fg = p.subtle, strikethrough = true })
CmpItemAbbrMatch = { fg = p.text, bold = true }, h('CmpItemAbbrMatch', { fg = p.text, bold = true })
CmpItemAbbrMatchFuzzy = { fg = p.text, bold = true }, h('CmpItemAbbrMatchFuzzy', { fg = p.text, bold = true })
CmpItemKind = { fg = p.iris }, h('CmpItemKind', { fg = p.iris })
CmpItemKindClass = { fg = p.gold }, h('CmpItemKindClass', { fg = p.gold })
CmpItemKindFunction = { fg = p.iris }, h('CmpItemKindFunction', { fg = p.iris })
CmpItemKindInterface = { fg = p.gold }, h('CmpItemKindInterface', { fg = p.gold })
CmpItemKindMethod = { fg = p.iris }, h('CmpItemKindMethod', { fg = p.iris })
CmpItemKindSnippet = { fg = p.iris }, h('CmpItemKindSnippet', { fg = p.iris })
CmpItemKindVariable = { fg = p.foam }, h('CmpItemKindVariable', { fg = p.foam })
-- TimUntersberger/neogit -- TimUntersberger/neogit
NeogitDiffAddHighlight = { fg = p.foam, bg = p.highlight_med }, h('NeogitDiffAddHighlight', { fg = p.foam, bg = p.highlight_med })
NeogitDiffContextHighlight = { bg = p.highlight_low }, h('NeogitDiffContextHighlight', { bg = p.highlight_low })
NeogitDiffDeleteHighlight = { fg = p.love, bg = p.highlight_med }, h('NeogitDiffDeleteHighlight', { fg = p.love, bg = p.highlight_med })
NeogitHunkHeader = { bg = p.highlight_low }, h('NeogitHunkHeader', { bg = p.highlight_low })
NeogitHunkHeaderHighlight = { bg = p.highlight_low }, h('NeogitHunkHeaderHighlight', { bg = p.highlight_low })
-- vimwiki/vimwiki -- vimwiki/vimwiki
VimwikiHR = { fg = p.subtle }, h('VimwikiHR', { fg = p.subtle })
VimwikiHeader1 = { fg = groups.headings.h1, bold = true }, h('VimwikiHeader1', { fg = groups.headings.h1, bold = true })
VimwikiHeader2 = { fg = groups.headings.h2, bold = true }, h('VimwikiHeader2', { fg = groups.headings.h2, bold = true })
VimwikiHeader3 = { fg = groups.headings.h3, bold = true }, h('VimwikiHeader3', { fg = groups.headings.h3, bold = true })
VimwikiHeader4 = { fg = groups.headings.h4, bold = true }, h('VimwikiHeader4', { fg = groups.headings.h4, bold = true })
VimwikiHeader5 = { fg = groups.headings.h5, bold = true }, h('VimwikiHeader5', { fg = groups.headings.h5, bold = true })
VimwikiHeader6 = { fg = groups.headings.h6, bold = true }, h('VimwikiHeader6', { fg = groups.headings.h6, bold = true })
VimwikiHeaderChar = { fg = p.pine }, h('VimwikiHeaderChar', { fg = p.pine })
VimwikiLink = { fg = groups.link, underline = true }, h('VimwikiLink', { fg = groups.link, underline = true })
VimwikiList = { fg = p.iris }, h('VimwikiList', { fg = p.iris })
VimwikiNoExistsLink = { fg = p.love }, h('VimwikiNoExistsLink', { fg = p.love })
-- nvim-neorg/neorg -- nvim-neorg/neorg
NeorgHeading1Prefix = { fg = groups.headings.h1, bold = true }, h('NeorgHeading1Prefix', { fg = groups.headings.h1, bold = true })
NeorgHeading1Title = { link = 'NeorgHeading1Prefix' }, h('NeorgHeading1Title', { link = 'NeorgHeading1Prefix' })
NeorgHeading2Prefix = { fg = groups.headings.h2, bold = true }, h('NeorgHeading2Prefix', { fg = groups.headings.h2, bold = true })
NeorgHeading2Title = { link = 'NeorgHeading2Prefix' }, h('NeorgHeading2Title', { link = 'NeorgHeading2Prefix' })
NeorgHeading3Prefix = { fg = groups.headings.h3, bold = true }, h('NeorgHeading3Prefix', { fg = groups.headings.h3, bold = true })
NeorgHeading3Title = { link = 'NeorgHeading3Prefix' }, h('NeorgHeading3Title', { link = 'NeorgHeading3Prefix' })
NeorgHeading4Prefix = { fg = groups.headings.h4, bold = true }, h('NeorgHeading4Prefix', { fg = groups.headings.h4, bold = true })
NeorgHeading4Title = { link = 'NeorgHeading4Prefix' }, h('NeorgHeading4Title', { link = 'NeorgHeading4Prefix' })
NeorgHeading5Prefix = { fg = groups.headings.h5, bold = true }, h('NeorgHeading5Prefix', { fg = groups.headings.h5, bold = true })
NeorgHeading5Title = { link = 'NeorgHeading5Prefix' }, h('NeorgHeading5Title', { link = 'NeorgHeading5Prefix' })
NeorgHeading6Prefix = { fg = groups.headings.h6, bold = true }, h('NeorgHeading6Prefix', { fg = groups.headings.h6, bold = true })
NeorgHeading6Title = { link = 'NeorgHeading6Prefix' }, h('NeorgHeading6Title', { link = 'NeorgHeading6Prefix' })
NeorgMarkerTitle = { fg = p.text, bold = true }, h('NeorgMarkerTitle', { fg = p.text, bold = true })
-- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim) -- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim)
DefinitionCount = { fg = p.rose }, h('DefinitionCount', { fg = p.rose })
DefinitionIcon = { fg = p.rose }, h('DefinitionIcon', { fg = p.rose })
DefintionPreviewTitle = { fg = p.rose, bold = true }, h('DefintionPreviewTitle', { fg = p.rose, bold = true })
LspFloatWinBorder = { fg = groups.border }, h('LspFloatWinBorder', { fg = groups.border })
LspFloatWinNormal = { bg = groups.background }, h('LspFloatWinNormal', { bg = maybe.surface })
LspSagaAutoPreview = { fg = p.subtle }, h('LspSagaAutoPreview', { fg = p.subtle })
LspSagaCodeActionBorder = { fg = groups.border }, h('LspSagaCodeActionBorder', { fg = groups.border })
LspSagaCodeActionContent = { fg = p.foam }, h('LspSagaCodeActionContent', { fg = p.foam })
LspSagaCodeActionTitle = { fg = p.gold, bold = true }, h('LspSagaCodeActionTitle', { fg = p.gold, bold = true })
LspSagaCodeActionTruncateLine = { link = 'LspSagaCodeActionBorder' }, h('LspSagaCodeActionTruncateLine', { link = 'LspSagaCodeActionBorder' })
LspSagaDefPreviewBorder = { fg = groups.border }, h('LspSagaDefPreviewBorder', { fg = groups.border })
LspSagaDiagnosticBorder = { fg = groups.border }, h('LspSagaDiagnosticBorder', { fg = groups.border })
LspSagaDiagnosticHeader = { fg = p.gold, bold = true }, h('LspSagaDiagnosticHeader', { fg = p.gold, bold = true })
LspSagaDiagnosticTruncateLine = { link = 'LspSagaDiagnosticBorder' }, h('LspSagaDiagnosticTruncateLine', { link = 'LspSagaDiagnosticBorder' })
LspSagaDocTruncateLine = { link = 'LspSagaHoverBorder' }, h('LspSagaDocTruncateLine', { link = 'LspSagaHoverBorder' })
LspSagaFinderSelection = { fg = p.gold }, h('LspSagaFinderSelection', { fg = p.gold })
LspSagaHoverBorder = { fg = groups.border }, h('LspSagaHoverBorder', { fg = groups.border })
LspSagaLspFinderBorder = { fg = groups.border }, h('LspSagaLspFinderBorder', { fg = groups.border })
LspSagaRenameBorder = { fg = p.pine }, h('LspSagaRenameBorder', { fg = p.pine })
LspSagaRenamePromptPrefix = { fg = p.love }, h('LspSagaRenamePromptPrefix', { fg = p.love })
LspSagaShTruncateLine = { link = 'LspSagaSignatureHelpBorder' }, h('LspSagaShTruncateLine', { link = 'LspSagaSignatureHelpBorder' })
LspSagaSignatureHelpBorder = { fg = p.pine }, h('LspSagaSignatureHelpBorder', { fg = p.pine })
ReferencesCount = { fg = p.rose }, h('ReferencesCount', { fg = p.rose })
ReferencesIcon = { fg = p.rose }, h('ReferencesIcon', { fg = p.rose })
SagaShadow = { bg = p.overlay }, h('SagaShadow', { bg = p.overlay })
TargetWord = { fg = p.iris }, h('TargetWord', { fg = p.iris })
-- ray-x/lsp_signature.nvim -- ray-x/lsp_signature.nvim
LspSignatureActiveParameter = { bg = p.overlay }, h('LspSignatureActiveParameter', { bg = p.overlay })
-- rlane/pounce.nvim -- rlane/pounce.nvim
PounceAccept = { fg = p.love, bg = p.highlight_high }, h('PounceAccept', { fg = p.love, bg = p.highlight_high })
PounceAcceptBest = { fg = p.base, bg = p.gold }, h('PounceAcceptBest', { fg = p.base, bg = p.gold })
PounceGap = { link = 'Search' }, h('PounceGap', { link = 'Search' })
PounceMatch = { link = 'Search' }, h('PounceMatch', { link = 'Search' })
-- nvim-telescope/telescope.nvim -- nvim-telescope/telescope.nvim
TelescopeBorder = { fg = groups.border, bg = styles.float_background }, h('TelescopeBorder', { fg = groups.border, bg = maybe.surface })
TelescopeMatching = { fg = p.rose }, h('TelescopeMatching', { fg = p.rose })
TelescopeNormal = { fg = p.subtle, bg = styles.float_background }, h('TelescopeNormal', { fg = p.subtle, bg = maybe.surface })
TelescopePromptNormal = { fg = p.text, bg = styles.float_background }, h('TelescopePromptNormal', { fg = p.text, bg = maybe.surface })
TelescopePromptPrefix = { fg = p.subtle }, h('TelescopePromptPrefix', { fg = p.subtle })
TelescopeSelection = { fg = p.text, bg = p.overlay }, h('TelescopeSelection', { fg = p.text, bg = p.overlay })
TelescopeSelectionCaret = { fg = p.rose, bg = p.overlay }, h('TelescopeSelectionCaret', { fg = p.rose, bg = p.overlay })
TelescopeTitle = { fg = p.subtle }, h('TelescopeTitle', { fg = p.subtle })
-- rcarriga/nvim-notify -- rcarriga/nvim-notify
NotifyINFOBorder = { fg = p.foam }, h('NotifyINFOBorder', { fg = p.foam })
NotifyINFOTitle = { link = 'NotifyINFOBorder' }, h('NotifyINFOTitle', { link = 'NotifyINFOBorder' })
NotifyINFOIcon = { link = 'NotifyINFOBorder' }, h('NotifyINFOIcon', { link = 'NotifyINFOBorder' })
NotifyWARNBorder = { fg = p.gold }, h('NotifyWARNBorder', { fg = p.gold })
NotifyWARNTitle = { link = 'NotifyWARNBorder' }, h('NotifyWARNTitle', { link = 'NotifyWARNBorder' })
NotifyWARNIcon = { link = 'NotifyWARNBorder' }, h('NotifyWARNIcon', { link = 'NotifyWARNBorder' })
NotifyDEBUGBorder = { fg = p.muted }, h('NotifyDEBUGBorder', { fg = p.muted })
NotifyDEBUGTitle = { link = 'NotifyDEBUGBorder' }, h('NotifyDEBUGTitle', { link = 'NotifyDEBUGBorder' })
NotifyDEBUGIcon = { link = 'NotifyDEBUGBorder' }, h('NotifyDEBUGIcon', { link = 'NotifyDEBUGBorder' })
NotifyTRACEBorder = { fg = p.iris }, h('NotifyTRACEBorder', { fg = p.iris })
NotifyTRACETitle = { link = 'NotifyTRACEBorder' }, h('NotifyTRACETitle', { link = 'NotifyTRACEBorder' })
NotifyTRACEIcon = { link = 'NotifyTRACEBorder' }, h('NotifyTRACEIcon', { link = 'NotifyTRACEBorder' })
NotifyERRORBorder = { fg = p.love }, h('NotifyERRORBorder', { fg = p.love })
NotifyERRORTitle = { link = 'NotifyERRORBorder' }, h('NotifyERRORTitle', { link = 'NotifyERRORBorder' })
NotifyERRORIcon = { link = 'NotifyERRORBorder' }, h('NotifyERRORIcon', { link = 'NotifyERRORBorder' })
-- rcarriga/nvim-dap-ui -- rcarriga/nvim-dap-ui
DapUIVariable = { link = 'Normal' }, h('DapUIVariable', { link = 'Normal' })
DapUIValue = { link = 'Normal' }, h('DapUIValue', { link = 'Normal' })
DapUIFrameName = { link = 'Normal' }, h('DapUIFrameName', { link = 'Normal' })
DapUIThread = { fg = p.gold }, h('DapUIThread', { fg = p.gold })
DapUIWatchesValue = { link = 'DapUIThread' }, h('DapUIWatchesValue', { link = 'DapUIThread' })
DapUIBreakpointsInfo = { link = 'DapUIThread' }, h('DapUIBreakpointsInfo', { link = 'DapUIThread' })
DapUIBreakpointsCurrentLine = { fg = p.gold, bold = true }, h('DapUIBreakpointsCurrentLine', { fg = p.gold, bold = true })
DapUIWatchesEmpty = { fg = p.love }, h('DapUIWatchesEmpty', { fg = p.love })
DapUIWatchesError = { link = 'DapUIWatchesEmpty' }, h('DapUIWatchesError', { link = 'DapUIWatchesEmpty' })
DapUIBreakpointsDisabledLine = { fg = p.muted }, h('DapUIBreakpointsDisabledLine', { fg = p.muted })
DapUISource = { fg = p.iris }, h('DapUISource', { fg = p.iris })
DapUIBreakpointsPath = { fg = p.foam }, h('DapUIBreakpointsPath', { fg = p.foam })
DapUIScope = { link = 'DapUIBreakpointsPath' }, h('DapUIScope', { link = 'DapUIBreakpointsPath' })
DapUILineNumber = { link = 'DapUIBreakpointsPath' }, h('DapUILineNumber', { link = 'DapUIBreakpointsPath' })
DapUIBreakpointsLine = { link = 'DapUIBreakpointsPath' }, h('DapUIBreakpointsLine', { link = 'DapUIBreakpointsPath' })
DapUIFloatBorder = { link = 'DapUIBreakpointsPath' }, h('DapUIFloatBorder', { link = 'DapUIBreakpointsPath' })
DapUIStoppedThread = { link = 'DapUIBreakpointsPath' }, h('DapUIStoppedThread', { link = 'DapUIBreakpointsPath' })
DapUIDecoration = { link = 'DapUIBreakpointsPath' }, h('DapUIDecoration', { link = 'DapUIBreakpointsPath' })
DapUIModifiedValue = { fg = p.foam, bold = true }, h('DapUIModifiedValue', { fg = p.foam, bold = true })
-- glepnir/dashboard-nvim -- glepnir/dashboard-nvim
DashboardShortcut = { fg = p.love }, h('DashboardShortcut', { fg = p.love })
DashboardHeader = { fg = p.pine }, h('DashboardHeader', { fg = p.pine })
DashboardCenter = { fg = p.gold }, h('DashboardCenter', { fg = p.gold })
DashboardFooter = { fg = p.iris }, h('DashboardFooter', { fg = p.iris })
}
vim.g.terminal_color_0 = p.overlay -- black vim.g.terminal_color_0 = p.overlay -- black
vim.g.terminal_color_8 = p.subtle -- bright black vim.g.terminal_color_8 = p.subtle -- bright black
@ -534,7 +532,10 @@ function M.get(config)
vim.g.terminal_color_7 = p.text -- white vim.g.terminal_color_7 = p.text -- white
vim.g.terminal_color_15 = p.text -- bright white vim.g.terminal_color_15 = p.text -- bright white
return theme -- Set user highlights
for group, color in pairs(options.highlight_groups) do
h(group, color)
end
end end
return M return M