This commit is contained in:
Eric Xiao 2022-10-21 10:44:47 -07:00
commit 1b8b98e194
9 changed files with 820 additions and 820 deletions

View file

@ -1,18 +1,18 @@
local p = require('rose-pine.palette') local p = require('rose-pine.palette')
return { return {
normal = { normal = {
a = {bg = p.surface, fg = p.rose, gui = 'bold'}, a = {bg = p.surface, fg = p.rose, gui = 'bold'},
b = {bg = p.surface, fg = p.text}, b = {bg = p.surface, fg = p.text},
c = {bg = p.surface, fg = p.subtle, gui = 'italic'} c = {bg = p.surface, fg = p.subtle, gui = 'italic'}
}, },
insert = {a = {bg = p.surface, fg = p.foam, gui = 'bold'}}, insert = {a = {bg = p.surface, fg = p.foam, gui = 'bold'}},
visual = {a = {bg = p.surface, fg = p.iris, gui = 'bold'}}, visual = {a = {bg = p.surface, fg = p.iris, gui = 'bold'}},
replace = {a = {bg = p.surface, fg = p.pine, gui = 'bold'}}, replace = {a = {bg = p.surface, fg = p.pine, gui = 'bold'}},
command = {a = {bg = p.surface, fg = p.love, gui = 'bold'}}, command = {a = {bg = p.surface, fg = p.love, gui = 'bold'}},
inactive = { inactive = {
a = {bg = p.base, fg = p.subtle, gui = 'bold'}, a = {bg = p.base, fg = p.subtle, gui = 'bold'},
b = {bg = p.base, fg = p.subtle}, b = {bg = p.base, fg = p.subtle},
c = {bg = p.base, fg = p.subtle, gui = 'italic'} c = {bg = p.base, fg = p.subtle, gui = 'italic'}
} }
} }

View file

@ -1,34 +1,34 @@
local p = require('rose-pine.palette') local p = require('rose-pine.palette')
return { return {
normal = { normal = {
a = {bg = p.rose, fg = p.base, gui = 'bold'}, a = {bg = p.rose, fg = p.base, gui = 'bold'},
b = {bg = p.overlay, fg = p.rose}, b = {bg = p.overlay, fg = p.rose},
c = {bg = p.base, fg = p.text} c = {bg = p.base, fg = p.text}
}, },
insert = { insert = {
a = {bg = p.foam, fg = p.base, gui = 'bold'}, a = {bg = p.foam, fg = p.base, gui = 'bold'},
b = {bg = p.overlay, fg = p.foam}, b = {bg = p.overlay, fg = p.foam},
c = {bg = p.base, fg = p.text} c = {bg = p.base, fg = p.text}
}, },
visual = { visual = {
a = {bg = p.iris, fg = p.base, gui = 'bold'}, a = {bg = p.iris, fg = p.base, gui = 'bold'},
b = {bg = p.overlay, fg = p.iris}, b = {bg = p.overlay, fg = p.iris},
c = {bg = p.base, fg = p.text} c = {bg = p.base, fg = p.text}
}, },
replace = { replace = {
a = {bg = p.pine, fg = p.base, gui = 'bold'}, a = {bg = p.pine, fg = p.base, gui = 'bold'},
b = {bg = p.overlay, fg = p.pine}, b = {bg = p.overlay, fg = p.pine},
c = {bg = p.base, fg = p.text} c = {bg = p.base, fg = p.text}
}, },
command = { command = {
a = {bg = p.cold, fg = p.base, gui = 'bold'}, a = {bg = p.cold, fg = p.base, gui = 'bold'},
b = {bg = p.overlay, fg = p.love}, b = {bg = p.overlay, fg = p.love},
c = {bg = p.base, fg = p.text} c = {bg = p.base, fg = p.text}
}, },
inactive = { inactive = {
a = {bg = p.base, fg = p.muted, gui = 'bold'}, a = {bg = p.base, fg = p.muted, gui = 'bold'},
b = {bg = p.base, fg = p.muted}, b = {bg = p.base, fg = p.muted},
c = {bg = p.base, fg = p.muted} c = {bg = p.base, fg = p.muted}
} }
} }

View file

@ -3,15 +3,15 @@ local util = require('rose-pine.util')
local M = {} local M = {}
function M.colorscheme() function M.colorscheme()
if vim.g.colors_name then vim.cmd('hi clear') end if vim.g.colors_name then vim.cmd('hi clear') end
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() local theme = require('rose-pine.theme').get()
-- Set theme highlights -- Set theme highlights
for group, color in pairs(theme) do util.highlight(group, color) end for group, color in pairs(theme) do util.highlight(group, color) end
end end
return M return M

View file

@ -1,23 +1,23 @@
local palette = { local palette = {
base = '#171524', base = '#171524',
surface = '#1f1d2e', surface = '#1f1d2e',
overlay = '#26233a', overlay = '#26233a',
muted = '#6e6a86', muted = '#6e6a86',
subtle = '#908caa', subtle = '#908caa',
text = '#e0def4', text = '#e0def4',
love = '#e89b9f', love = '#e89b9f',
gold = '#f69957', gold = '#f69957',
-- rose = '#ebbcba', -- rose = '#ebbcba',
rose = '#ff79b1', rose = '#ff79b1',
calm = '#23ff87', calm = '#23ff87',
pine = '#cd51d5', pine = '#cd51d5',
foam = '#9ccfd8', foam = '#9ccfd8',
iris = '#c4a7e7', iris = '#c4a7e7',
cold = '#967de5', cold = '#967de5',
highlight_low = '#21202e', highlight_low = '#21202e',
highlight_med = '#403d52', highlight_med = '#403d52',
highlight_high = '#524f67', highlight_high = '#524f67',
none = 'NONE' none = 'NONE'
} }
return palette return palette

View file

@ -7,199 +7,199 @@
local p = require('rose-pine.palette') local p = require('rose-pine.palette')
return { return {
-- fill = { -- fill = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- background = { -- background = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- tab = { -- tab = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- tab_selected = { -- tab_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- tab_close = { -- tab_close = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- close_button = { -- close_button = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- close_button_visible = { -- close_button_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- close_button_selected = { -- close_button_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
buffer_visible = {guifg = p.subtle, guibg = p.base}, buffer_visible = {guifg = p.subtle, guibg = p.base},
buffer_selected = {guifg = p.text, guibg = p.surface, gui = 'bold,italic'} buffer_selected = {guifg = p.text, guibg = p.surface, gui = 'bold,italic'}
-- diagnostic = { -- diagnostic = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- diagnostic_visible = { -- diagnostic_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- diagnostic_selected = { -- diagnostic_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- }, -- },
-- info = { -- info = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- info_visible = { -- info_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- info_selected = { -- info_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- info_diagnostic = { -- info_diagnostic = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- info_diagnostic_visible = { -- info_diagnostic_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- info_diagnostic_selected = { -- info_diagnostic_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- warning = { -- warning = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- warning_visible = { -- warning_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- warning_selected = { -- warning_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- warning_diagnostic = { -- warning_diagnostic = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- warning_diagnostic_visible = { -- warning_diagnostic_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- warning_diagnostic_selected = { -- warning_diagnostic_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- guisp = warning_diagnostic_fg, -- guisp = warning_diagnostic_fg,
-- }, -- },
-- error = { -- error = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- error_visible = { -- error_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- error_selected = { -- error_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- error_diagnostic = { -- error_diagnostic = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- error_diagnostic_visible = { -- error_diagnostic_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- error_diagnostic_selected = { -- error_diagnostic_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- guisp = '<color-value-here>', -- guisp = '<color-value-here>',
-- }, -- },
-- modified = { -- modified = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- modified_visible = { -- modified_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- modified_selected = { -- modified_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- duplicate_selected = { -- duplicate_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- gui = 'italic', -- gui = 'italic',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- duplicate_visible = { -- duplicate_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- gui = 'italic', -- gui = 'italic',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- duplicate = { -- duplicate = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- gui = 'italic', -- gui = 'italic',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- separator_selected = { -- separator_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- separator_visible = { -- separator_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- separator = { -- separator = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- indicator_selected = { -- indicator_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- }, -- },
-- pick_selected = { -- pick_selected = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- }, -- },
-- pick_visible = { -- pick_visible = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- }, -- },
-- pick = { -- pick = {
-- guifg = '<color-value-here>', -- guifg = '<color-value-here>',
-- guibg = '<color-value-here>', -- guibg = '<color-value-here>',
-- gui = 'bold,italic', -- gui = 'bold,italic',
-- }, -- },
} }

View file

@ -6,14 +6,14 @@
local p = require('rose-pine.palette') local p = require('rose-pine.palette')
return { return {
bg = p.surface, bg = p.surface,
fg = p.text, fg = p.text,
fg_alt = p.subtle, fg_alt = p.subtle,
yellow = p.gold, yellow = p.gold,
cyan = p.rose, cyan = p.rose,
green = p.pine, green = p.pine,
orange = p.muted, orange = p.muted,
magenta = p.iris, magenta = p.iris,
blue = p.foam, blue = p.foam,
red = p.love red = p.love
} }

View file

@ -5,10 +5,10 @@
--- local highlights = require('rose-pine.plugins.toggleterm') --- local highlights = require('rose-pine.plugins.toggleterm')
--- require('toggleterm').setup({ highlights = highlights }) --- require('toggleterm').setup({ highlights = highlights })
return { return {
Normal = {link = 'Normal'}, Normal = {link = 'Normal'},
NormalFloat = {link = 'Normal'}, NormalFloat = {link = 'Normal'},
FloatBorder = {link = 'FloatBorder'}, FloatBorder = {link = 'FloatBorder'},
SignColumn = {link = 'SignColumn'}, SignColumn = {link = 'SignColumn'},
StatusLine = {link = 'StatusLine'}, StatusLine = {link = 'StatusLine'},
StatusLineNC = {link = 'StatusLineNC'} StatusLineNC = {link = 'StatusLineNC'}
} }

View file

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

View file

@ -1,61 +1,61 @@
local util = {} local util = {}
local function byte(value, offset) local function byte(value, offset)
return bit.band(bit.rshift(value, offset), 0xFF) return bit.band(bit.rshift(value, offset), 0xFF)
end end
local function rgb(color) local function rgb(color)
color = vim.api.nvim_get_color_by_name(color) color = vim.api.nvim_get_color_by_name(color)
if color == -1 then if color == -1 then
color = vim.opt.background:get() == 'dark' and 000 or 255255255 color = vim.opt.background:get() == 'dark' and 000 or 255255255
end end
return {byte(color, 16), byte(color, 8), byte(color, 0)} return {byte(color, 16), byte(color, 8), byte(color, 0)}
end end
local function parse_color(color) local function parse_color(color)
if color == nil then return print('invalid color') end if color == nil then return print('invalid color') end
color = color:lower() color = color:lower()
if not color:find('#') and color ~= 'none' then if not color:find('#') and color ~= 'none' then
color = require('rose-pine.palette')[color] or color = require('rose-pine.palette')[color] or
vim.api.nvim_get_color_by_name(color) vim.api.nvim_get_color_by_name(color)
end end
return color return color
end end
---@param fg string foreground color ---@param fg string foreground color
---@param bg string background color ---@param bg string background color
---@param alpha number number between 0 (background) and 1 (foreground) ---@param alpha number number between 0 (background) and 1 (foreground)
util.blend = function(fg, bg, alpha) util.blend = function(fg, bg, alpha)
fg = rgb(parse_color(fg)) fg = rgb(parse_color(fg))
bg = rgb(parse_color(bg)) bg = rgb(parse_color(bg))
local function blend_channel(i) local function blend_channel(i)
local ret = (alpha * fg[i] + ((1 - alpha) * bg[i])) local ret = (alpha * fg[i] + ((1 - alpha) * bg[i]))
return math.floor(math.min(math.max(0, ret), 255) + 0.5) return math.floor(math.min(math.max(0, ret), 255) + 0.5)
end end
return string.format('#%02X%02X%02X', blend_channel(1), blend_channel(2), return string.format('#%02X%02X%02X', blend_channel(1), blend_channel(2),
blend_channel(3)) blend_channel(3))
end end
---@param group string ---@param group string
---@param color table<string, string> ---@param color table<string, string>
util.highlight = function(group, color) util.highlight = function(group, color)
local style = color.style and 'gui=' .. color.style or 'gui=NONE' local style = color.style and 'gui=' .. color.style or 'gui=NONE'
local fg = color.fg and 'guifg=' .. parse_color(color.fg) or 'guifg=NONE' local fg = color.fg and 'guifg=' .. parse_color(color.fg) or 'guifg=NONE'
local bg = color.bg and 'guibg=' .. parse_color(color.bg) or 'guibg=NONE' local bg = color.bg and 'guibg=' .. parse_color(color.bg) or 'guibg=NONE'
local sp = color.sp and 'guisp=' .. parse_color(color.sp) or '' local sp = color.sp and 'guisp=' .. parse_color(color.sp) or ''
vim.cmd(string.format('highlight %s %s %s %s %s', group, style, fg, bg, sp)) vim.cmd(string.format('highlight %s %s %s %s %s', group, style, fg, bg, sp))
if color.link then if color.link then
vim.cmd(string.format('highlight! link %s %s', group, color.link)) vim.cmd(string.format('highlight! link %s %s', group, color.link))
end end
end end
return util return util