mirror of
https://github.com/rose-pine/neovim.git
synced 2025-10-15 12:38:53 +02:00
BREAKING!: rewrite config api and update styles
- move config to lua - use rose for search match - fix background flicker when automatically switching to dawn - remove unneeded highlights (please report regressions) - remove deprecated `LspDiagnostics*` - remove `LspReference*` - improve overall consistency between elements - non-treesitter updates to match treesitter styles - update popup menu scrollbar and selection - update telescope selection - match cursorcolumn to cursorline
This commit is contained in:
parent
0e23ee652d
commit
59a88444de
9 changed files with 595 additions and 607 deletions
|
|
@ -1,6 +1 @@
|
|||
lua package.loaded['rose-pine'] = nil
|
||||
lua package.loaded['rose-pine.config'] = nil
|
||||
lua package.loaded['rose-pine.palette'] = nil
|
||||
lua package.loaded['rose-pine.theme'] = nil
|
||||
|
||||
lua require('rose-pine').colorscheme()
|
||||
|
|
|
|||
|
|
@ -1,34 +1,35 @@
|
|||
local p = require('rose-pine.palette')
|
||||
local palette = require('rose-pine.palette')
|
||||
local colors = palette[vim.g.rose_pine_variant or 'main']
|
||||
|
||||
return {
|
||||
normal = {
|
||||
a = { bg = p.rose, fg = p.base, gui = 'bold' },
|
||||
b = { bg = p.overlay, fg = p.rose },
|
||||
c = { bg = p.base, fg = p.text },
|
||||
a = { bg = colors.rose, fg = colors.base, gui = 'bold' },
|
||||
b = { bg = colors.overlay, fg = colors.rose },
|
||||
c = { bg = colors.base, fg = colors.text },
|
||||
},
|
||||
insert = {
|
||||
a = { bg = p.foam, fg = p.base, gui = 'bold' },
|
||||
b = { bg = p.overlay, fg = p.foam },
|
||||
c = { bg = p.base, fg = p.text },
|
||||
a = { bg = colors.foam, fg = colors.base, gui = 'bold' },
|
||||
b = { bg = colors.overlay, fg = colors.foam },
|
||||
c = { bg = colors.base, fg = colors.text },
|
||||
},
|
||||
visual = {
|
||||
a = { bg = p.iris, fg = p.base, gui = 'bold' },
|
||||
b = { bg = p.overlay, fg = p.iris },
|
||||
c = { bg = p.base, fg = p.text },
|
||||
a = { bg = colors.iris, fg = colors.base, gui = 'bold' },
|
||||
b = { bg = colors.overlay, fg = colors.iris },
|
||||
c = { bg = colors.base, fg = colors.text },
|
||||
},
|
||||
replace = {
|
||||
a = { bg = p.pine, fg = p.base, gui = 'bold' },
|
||||
b = { bg = p.overlay, fg = p.pine },
|
||||
c = { bg = p.base, fg = p.text },
|
||||
a = { bg = colors.pine, fg = colors.base, gui = 'bold' },
|
||||
b = { bg = colors.overlay, fg = colors.pine },
|
||||
c = { bg = colors.base, fg = colors.text },
|
||||
},
|
||||
command = {
|
||||
a = { bg = p.love, fg = p.base, gui = 'bold' },
|
||||
b = { bg = p.overlay, fg = p.love },
|
||||
c = { bg = p.base, fg = p.text },
|
||||
a = { bg = colors.love, fg = colors.base, gui = 'bold' },
|
||||
b = { bg = colors.overlay, fg = colors.love },
|
||||
c = { bg = colors.base, fg = colors.text },
|
||||
},
|
||||
inactive = {
|
||||
a = { bg = p.base, fg = p.muted, gui = 'bold' },
|
||||
b = { bg = p.base, fg = p.muted },
|
||||
c = { bg = p.base, fg = p.muted },
|
||||
a = { bg = colors.base, fg = colors.muted, gui = 'bold' },
|
||||
b = { bg = colors.base, fg = colors.muted },
|
||||
c = { bg = colors.base, fg = colors.muted },
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
local p = require('rose-pine.palette')
|
||||
local palette = require('rose-pine.palette')
|
||||
local colors = palette[vim.g.rose_pine_variant or 'main']
|
||||
|
||||
-- TODO: Someone who uses bufferline.nvim is free to PR with this addition
|
||||
-- `:h bufferline-highlights`
|
||||
|
|
@ -13,11 +14,11 @@ local p = require('rose-pine.palette')
|
|||
-- ```
|
||||
return {
|
||||
fill = {
|
||||
guifg = p.text,
|
||||
guibg = p.base,
|
||||
guifg = colors.text,
|
||||
guibg = colors.base,
|
||||
},
|
||||
background = {
|
||||
guifg = p.text,
|
||||
guibg = p.base,
|
||||
guifg = colors.text,
|
||||
guibg = colors.base,
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,74 +0,0 @@
|
|||
local palette = require('rose-pine.palette')
|
||||
|
||||
local function opt(key, default)
|
||||
key = 'rose_pine_' .. key
|
||||
|
||||
if vim.g[key] == nil then
|
||||
return default
|
||||
end
|
||||
|
||||
if vim.g[key] == 0 or vim.g[key] == false then
|
||||
return false
|
||||
end
|
||||
|
||||
return vim.g[key]
|
||||
end
|
||||
|
||||
local config = {
|
||||
variant = opt('variant', 'main'),
|
||||
|
||||
bold_vertical_split_line = opt('bold_vertical_split_line', false),
|
||||
disable_italics = opt('disable_italics', false),
|
||||
disable_background = opt('disable_background', false),
|
||||
disable_float_background = opt('disable_float_background', false),
|
||||
inactive_background = opt('inactive_background', false),
|
||||
|
||||
colors = {
|
||||
border = palette.highlight_med,
|
||||
comment = palette.muted,
|
||||
link = palette.iris,
|
||||
punctuation = palette.subtle,
|
||||
|
||||
error = palette.love,
|
||||
hint = palette.iris,
|
||||
info = palette.foam,
|
||||
warn = palette.gold,
|
||||
|
||||
git_add = palette.foam,
|
||||
git_change = palette.rose,
|
||||
git_delete = palette.love,
|
||||
git_dirty = palette.rose,
|
||||
git_ignore = palette.muted,
|
||||
git_merge = palette.iris,
|
||||
git_rename = palette.pine,
|
||||
git_stage = palette.iris,
|
||||
git_text = palette.rose,
|
||||
|
||||
---@type string|table<string, string>
|
||||
headings = {
|
||||
h1 = palette.iris,
|
||||
h2 = palette.foam,
|
||||
h3 = palette.rose,
|
||||
h4 = palette.gold,
|
||||
h5 = palette.pine,
|
||||
h6 = palette.foam,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local colors = vim.g.rose_pine_colors or {}
|
||||
|
||||
if type(colors.headings) == 'string' then
|
||||
colors.headings = {
|
||||
h1 = colors.headings,
|
||||
h2 = colors.headings,
|
||||
h3 = colors.headings,
|
||||
h4 = colors.headings,
|
||||
h5 = colors.headings,
|
||||
h6 = colors.headings,
|
||||
}
|
||||
end
|
||||
|
||||
config.colors = vim.tbl_deep_extend('force', config.colors, colors)
|
||||
|
||||
return config
|
||||
|
|
@ -4,16 +4,17 @@ if not present then
|
|||
end
|
||||
|
||||
local palette = require('rose-pine.palette')
|
||||
local colors = palette[vim.g.rose_pine_variant or 'main']
|
||||
|
||||
galaxyline_colors['rose-pine'] = {
|
||||
bg = palette.overlay,
|
||||
fg = palette.text,
|
||||
fg_alt = palette.subtle,
|
||||
blue = palette.foam,
|
||||
cyan = palette.foam,
|
||||
green = palette.muted,
|
||||
magenta = palette.iris,
|
||||
orange = palette.rose,
|
||||
red = palette.love,
|
||||
yellow = palette.gold,
|
||||
bg = colors.overlay,
|
||||
fg = colors.text,
|
||||
fg_alt = colors.subtle,
|
||||
blue = colors.foam,
|
||||
cyan = colors.foam,
|
||||
green = colors.muted,
|
||||
magenta = colors.iris,
|
||||
orange = colors.rose,
|
||||
red = colors.love,
|
||||
yellow = colors.gold,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,112 @@
|
|||
local palette = require('rose-pine.palette')
|
||||
|
||||
local M = {}
|
||||
|
||||
---@class RosePineConfig
|
||||
---@field variant 'main'|'moon'|'dawn'
|
||||
---@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 RosePineGroups
|
||||
|
||||
---@class RosePineGroups
|
||||
---@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 RosePineGit
|
||||
---@field headings string|RosePineHeadings
|
||||
|
||||
---@class RosePineGit
|
||||
---@field add string
|
||||
---@field change string
|
||||
---@field delete string
|
||||
---@field dirty string
|
||||
---@field ignore string
|
||||
---@field merge string
|
||||
---@field rename string
|
||||
---@field stage string
|
||||
---@field text string
|
||||
|
||||
---@class RosePineHeadings
|
||||
---@field h1 string
|
||||
---@field h2 string
|
||||
---@field h3 string
|
||||
---@field h4 string
|
||||
---@field h5 string
|
||||
---@field h6 string
|
||||
|
||||
---@type RosePineConfig
|
||||
local config = {}
|
||||
|
||||
---@param opts RosePineConfig
|
||||
function M.setup(opts)
|
||||
vim.g.rose_pine_variant = opts.variant or 'main'
|
||||
|
||||
local default_config = {
|
||||
variant = 'main',
|
||||
bold_vert_split = false,
|
||||
dim_nc_background = false,
|
||||
disable_background = false,
|
||||
disable_float_background = false,
|
||||
disable_italics = false,
|
||||
|
||||
groups = {
|
||||
border = 'highlight_med',
|
||||
comment = 'muted',
|
||||
link = 'iris',
|
||||
punctuation = 'subtle',
|
||||
|
||||
error = 'love',
|
||||
hint = 'iris',
|
||||
info = 'foam',
|
||||
warn = 'gold',
|
||||
|
||||
git = {
|
||||
add = 'foam',
|
||||
change = 'rose',
|
||||
delete = 'love',
|
||||
dirty = 'rose',
|
||||
ignore = 'muted',
|
||||
merge = 'iris',
|
||||
rename = 'pine',
|
||||
stage = 'iris',
|
||||
text = 'rose',
|
||||
},
|
||||
|
||||
headings = {
|
||||
h1 = 'iris',
|
||||
h2 = 'foam',
|
||||
h3 = 'rose',
|
||||
h4 = 'gold',
|
||||
h5 = 'pine',
|
||||
h6 = 'foam',
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
local groups = opts.groups or {}
|
||||
if type(groups.headings) == 'string' then
|
||||
groups.headings = {
|
||||
h1 = groups.headings,
|
||||
h2 = groups.headings,
|
||||
h3 = groups.headings,
|
||||
h4 = groups.headings,
|
||||
h5 = groups.headings,
|
||||
h6 = groups.headings,
|
||||
}
|
||||
end
|
||||
|
||||
config.user_variant = opts.variant or nil
|
||||
config = vim.tbl_deep_extend('force', default_config, opts)
|
||||
end
|
||||
|
||||
function M.colorscheme()
|
||||
if vim.g.colors_name then
|
||||
vim.cmd('hi clear')
|
||||
|
|
@ -8,20 +115,34 @@ function M.colorscheme()
|
|||
vim.opt.termguicolors = true
|
||||
vim.g.colors_name = 'rose-pine'
|
||||
|
||||
-- Match terminal theme if no variant is set
|
||||
if vim.g.rose_pine_variant == nil and vim.o.background == 'light' then
|
||||
vim.g.rose_pine_variant = 'dawn'
|
||||
elseif vim.g.rose_pine_variant == 'dawn' then
|
||||
-- match variant to vim background
|
||||
if config.user_variant == nil and vim.o.background == 'light' then
|
||||
config.variant = 'dawn'
|
||||
end
|
||||
|
||||
-- match vim background to variant
|
||||
if config.user_variant == 'main' or config.user_variant == 'moon' then
|
||||
vim.o.background = 'dark'
|
||||
elseif config.user_variant == 'dawn' then
|
||||
vim.o.background = 'light'
|
||||
end
|
||||
|
||||
---@param color string
|
||||
local function get_palette_color(color)
|
||||
if color and not color:find('#') then
|
||||
return palette[config.variant][color:lower()]
|
||||
end
|
||||
|
||||
return color:lower()
|
||||
end
|
||||
|
||||
---@param group string
|
||||
---@param color table<string, string>
|
||||
local function highlight(group, color)
|
||||
local style = color.style and 'gui=' .. color.style or 'gui=NONE'
|
||||
local fg = color.fg and 'guifg=' .. color.fg or 'guifg=NONE'
|
||||
local bg = color.bg and 'guibg=' .. color.bg or 'guibg=NONE'
|
||||
local sp = color.sp and 'guisp=' .. color.sp or ''
|
||||
local fg = color.fg and 'guifg=' .. get_palette_color(color.fg) or 'guifg=NONE'
|
||||
local bg = color.bg and 'guibg=' .. get_palette_color(color.bg) or 'guibg=NONE'
|
||||
local sp = color.sp and 'guisp=' .. get_palette_color(color.sp) or ''
|
||||
|
||||
local hl = 'highlight ' .. group .. ' ' .. style .. ' ' .. fg .. ' ' .. bg .. ' ' .. sp
|
||||
|
||||
|
|
@ -31,15 +152,16 @@ function M.colorscheme()
|
|||
end
|
||||
end
|
||||
|
||||
for group, colors in pairs(require('rose-pine.theme')) do
|
||||
highlight(group, colors)
|
||||
local theme = require('rose-pine.theme').get(config)
|
||||
for group, color in pairs(theme) do
|
||||
highlight(group, color)
|
||||
end
|
||||
|
||||
require('rose-pine.galaxyline.theme')
|
||||
end
|
||||
|
||||
function M.set(variant)
|
||||
vim.g.rose_pine_variant = variant
|
||||
config.variant = variant
|
||||
vim.cmd('colorscheme rose-pine')
|
||||
end
|
||||
|
||||
|
|
@ -52,7 +174,7 @@ function M.toggle(variants)
|
|||
end
|
||||
|
||||
if vim.g.rose_pine_current_variant == nil then
|
||||
vim.g.rose_pine_current_variant = index[vim.g.rose_pine_variant] or 0
|
||||
vim.g.rose_pine_current_variant = index[config.variant] or 0
|
||||
end
|
||||
|
||||
vim.g.rose_pine_current_variant = (vim.g.rose_pine_current_variant % #variants) + 1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
local variants = {
|
||||
local palette = {}
|
||||
|
||||
palette = {
|
||||
main = {
|
||||
base = '#191724',
|
||||
surface = '#1f1d2e',
|
||||
|
|
@ -55,14 +57,6 @@ local variants = {
|
|||
},
|
||||
}
|
||||
|
||||
local palette = variants.main
|
||||
|
||||
if string.match(vim.g.rose_pine_variant or '', 'moon') then
|
||||
palette = variants.moon
|
||||
elseif string.match(vim.g.rose_pine_variant or '', 'dawn') then
|
||||
palette = variants.dawn
|
||||
end
|
||||
|
||||
vim.tbl_deep_extend('force', palette, { none = 'NONE' })
|
||||
|
||||
return palette
|
||||
|
|
|
|||
|
|
@ -1,477 +1,423 @@
|
|||
local palette = require('rose-pine.palette')
|
||||
local config = require('rose-pine.config')
|
||||
local util = require('rose-pine.util')
|
||||
local blend = require('rose-pine.util').blend
|
||||
|
||||
local group = config.colors
|
||||
local M = {}
|
||||
|
||||
local maybe_italic = 'italic'
|
||||
if config.disable_italics == true then
|
||||
maybe_italic = nil
|
||||
function M.get(config)
|
||||
local theme = {}
|
||||
local groups = config.groups
|
||||
local colors = palette[config.variant or 'main']
|
||||
local styles = {
|
||||
italic = (config.disable_italics and 'italic') or 'NONE',
|
||||
vert_split = (config.bold_vert_split and colors.surface) or colors.none,
|
||||
background = (config.disable_background and colors.none) or colors.base,
|
||||
float_background = (config.disable_float_background and colors.none) or colors.surface,
|
||||
inactive_background = (config.dim_nc_background and colors.surface) or colors.base,
|
||||
}
|
||||
|
||||
theme = {
|
||||
ColorColumn = { bg = colors.highlight_high },
|
||||
Conceal = { bg = colors.none },
|
||||
-- Cursor = {},
|
||||
CursorColumn = { bg = colors.overlay },
|
||||
-- CursorIM = {},
|
||||
CursorLine = { bg = colors.overlay },
|
||||
CursorLineNr = { fg = colors.text },
|
||||
DarkenedPanel = { bg = colors.surface },
|
||||
DarkenedStatusline = { bg = colors.surface },
|
||||
DiffAdd = { bg = blend(groups.git.add, colors.base, 0.5) },
|
||||
DiffChange = { bg = colors.overlay },
|
||||
DiffDelete = { bg = blend(groups.git.delete, colors.base, 0.5) },
|
||||
DiffText = { bg = blend(groups.git.text, colors.base, 0.5) },
|
||||
diffAdded = { link = 'DiffAdd' },
|
||||
diffChanged = { link = 'DiffChange' },
|
||||
diffRemoved = { link = 'DiffDelete' },
|
||||
Directory = { fg = colors.foam, bg = colors.none },
|
||||
-- EndOfBuffer = {},
|
||||
ErrorMsg = { fg = colors.love, style = 'bold' },
|
||||
FloatBorder = { fg = groups.border },
|
||||
FoldColumn = { fg = colors.muted },
|
||||
Folded = { fg = colors.text, bg = colors.surface },
|
||||
IncSearch = { fg = colors.base, bg = colors.rose },
|
||||
LineNr = { fg = colors.muted },
|
||||
MatchParen = { fg = colors.text, bg = colors.highlight_med },
|
||||
ModeMsg = { fg = colors.subtle },
|
||||
MoreMsg = { fg = colors.iris },
|
||||
NonText = { fg = colors.muted },
|
||||
Normal = { fg = colors.text, bg = styles.background },
|
||||
NormalFloat = { fg = colors.text, bg = styles.float_background },
|
||||
NormalNC = { fg = colors.text, bg = styles.inactive_background },
|
||||
NvimInternalError = { fg = '#ffffff', bg = colors.love },
|
||||
Pmenu = { fg = colors.subtle, bg = styles.float_background },
|
||||
PmenuSbar = { bg = colors.highlight_low },
|
||||
PmenuSel = { fg = colors.text, bg = colors.overlay },
|
||||
PmenuThumb = { bg = colors.highlight_med },
|
||||
Question = { fg = colors.gold },
|
||||
-- QuickFixLine = {},
|
||||
-- RedrawDebugNormal = {}
|
||||
RedrawDebugClear = { fg = '#ffffff', bg = colors.gold },
|
||||
RedrawDebugComposed = { fg = '#ffffff', bg = colors.pine },
|
||||
RedrawDebugRecompose = { fg = '#ffffff', bg = colors.love },
|
||||
Search = { bg = colors.highlight_med },
|
||||
SpecialKey = { fg = colors.foam },
|
||||
SpellBad = { sp = colors.love, style = 'undercurl' },
|
||||
SpellCap = { sp = colors.subtle, style = 'undercurl' },
|
||||
SpellLocal = { sp = colors.subtle, style = 'undercurl' },
|
||||
SpellRare = { sp = colors.subtle, style = 'undercurl' },
|
||||
SignColumn = { fg = colors.text, bg = styles.background },
|
||||
StatusLine = { fg = colors.subtle, bg = colors.surface },
|
||||
StatusLineNC = { fg = colors.muted, bg = colors.base },
|
||||
StatusLineTerm = { link = 'StatusLine' },
|
||||
StatusLineTermNC = { link = 'StatusLineNC' },
|
||||
TabLine = { fg = colors.subtle, bg = colors.surface },
|
||||
TabLineFill = { bg = colors.surface },
|
||||
TabLineSel = { fg = colors.text, bg = colors.overlay },
|
||||
Title = { fg = colors.text },
|
||||
VertSplit = { fg = colors.overlay, bg = styles.vert_split },
|
||||
Visual = { bg = colors.highlight_med },
|
||||
-- VisualNOS = {},
|
||||
WarningMsg = { fg = colors.gold },
|
||||
-- Whitespace = {},
|
||||
-- WildMenu = {},
|
||||
|
||||
Boolean = { fg = colors.rose },
|
||||
Character = { fg = colors.gold },
|
||||
Comment = { fg = groups.comment, style = styles.italic },
|
||||
Conditional = { fg = colors.pine },
|
||||
Constant = { fg = colors.gold },
|
||||
Debug = { fg = colors.rose },
|
||||
Define = { fg = colors.iris },
|
||||
Delimiter = { fg = colors.subtle },
|
||||
Error = { fg = colors.love },
|
||||
Exception = { fg = colors.pine },
|
||||
Float = { fg = colors.gold },
|
||||
Function = { fg = colors.rose },
|
||||
Identifier = { fg = colors.rose },
|
||||
-- Ignore = {},
|
||||
Include = { fg = colors.iris },
|
||||
Keyword = { fg = colors.pine },
|
||||
Label = { fg = colors.foam },
|
||||
Macro = { fg = colors.iris },
|
||||
Number = { fg = colors.gold },
|
||||
Operator = { fg = colors.subtle },
|
||||
PreCondit = { fg = colors.iris },
|
||||
PreProc = { fg = colors.iris },
|
||||
Repeat = { fg = colors.pine },
|
||||
Special = { fg = colors.rose },
|
||||
SpecialChar = { fg = colors.rose },
|
||||
SpecialComment = { fg = colors.iris },
|
||||
Statement = { fg = colors.pine },
|
||||
StorageClass = { fg = colors.foam },
|
||||
String = { fg = colors.gold },
|
||||
Structure = { fg = colors.foam },
|
||||
Tag = { fg = colors.rose },
|
||||
Todo = { fg = colors.iris },
|
||||
Type = { fg = colors.foam },
|
||||
Typedef = { fg = colors.foam },
|
||||
Underlined = { style = 'underline' },
|
||||
|
||||
htmlArg = { fg = colors.iris },
|
||||
htmlBold = { style = 'bold' },
|
||||
htmlEndTag = { fg = colors.subtle },
|
||||
htmlH1 = { fg = groups.headings.h1, style = 'bold' },
|
||||
htmlH2 = { fg = groups.headings.h2, style = 'bold' },
|
||||
htmlH3 = { fg = groups.headings.h3, style = 'bold' },
|
||||
htmlH4 = { fg = groups.headings.h4, style = 'bold' },
|
||||
htmlH5 = { fg = groups.headings.h5, style = 'bold' },
|
||||
htmlItalic = { style = styles.italic },
|
||||
htmlLink = { fg = groups.link },
|
||||
htmlTag = { fg = colors.subtle },
|
||||
htmlTagN = { fg = colors.text },
|
||||
htmlTagName = { fg = colors.foam },
|
||||
|
||||
markdownDelimiter = { fg = colors.subtle },
|
||||
markdownH1 = { fg = groups.headings.h1, style = 'bold' },
|
||||
markdownH1Delimiter = { link = 'markdownH1' },
|
||||
markdownH2 = { fg = groups.headings.h2, style = 'bold' },
|
||||
markdownH2Delimiter = { link = 'markdownH2' },
|
||||
markdownH3 = { fg = groups.headings.h3, style = 'bold' },
|
||||
markdownH3Delimiter = { link = 'markdownH3' },
|
||||
markdownH4 = { fg = groups.headings.h4, style = 'bold' },
|
||||
markdownH4Delimiter = { link = 'markdownH4' },
|
||||
markdownH5 = { fg = groups.headings.h5, style = 'bold' },
|
||||
markdownH5Delimiter = { link = 'markdownH5' },
|
||||
markdownH6 = { fg = groups.headings.h6, style = 'bold' },
|
||||
markdownH6Delimiter = { link = 'markdownH6' },
|
||||
markdownLinkText = { fg = groups.link, style = 'underline' },
|
||||
markdownUrl = { link = 'markdownLinkText' },
|
||||
|
||||
mkdCode = { fg = colors.foam, style = styles.italic },
|
||||
mkdCodeDelimiter = { fg = colors.rose },
|
||||
mkdCodeEnd = { fg = colors.foam },
|
||||
mkdCodeStart = { fg = colors.foam },
|
||||
mkdFootnotes = { fg = colors.foam },
|
||||
mkdID = { fg = colors.foam, style = 'underline' },
|
||||
mkdInlineURL = { fg = groups.link, style = 'underline' },
|
||||
mkdLink = { link = 'mkdInlineURL' },
|
||||
mkdLinkDef = { link = 'mkdInlineURL' },
|
||||
mkdListItemLine = { fg = colors.text },
|
||||
mkdRule = { fg = colors.subtle },
|
||||
mkdURL = { link = 'mkdInlineURL' },
|
||||
|
||||
DiagnosticError = { fg = groups.error },
|
||||
DiagnosticHint = { fg = groups.hint },
|
||||
DiagnosticInfo = { fg = groups.info },
|
||||
DiagnosticWarn = { fg = groups.warn },
|
||||
DiagnosticDefaultError = { fg = groups.error },
|
||||
DiagnosticDefaultHint = { fg = groups.hint },
|
||||
DiagnosticDefaultInfo = { fg = groups.info },
|
||||
DiagnosticDefaultWarn = { fg = groups.warn },
|
||||
DiagnosticFloatingError = { fg = groups.error },
|
||||
DiagnosticFloatingHint = { fg = groups.hint },
|
||||
DiagnosticFloatingInfo = { fg = groups.info },
|
||||
DiagnosticFloatingWarn = { fg = groups.warn },
|
||||
DiagnosticSignError = { fg = groups.error },
|
||||
DiagnosticSignHint = { fg = groups.hint },
|
||||
DiagnosticSignInfo = { fg = groups.info },
|
||||
DiagnosticSignWarn = { fg = groups.warn },
|
||||
DiagnosticUnderlineError = { sp = groups.error, style = 'undercurl' },
|
||||
DiagnosticUnderlineHint = { sp = groups.hint, style = 'undercurl' },
|
||||
DiagnosticUnderlineInfo = { sp = groups.info, style = 'undercurl' },
|
||||
DiagnosticUnderlineWarn = { sp = groups.warn, style = 'undercurl' },
|
||||
DiagnosticVirtualTextError = { fg = groups.error },
|
||||
DiagnosticVirtualTextHint = { fg = groups.hint },
|
||||
DiagnosticVirtualTextInfo = { fg = groups.info },
|
||||
DiagnosticVirtualTextWarn = { fg = groups.warn },
|
||||
|
||||
-- TSAttribute = {},
|
||||
TSBoolean = { link = 'Boolean' },
|
||||
TSCharacter = { link = 'Character' },
|
||||
TSComment = { link = 'Comment' },
|
||||
TSConditional = { link = 'Conditional' },
|
||||
TSConstBuiltin = { fg = colors.love },
|
||||
-- TSConstMacro = {},
|
||||
TSConstant = { fg = colors.foam },
|
||||
TSConstructor = { fg = colors.foam },
|
||||
-- TSEmphasis = {},
|
||||
-- TSError = {},
|
||||
-- TSException = {},
|
||||
TSField = { fg = colors.foam },
|
||||
-- TSFloat = {},
|
||||
TSFuncBuiltin = { fg = colors.love },
|
||||
-- TSFuncMacro = {},
|
||||
TSFunction = { fg = colors.rose },
|
||||
TSInclude = { fg = colors.pine },
|
||||
TSKeyword = { fg = colors.pine },
|
||||
-- TSKeywordFunction = {},
|
||||
TSKeywordOperator = { fg = colors.subtle },
|
||||
TSLabel = { fg = colors.foam },
|
||||
-- TSLiteral = {},
|
||||
-- TSMethod = {},
|
||||
-- TSNamespace = {},
|
||||
-- TSNone = {},
|
||||
TSNumber = { link = 'Number' },
|
||||
TSOperator = { fg = colors.subtle },
|
||||
TSParameter = { fg = colors.iris, style = styles.italic },
|
||||
-- TSParameterReference = {},
|
||||
TSProperty = { fg = colors.iris, style = styles.italic },
|
||||
TSPunctBracket = { fg = groups.punctuation },
|
||||
TSPunctDelimiter = { fg = groups.punctuation },
|
||||
TSPunctSpecial = { fg = groups.punctuation },
|
||||
-- TSRepeat = {},
|
||||
-- TSStrike = {},
|
||||
TSString = { link = 'String' },
|
||||
TSStringEscape = { fg = colors.pine },
|
||||
-- TSStringRegex = {},
|
||||
TSStringSpecial = { link = 'TSString' },
|
||||
-- TSSymbol = {},
|
||||
TSTag = { fg = colors.foam },
|
||||
TSTagDelimiter = { fg = colors.subtle },
|
||||
TSText = { fg = colors.text },
|
||||
TSTitle = { fg = groups.headings.h1, style = 'bold' },
|
||||
TSType = { link = 'Type' },
|
||||
-- TSTypeBuiltin = {},
|
||||
TSURI = { fg = groups.link },
|
||||
-- TSUnderline = {},
|
||||
TSVariable = { fg = colors.text, style = styles.italic },
|
||||
TSVariableBuiltin = { fg = colors.love },
|
||||
|
||||
-- romgrk/barbar.nvim
|
||||
BufferCurrent = { fg = colors.text, bg = colors.overlay },
|
||||
BufferCurrentIndex = { fg = colors.text, bg = colors.overlay },
|
||||
BufferCurrentMod = { fg = colors.foam, bg = colors.overlay },
|
||||
BufferCurrentSign = { fg = colors.subtle, bg = colors.overlay },
|
||||
BufferCurrentTarget = { fg = colors.gold, bg = colors.overlay },
|
||||
BufferInactive = { fg = colors.subtle },
|
||||
BufferInactiveIndex = { fg = colors.subtle },
|
||||
BufferInactiveMod = { fg = colors.foam },
|
||||
BufferInactiveSign = { fg = colors.muted },
|
||||
BufferInactiveTarget = { fg = colors.gold },
|
||||
BufferTabpageFill = { fg = colors.base, bg = colors.base },
|
||||
BufferVisible = { fg = colors.subtle },
|
||||
BufferVisibleIndex = { fg = colors.subtle },
|
||||
BufferVisibleMod = { fg = colors.foam },
|
||||
BufferVisibleSign = { fg = colors.muted },
|
||||
BufferVisibleTarget = { fg = colors.gold },
|
||||
|
||||
-- lewis6991/gitsigns.nvim
|
||||
GitSignsAdd = { fg = groups.git.add },
|
||||
GitSignsChange = { fg = groups.git.change },
|
||||
GitSignsDelete = { fg = groups.git.delete },
|
||||
SignAdd = { link = 'GitSignsAdd' },
|
||||
SignChange = { link = 'GitSignsChange' },
|
||||
SignDelete = { link = 'GitSignsDelete' },
|
||||
|
||||
-- mvllow/modes.nvim
|
||||
ModesCopy = { bg = colors.gold },
|
||||
ModesDelete = { bg = colors.love },
|
||||
ModesInsert = { bg = colors.foam },
|
||||
ModesVisual = { bg = colors.iris },
|
||||
|
||||
-- kyazdani42/nvim-tree.lua
|
||||
NvimTreeEmptyFolderName = { fg = colors.muted },
|
||||
NvimTreeFileDeleted = { fg = colors.love },
|
||||
NvimTreeFileDirty = { fg = colors.rose },
|
||||
NvimTreeFileMerge = { fg = colors.iris },
|
||||
NvimTreeFileNew = { fg = colors.foam },
|
||||
NvimTreeFileRenamed = { fg = colors.pine },
|
||||
NvimTreeFileStaged = { fg = colors.iris },
|
||||
NvimTreeFolderIcon = { fg = colors.subtle },
|
||||
NvimTreeFolderName = { fg = colors.foam },
|
||||
NvimTreeGitDeleted = { fg = groups.git.delete },
|
||||
NvimTreeGitDirty = { fg = groups.git.dirty },
|
||||
NvimTreeGitIgnored = { fg = groups.git.ignore },
|
||||
NvimTreeGitMerge = { fg = groups.git.merge },
|
||||
NvimTreeGitNew = { fg = groups.git.add },
|
||||
NvimTreeGitRenamed = { fg = groups.git.rename },
|
||||
NvimTreeGitStaged = { fg = groups.git.stage },
|
||||
NvimTreeImageFile = { fg = colors.text },
|
||||
NvimTreeNormal = { fg = colors.text },
|
||||
NvimTreeOpenedFile = { fg = colors.text, bg = colors.highlight_med },
|
||||
NvimTreeOpenedFolderName = { fg = colors.foam },
|
||||
NvimTreeRootFolder = { fg = colors.iris },
|
||||
NvimTreeSpecialFile = { link = 'NvimTreeNormal' },
|
||||
NvimTreeWindowPicker = { fg = colors.base, bg = colors.iris },
|
||||
|
||||
-- folke/which-key.nvim
|
||||
WhichKey = { fg = colors.iris },
|
||||
WhichKeyGroup = { fg = colors.foam },
|
||||
WhichKeySeparator = { fg = colors.subtle },
|
||||
WhichKeyDesc = { fg = colors.gold },
|
||||
WhichKeyFloat = { bg = colors.surface },
|
||||
WhichKeyValue = { fg = colors.rose },
|
||||
|
||||
-- luka-reineke/indent-blankline.nvim
|
||||
IndentBlanklineChar = { fg = colors.muted },
|
||||
|
||||
-- hrsh7th/nvim-cmp
|
||||
CmpItemAbbr = { fg = colors.subtle },
|
||||
CmpItemAbbrDeprecated = { fg = colors.subtle, style = 'strikethrough' },
|
||||
CmpItemAbbrMatch = { fg = colors.text, style = 'bold' },
|
||||
CmpItemAbbrMatchFuzzy = { fg = colors.text, style = 'bold' },
|
||||
CmpItemKind = { fg = colors.iris },
|
||||
CmpItemKindClass = { fg = colors.gold },
|
||||
CmpItemKindFunction = { fg = colors.iris },
|
||||
CmpItemKindInterface = { fg = colors.gold },
|
||||
CmpItemKindMethod = { fg = colors.iris },
|
||||
CmpItemKindSnippet = { fg = colors.iris },
|
||||
CmpItemKindVariable = { fg = colors.foam },
|
||||
|
||||
-- TimUntersberger/neogit
|
||||
NeogitDiffAddHighlight = { fg = colors.foam, bg = colors.highlight_med },
|
||||
NeogitDiffContextHighlight = { bg = colors.highlight_low },
|
||||
NeogitDiffDeleteHighlight = { fg = colors.love, bg = colors.highlight_med },
|
||||
NeogitHunkHeader = { bg = colors.highlight_low },
|
||||
NeogitHunkHeaderHighlight = { bg = colors.highlight_low },
|
||||
|
||||
-- vimwiki/vimwiki
|
||||
VimwikiHR = { fg = colors.subtle },
|
||||
VimwikiHeader1 = { fg = groups.headings.h1, style = 'bold' },
|
||||
VimwikiHeader2 = { fg = groups.headings.h2, style = 'bold' },
|
||||
VimwikiHeader3 = { fg = groups.headings.h3, style = 'bold' },
|
||||
VimwikiHeader4 = { fg = groups.headings.h4, style = 'bold' },
|
||||
VimwikiHeader5 = { fg = groups.headings.h5, style = 'bold' },
|
||||
VimwikiHeader6 = { fg = groups.headings.h6, style = 'bold' },
|
||||
VimwikiHeaderChar = { fg = colors.pine },
|
||||
VimwikiLink = { fg = groups.link, style = 'underline' },
|
||||
VimwikiList = { fg = colors.iris },
|
||||
VimwikiNoExistsLink = { fg = colors.love },
|
||||
|
||||
-- nvim-neorg/neorg
|
||||
NeorgHeading1Prefix = { fg = groups.headings.h1, style = 'bold' },
|
||||
NeorgHeading1Title = { link = 'NeorgHeading1Prefix' },
|
||||
NeorgHeading2Prefix = { fg = groups.headings.h2, style = 'bold' },
|
||||
NeorgHeading2Title = { link = 'NeorgHeading2Prefix' },
|
||||
NeorgHeading3Prefix = { fg = groups.headings.h3, style = 'bold' },
|
||||
NeorgHeading3Title = { link = 'NeorgHeading3Prefix' },
|
||||
NeorgHeading4Prefix = { fg = groups.headings.h4, style = 'bold' },
|
||||
NeorgHeading4Title = { link = 'NeorgHeading4Prefix' },
|
||||
NeorgHeading5Prefix = { fg = groups.headings.h5, style = 'bold' },
|
||||
NeorgHeading5Title = { link = 'NeorgHeading5Prefix' },
|
||||
NeorgHeading6Prefix = { fg = groups.headings.h6, style = 'bold' },
|
||||
NeorgHeading6Title = { link = 'NeorgHeading6Prefix' },
|
||||
NeorgMarkerTitle = { fg = colors.text, style = 'bold' },
|
||||
|
||||
-- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim)
|
||||
DefinitionCount = { fg = colors.rose },
|
||||
DefinitionIcon = { fg = colors.rose },
|
||||
DefintionPreviewTitle = { fg = colors.rose, style = 'bold' },
|
||||
LspFloatWinBorder = { fg = groups.border },
|
||||
LspFloatWinNormal = { bg = colors.base },
|
||||
LspSagaAutoPreview = { fg = colors.subtle },
|
||||
LspSagaCodeActionBorder = { fg = groups.border },
|
||||
LspSagaCodeActionContent = { fg = colors.foam },
|
||||
LspSagaCodeActionTitle = { fg = colors.gold, style = 'bold' },
|
||||
LspSagaCodeActionTruncateLine = { link = 'LspSagaCodeActionBorder' },
|
||||
LspSagaDefPreviewBorder = { fg = groups.border },
|
||||
LspSagaDiagnosticBorder = { fg = groups.border },
|
||||
LspSagaDiagnosticHeader = { fg = colors.gold, style = 'bold' },
|
||||
LspSagaDiagnosticTruncateLine = { link = 'LspSagaDiagnosticBorder' },
|
||||
LspSagaDocTruncateLine = { link = 'LspSagaHoverBorder' },
|
||||
LspSagaFinderSelection = { fg = colors.gold },
|
||||
LspSagaHoverBorder = { fg = groups.border },
|
||||
LspSagaLspFinderBorder = { fg = groups.border },
|
||||
LspSagaRenameBorder = { fg = colors.pine },
|
||||
LspSagaRenamePromptPrefix = { fg = colors.love },
|
||||
LspSagaShTruncateLine = { link = 'LspSagaSignatureHelpBorder' },
|
||||
LspSagaSignatureHelpBorder = { fg = colors.pine },
|
||||
ReferencesCount = { fg = colors.rose },
|
||||
ReferencesIcon = { fg = colors.rose },
|
||||
SagaShadow = { bg = colors.overlay },
|
||||
TargetWord = { fg = colors.iris },
|
||||
|
||||
-- ray-x/lsp_signature.nvim
|
||||
LspSignatureActiveParameter = { bg = colors.overlay },
|
||||
|
||||
-- rlane/pounce.nvim
|
||||
PounceAccept = { fg = colors.love, bg = colors.highlight_high },
|
||||
PounceAcceptBest = { fg = colors.base, bg = colors.gold },
|
||||
PounceGap = { link = 'Search' },
|
||||
PounceMatch = { link = 'Search' },
|
||||
|
||||
-- nvim-telescope/telescope.nvim
|
||||
TelescopeBorder = { fg = groups.border },
|
||||
TelescopeMatching = { fg = colors.rose },
|
||||
TelescopeNormal = { fg = colors.subtle },
|
||||
TelescopePromptNormal = { fg = colors.text },
|
||||
TelescopePromptPrefix = { fg = colors.subtle },
|
||||
TelescopeSelection = { fg = colors.text, bg = colors.overlay },
|
||||
TelescopeSelectionCaret = { fg = colors.rose, bg = colors.overlay },
|
||||
TelescopeTitle = { fg = colors.subtle },
|
||||
}
|
||||
|
||||
vim.g.terminal_color_0 = colors.overlay -- black
|
||||
vim.g.terminal_color_8 = colors.subtle -- bright black
|
||||
vim.g.terminal_color_1 = colors.love -- red
|
||||
vim.g.terminal_color_9 = colors.love -- bright red
|
||||
vim.g.terminal_color_2 = colors.pine -- green
|
||||
vim.g.terminal_color_10 = colors.pine -- bright green
|
||||
vim.g.terminal_color_3 = colors.gold -- yellow
|
||||
vim.g.terminal_color_11 = colors.gold -- bright yellow
|
||||
vim.g.terminal_color_4 = colors.foam -- blue
|
||||
vim.g.terminal_color_12 = colors.foam -- bright blue
|
||||
vim.g.terminal_color_5 = colors.iris -- magenta
|
||||
vim.g.terminal_color_13 = colors.iris -- bright magenta
|
||||
vim.g.terminal_color_6 = colors.rose -- cyan
|
||||
vim.g.terminal_color_14 = colors.rose -- bright cyan
|
||||
vim.g.terminal_color_7 = colors.text -- white
|
||||
vim.g.terminal_color_15 = colors.text -- bright white
|
||||
|
||||
return theme
|
||||
end
|
||||
|
||||
local background = palette.base
|
||||
if config.disable_background then
|
||||
background = palette.none
|
||||
end
|
||||
|
||||
local float_background = palette.surface
|
||||
if config.disable_float_background then
|
||||
float_background = palette.none
|
||||
end
|
||||
|
||||
local inactive_background = palette.none
|
||||
if config.inactive_background then
|
||||
inactive_background = util.blend('#000000', palette.base, palette.opacity)
|
||||
end
|
||||
|
||||
local vert_split_background = palette.none
|
||||
if config.bold_vertical_split_line then
|
||||
vert_split_background = palette.overlay
|
||||
end
|
||||
|
||||
local theme = {
|
||||
ColorColumn = { bg = palette.highlight_high },
|
||||
Conceal = { bg = palette.none },
|
||||
-- Cursor = {},
|
||||
CursorColumn = { bg = palette.highlight_low },
|
||||
-- CursorIM = {},
|
||||
CursorLine = { bg = palette.highlight_low },
|
||||
CursorLineNr = { fg = palette.text },
|
||||
DarkenedPanel = { bg = palette.surface },
|
||||
DarkenedStatusline = { bg = palette.surface },
|
||||
DiffAdd = { bg = util.blend(group.git_add, palette.base, 0.5) },
|
||||
DiffChange = { bg = palette.overlay },
|
||||
DiffDelete = { bg = util.blend(group.git_delete, palette.base, 0.5) },
|
||||
DiffText = { bg = util.blend(group.git_text, palette.base, 0.5) },
|
||||
diffAdded = { link = 'DiffAdd' },
|
||||
diffChanged = { link = 'DiffChange' },
|
||||
diffRemoved = { link = 'DiffDelete' },
|
||||
Directory = { fg = palette.foam, bg = palette.none },
|
||||
-- EndOfBuffer = {},
|
||||
ErrorMsg = { fg = palette.love, style = 'bold' },
|
||||
FloatBorder = { fg = group.border },
|
||||
FoldColumn = { fg = palette.muted },
|
||||
Folded = { fg = palette.text, bg = palette.surface },
|
||||
IncSearch = { fg = palette.base, bg = palette.rose },
|
||||
LineNr = { fg = palette.muted },
|
||||
MatchParen = { fg = palette.text, bg = palette.highlight_med },
|
||||
ModeMsg = { fg = palette.subtle },
|
||||
MoreMsg = { fg = palette.iris },
|
||||
NonText = { fg = palette.muted },
|
||||
Normal = { fg = palette.text, bg = background },
|
||||
NormalFloat = { fg = palette.text, bg = float_background },
|
||||
NormalNC = { fg = palette.text, bg = inactive_background },
|
||||
NvimInternalError = { fg = '#ffffff', bg = palette.love },
|
||||
Pmenu = { fg = palette.subtle, bg = float_background },
|
||||
PmenuSbar = { bg = palette.highlight_low },
|
||||
PmenuSel = { fg = palette.text, bg = palette.overlay },
|
||||
PmenuThumb = { bg = palette.highlight_med },
|
||||
Question = { fg = palette.gold },
|
||||
-- QuickFixLine = {},
|
||||
-- RedrawDebugNormal = {}
|
||||
RedrawDebugClear = { fg = '#ffffff', bg = palette.gold },
|
||||
RedrawDebugComposed = { fg = '#ffffff', bg = palette.pine },
|
||||
RedrawDebugRecompose = { fg = '#ffffff', bg = palette.love },
|
||||
Search = { bg = palette.highlight_med },
|
||||
SpecialKey = { fg = palette.foam },
|
||||
SpellBad = { sp = palette.love, style = 'undercurl' },
|
||||
SpellCap = { sp = palette.subtle, style = 'undercurl' },
|
||||
SpellLocal = { sp = palette.subtle, style = 'undercurl' },
|
||||
SpellRare = { sp = palette.subtle, style = 'undercurl' },
|
||||
SignColumn = { fg = palette.text, bg = background },
|
||||
StatusLine = { fg = palette.subtle, bg = palette.surface },
|
||||
StatusLineNC = { fg = palette.muted, bg = palette.base },
|
||||
StatusLineTerm = { link = 'StatusLine' },
|
||||
StatusLineTermNC = { link = 'StatusLineNC' },
|
||||
TabLine = { fg = palette.subtle, bg = palette.surface },
|
||||
TabLineFill = { bg = palette.surface },
|
||||
TabLineSel = { fg = palette.text, bg = palette.overlay },
|
||||
Title = { fg = palette.text },
|
||||
VertSplit = { fg = palette.overlay, bg = vert_split_background },
|
||||
Visual = { bg = palette.highlight_med },
|
||||
-- VisualNOS = {},
|
||||
WarningMsg = { fg = palette.gold },
|
||||
-- Whitespace = {},
|
||||
-- WildMenu = {},
|
||||
|
||||
Boolean = { fg = palette.rose },
|
||||
Character = { fg = palette.gold },
|
||||
Comment = { fg = group.comment, style = maybe_italic },
|
||||
Conditional = { fg = palette.pine },
|
||||
Constant = { fg = palette.gold },
|
||||
Debug = { fg = palette.rose },
|
||||
Define = { fg = palette.iris },
|
||||
Delimiter = { fg = palette.subtle },
|
||||
Error = { fg = palette.love },
|
||||
Exception = { fg = palette.pine },
|
||||
Float = { fg = palette.gold },
|
||||
Function = { fg = palette.rose },
|
||||
Identifier = { fg = palette.rose },
|
||||
-- Ignore = {},
|
||||
Include = { fg = palette.iris },
|
||||
Keyword = { fg = palette.pine },
|
||||
Label = { fg = palette.foam },
|
||||
Macro = { fg = palette.iris },
|
||||
Number = { fg = palette.gold },
|
||||
Operator = { fg = palette.subtle },
|
||||
PreCondit = { fg = palette.iris },
|
||||
PreProc = { fg = palette.iris },
|
||||
Repeat = { fg = palette.pine },
|
||||
Special = { fg = palette.rose },
|
||||
SpecialChar = { fg = palette.rose },
|
||||
SpecialComment = { fg = palette.iris },
|
||||
Statement = { fg = palette.pine },
|
||||
StorageClass = { fg = palette.foam },
|
||||
String = { fg = palette.gold },
|
||||
Structure = { fg = palette.foam },
|
||||
Tag = { fg = palette.rose },
|
||||
Todo = { fg = palette.iris },
|
||||
Type = { fg = palette.foam },
|
||||
Typedef = { fg = palette.foam },
|
||||
Underlined = { style = 'underline' },
|
||||
|
||||
htmlArg = { fg = palette.iris },
|
||||
htmlBold = { style = 'bold' },
|
||||
htmlEndTag = { fg = palette.subtle },
|
||||
htmlH1 = { fg = group.headings.h1, style = 'bold' },
|
||||
htmlH2 = { fg = group.headings.h2, style = 'bold' },
|
||||
htmlH3 = { fg = group.headings.h3, style = 'bold' },
|
||||
htmlH4 = { fg = group.headings.h4, style = 'bold' },
|
||||
htmlH5 = { fg = group.headings.h5, style = 'bold' },
|
||||
htmlItalic = { style = maybe_italic },
|
||||
htmlLink = { fg = group.link },
|
||||
htmlTag = { fg = palette.subtle },
|
||||
htmlTagN = { fg = palette.text },
|
||||
htmlTagName = { fg = palette.foam },
|
||||
|
||||
markdownDelimiter = { fg = palette.subtle },
|
||||
markdownH1 = { fg = group.headings.h1, style = 'bold' },
|
||||
markdownH1Delimiter = { link = 'markdownH1' },
|
||||
markdownH2 = { fg = group.headings.h2, style = 'bold' },
|
||||
markdownH2Delimiter = { link = 'markdownH2' },
|
||||
markdownH3 = { fg = group.headings.h3, style = 'bold' },
|
||||
markdownH3Delimiter = { link = 'markdownH3' },
|
||||
markdownH4 = { fg = group.headings.h4, style = 'bold' },
|
||||
markdownH4Delimiter = { link = 'markdownH4' },
|
||||
markdownH5 = { fg = group.headings.h5, style = 'bold' },
|
||||
markdownH5Delimiter = { link = 'markdownH5' },
|
||||
markdownH6 = { fg = group.headings.h6, style = 'bold' },
|
||||
markdownH6Delimiter = { link = 'markdownH6' },
|
||||
markdownLinkText = { fg = group.link, style = 'underline' },
|
||||
markdownUrl = { link = 'markdownLinkText' },
|
||||
|
||||
mkdCode = { fg = palette.foam, style = maybe_italic },
|
||||
mkdCodeDelimiter = { fg = palette.rose },
|
||||
mkdCodeEnd = { fg = palette.foam },
|
||||
mkdCodeStart = { fg = palette.foam },
|
||||
mkdFootnotes = { fg = palette.foam },
|
||||
mkdID = { fg = palette.foam, style = 'underline' },
|
||||
mkdInlineURL = { fg = group.link, style = 'underline' },
|
||||
mkdLink = { link = 'mkdInlineURL' },
|
||||
mkdLinkDef = { link = 'mkdInlineURL' },
|
||||
mkdListItemLine = { fg = palette.text },
|
||||
mkdRule = { fg = palette.subtle },
|
||||
mkdURL = { link = 'mkdInlineURL' },
|
||||
|
||||
DiagnosticError = { fg = group.error },
|
||||
DiagnosticHint = { fg = group.hint },
|
||||
DiagnosticInfo = { fg = group.info },
|
||||
DiagnosticWarn = { fg = group.warn },
|
||||
DiagnosticDefaultError = { fg = group.error },
|
||||
DiagnosticDefaultHint = { fg = group.hint },
|
||||
DiagnosticDefaultInfo = { fg = group.info },
|
||||
DiagnosticDefaultWarn = { fg = group.warn },
|
||||
DiagnosticFloatingError = { fg = group.error },
|
||||
DiagnosticFloatingHint = { fg = group.hint },
|
||||
DiagnosticFloatingInfo = { fg = group.info },
|
||||
DiagnosticFloatingWarn = { fg = group.warn },
|
||||
DiagnosticSignError = { fg = group.error },
|
||||
DiagnosticSignHint = { fg = group.hint },
|
||||
DiagnosticSignInfo = { fg = group.info },
|
||||
DiagnosticSignWarn = { fg = group.warn },
|
||||
DiagnosticUnderlineError = { sp = group.error, style = 'undercurl' },
|
||||
DiagnosticUnderlineHint = { sp = group.hint, style = 'undercurl' },
|
||||
DiagnosticUnderlineInfo = { sp = group.info, style = 'undercurl' },
|
||||
DiagnosticUnderlineWarn = { sp = group.warn, style = 'undercurl' },
|
||||
DiagnosticVirtualTextError = { fg = group.error },
|
||||
DiagnosticVirtualTextHint = { fg = group.hint },
|
||||
DiagnosticVirtualTextInfo = { fg = group.info },
|
||||
DiagnosticVirtualTextWarn = { fg = group.warn },
|
||||
|
||||
LspReferenceText = { fg = palette.rose, bg = palette.highlight_med },
|
||||
LspReferenceRead = { fg = palette.rose, bg = palette.highlight_med },
|
||||
LspReferenceWrite = { fg = palette.rose, bg = palette.highlight_med },
|
||||
|
||||
-- TODO: Deprecate in favour of 0.6.0 groups
|
||||
LspDiagnosticsSignWarning = { link = 'DiagnosticSignWarn' },
|
||||
LspDiagnosticsDefaultWarning = { link = 'DiagnosticDefaultWarn' },
|
||||
LspDiagnosticsFloatingWarning = { link = 'DiagnosticFloatingWarn' },
|
||||
LspDiagnosticsVirtualTextWarning = { link = 'DiagnosticVirtualTextWarn' },
|
||||
LspDiagnosticsUnderlineWarning = { link = 'DiagnosticUnderlineWarn' },
|
||||
LspDiagnosticsSignHint = { link = 'DiagnosticSignHint' },
|
||||
LspDiagnosticsDefaultHint = { link = 'DiagnosticDefaultHint' },
|
||||
LspDiagnosticsVirtualTextHint = { link = 'DiagnosticFloatingHint' },
|
||||
LspDiagnosticsFloatingHint = { link = 'DiagnosticVirtualTextHint' },
|
||||
LspDiagnosticsUnderlineHint = { link = 'DiagnosticUnderlineHint' },
|
||||
LspDiagnosticsSignError = { link = 'DiagnosticSignError' },
|
||||
LspDiagnosticsDefaultError = { link = 'DiagnosticDefaultError' },
|
||||
LspDiagnosticsFloatingError = { link = 'DiagnosticFloatingError' },
|
||||
LspDiagnosticsVirtualTextError = { link = 'DiagnosticVirtualTextError' },
|
||||
LspDiagnosticsUnderlineError = { link = 'DiagnosticUnderlineError' },
|
||||
LspDiagnosticsSignInformation = { link = 'DiagnosticSignInfo' },
|
||||
LspDiagnosticsDefaultInformation = { link = 'DiagnosticDefaultInfo' },
|
||||
LspDiagnosticsFloatingInformation = { link = 'DiagnosticFloatingInfo' },
|
||||
LspDiagnosticsVirtualTextInformation = { link = 'DiagnosticVirtualTextInfo' },
|
||||
LspDiagnosticsUnderlineInformation = { link = 'DiagnosticUnderlineInfo' },
|
||||
|
||||
-- TSAttribute = {},
|
||||
TSBoolean = { link = 'Boolean' },
|
||||
TSCharacter = { link = 'Character' },
|
||||
TSComment = { link = 'Comment' },
|
||||
TSConditional = { link = 'Conditional' },
|
||||
TSConstBuiltin = { fg = palette.love },
|
||||
-- TSConstMacro = {},
|
||||
TSConstant = { fg = palette.foam },
|
||||
TSConstructor = { fg = palette.foam },
|
||||
-- TSEmphasis = {},
|
||||
-- TSError = {},
|
||||
-- TSException = {},
|
||||
TSField = { fg = palette.foam },
|
||||
-- TSFloat = {},
|
||||
TSFuncBuiltin = { fg = palette.love },
|
||||
-- TSFuncMacro = {},
|
||||
TSFunction = { fg = palette.rose },
|
||||
TSInclude = { fg = palette.pine },
|
||||
TSKeyword = { fg = palette.pine },
|
||||
-- TSKeywordFunction = {},
|
||||
TSKeywordOperator = { fg = palette.subtle },
|
||||
TSLabel = { fg = palette.foam },
|
||||
-- TSLiteral = {},
|
||||
-- TSMethod = {},
|
||||
-- TSNamespace = {},
|
||||
-- TSNone = {},
|
||||
TSNumber = { link = 'Number' },
|
||||
TSOperator = { fg = palette.subtle },
|
||||
TSParameter = { fg = palette.iris, style = maybe_italic },
|
||||
-- TSParameterReference = {},
|
||||
TSProperty = { fg = palette.iris, style = maybe_italic },
|
||||
TSPunctBracket = { fg = group.punctuation },
|
||||
TSPunctDelimiter = { fg = group.punctuation },
|
||||
TSPunctSpecial = { fg = group.punctuation },
|
||||
-- TSRepeat = {},
|
||||
-- TSStrike = {},
|
||||
TSString = { link = 'String' },
|
||||
TSStringEscape = { fg = palette.pine },
|
||||
-- TSStringRegex = {},
|
||||
TSStringSpecial = { link = 'TSString' },
|
||||
-- TSSymbol = {},
|
||||
TSTag = { fg = palette.foam },
|
||||
TSTagDelimiter = { fg = palette.subtle },
|
||||
TSText = { fg = palette.text },
|
||||
TSTitle = { fg = group.headings.h1, style = 'bold' },
|
||||
TSType = { link = 'Type' },
|
||||
-- TSTypeBuiltin = {},
|
||||
TSURI = { fg = group.link },
|
||||
-- TSUnderline = {},
|
||||
TSVariable = { fg = palette.text, style = maybe_italic },
|
||||
TSVariableBuiltin = { fg = palette.love },
|
||||
|
||||
-- romgrk/barbar.nvim
|
||||
BufferCurrent = { fg = palette.text, bg = palette.overlay },
|
||||
BufferCurrentIndex = { fg = palette.text, bg = palette.overlay },
|
||||
BufferCurrentMod = { fg = palette.foam, bg = palette.overlay },
|
||||
BufferCurrentSign = { fg = palette.subtle, bg = palette.overlay },
|
||||
BufferCurrentTarget = { fg = palette.gold, bg = palette.overlay },
|
||||
BufferInactive = { fg = palette.subtle },
|
||||
BufferInactiveIndex = { fg = palette.subtle },
|
||||
BufferInactiveMod = { fg = palette.foam },
|
||||
BufferInactiveSign = { fg = palette.muted },
|
||||
BufferInactiveTarget = { fg = palette.gold },
|
||||
BufferTabpageFill = { fg = palette.base, bg = palette.base },
|
||||
BufferVisible = { fg = palette.subtle },
|
||||
BufferVisibleIndex = { fg = palette.subtle },
|
||||
BufferVisibleMod = { fg = palette.foam },
|
||||
BufferVisibleSign = { fg = palette.muted },
|
||||
BufferVisibleTarget = { fg = palette.gold },
|
||||
|
||||
-- lewis6991/gitsigns.nvim
|
||||
GitSignsAdd = { fg = group.git_add },
|
||||
GitSignsChange = { fg = group.git_change },
|
||||
GitSignsDelete = { fg = group.git_delete },
|
||||
SignAdd = { link = 'GitSignsAdd' },
|
||||
SignChange = { link = 'GitSignsChange' },
|
||||
SignDelete = { link = 'GitSignsDelete' },
|
||||
|
||||
-- mvllow/modes.nvim
|
||||
ModesCopy = { bg = palette.gold },
|
||||
ModesDelete = { bg = palette.love },
|
||||
ModesInsert = { bg = palette.foam },
|
||||
ModesVisual = { bg = palette.iris },
|
||||
|
||||
-- kyazdani42/nvim-tree.lua
|
||||
NvimTreeEmptyFolderName = { fg = palette.muted },
|
||||
NvimTreeFileDeleted = { fg = palette.love },
|
||||
NvimTreeFileDirty = { fg = palette.rose },
|
||||
NvimTreeFileMerge = { fg = palette.iris },
|
||||
NvimTreeFileNew = { fg = palette.foam },
|
||||
NvimTreeFileRenamed = { fg = palette.pine },
|
||||
NvimTreeFileStaged = { fg = palette.iris },
|
||||
NvimTreeFolderIcon = { fg = palette.subtle },
|
||||
NvimTreeFolderName = { fg = palette.foam },
|
||||
NvimTreeGitDeleted = { fg = group.git_delete },
|
||||
NvimTreeGitDirty = { fg = group.git_dirty },
|
||||
NvimTreeGitIgnored = { fg = group.git_ignore },
|
||||
NvimTreeGitMerge = { fg = group.git_merge },
|
||||
NvimTreeGitNew = { fg = group.git_add },
|
||||
NvimTreeGitRenamed = { fg = group.git_rename },
|
||||
NvimTreeGitStaged = { fg = group.git_stage },
|
||||
NvimTreeImageFile = { fg = palette.text },
|
||||
NvimTreeNormal = { fg = palette.text },
|
||||
NvimTreeOpenedFile = { fg = palette.text, bg = palette.highlight_med },
|
||||
NvimTreeOpenedFolderName = { fg = palette.foam },
|
||||
NvimTreeRootFolder = { fg = palette.iris },
|
||||
NvimTreeSpecialFile = { link = 'NvimTreeNormal' },
|
||||
NvimTreeWindowPicker = { fg = palette.base, bg = palette.iris },
|
||||
|
||||
-- folke/which-key.nvim
|
||||
WhichKey = { fg = palette.iris },
|
||||
WhichKeyGroup = { fg = palette.foam },
|
||||
WhichKeySeparator = { fg = palette.subtle },
|
||||
WhichKeyDesc = { fg = palette.gold },
|
||||
WhichKeyFloat = { bg = palette.surface },
|
||||
WhichKeyValue = { fg = palette.rose },
|
||||
|
||||
-- luka-reineke/indent-blankline.nvim
|
||||
IndentBlanklineChar = { fg = palette.muted },
|
||||
|
||||
-- hrsh7th/nvim-cmp
|
||||
CmpItemAbbr = { fg = palette.subtle },
|
||||
CmpItemAbbrDeprecated = { fg = palette.subtle, style = 'strikethrough' },
|
||||
CmpItemAbbrMatch = { fg = palette.text, style = 'bold' },
|
||||
CmpItemAbbrMatchFuzzy = { fg = palette.text, style = 'bold' },
|
||||
CmpItemKind = { fg = palette.iris },
|
||||
CmpItemKindClass = { fg = palette.gold },
|
||||
CmpItemKindFunction = { fg = palette.iris },
|
||||
CmpItemKindInterface = { fg = palette.gold },
|
||||
CmpItemKindMethod = { fg = palette.iris },
|
||||
CmpItemKindSnippet = { fg = palette.iris },
|
||||
CmpItemKindVariable = { fg = palette.foam },
|
||||
|
||||
-- TimUntersberger/neogit
|
||||
NeogitDiffAddHighlight = { fg = palette.foam, bg = palette.highlight_med },
|
||||
NeogitDiffContextHighlight = { bg = palette.highlight_low },
|
||||
NeogitDiffDeleteHighlight = { fg = palette.love, bg = palette.highlight_med },
|
||||
NeogitHunkHeader = { bg = palette.highlight_low },
|
||||
NeogitHunkHeaderHighlight = { bg = palette.highlight_low },
|
||||
|
||||
-- vimwiki/vimwiki
|
||||
VimwikiHR = { fg = palette.subtle },
|
||||
VimwikiHeader1 = { fg = group.headings.h1, style = 'bold' },
|
||||
VimwikiHeader2 = { fg = group.headings.h2, style = 'bold' },
|
||||
VimwikiHeader3 = { fg = group.headings.h3, style = 'bold' },
|
||||
VimwikiHeader4 = { fg = group.headings.h4, style = 'bold' },
|
||||
VimwikiHeader5 = { fg = group.headings.h5, style = 'bold' },
|
||||
VimwikiHeader6 = { fg = group.headings.h6, style = 'bold' },
|
||||
VimwikiHeaderChar = { fg = palette.pine },
|
||||
VimwikiLink = { fg = group.link, style = 'underline' },
|
||||
VimwikiList = { fg = palette.iris },
|
||||
VimwikiNoExistsLink = { fg = palette.love },
|
||||
|
||||
-- nvim-neorg/neorg
|
||||
NeorgHeading1Prefix = { fg = group.headings.h1, style = 'bold' },
|
||||
NeorgHeading1Title = { link = 'NeorgHeading1Prefix' },
|
||||
NeorgHeading2Prefix = { fg = group.headings.h2, style = 'bold' },
|
||||
NeorgHeading2Title = { link = 'NeorgHeading2Prefix' },
|
||||
NeorgHeading3Prefix = { fg = group.headings.h3, style = 'bold' },
|
||||
NeorgHeading3Title = { link = 'NeorgHeading3Prefix' },
|
||||
NeorgHeading4Prefix = { fg = group.headings.h4, style = 'bold' },
|
||||
NeorgHeading4Title = { link = 'NeorgHeading4Prefix' },
|
||||
NeorgHeading5Prefix = { fg = group.headings.h5, style = 'bold' },
|
||||
NeorgHeading5Title = { link = 'NeorgHeading5Prefix' },
|
||||
NeorgHeading6Prefix = { fg = group.headings.h6, style = 'bold' },
|
||||
NeorgHeading6Title = { link = 'NeorgHeading6Prefix' },
|
||||
NeorgMarkerTitle = { fg = palette.text, style = 'bold' },
|
||||
|
||||
-- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim)
|
||||
DefinitionCount = { fg = palette.rose },
|
||||
DefinitionIcon = { fg = palette.rose },
|
||||
DefintionPreviewTitle = { fg = palette.rose, style = 'bold' },
|
||||
LspFloatWinBorder = { fg = group.border },
|
||||
LspFloatWinNormal = { bg = palette.base },
|
||||
LspSagaAutoPreview = { fg = palette.subtle },
|
||||
LspSagaCodeActionBorder = { fg = group.border },
|
||||
LspSagaCodeActionContent = { fg = palette.foam },
|
||||
LspSagaCodeActionTitle = { fg = palette.gold, style = 'bold' },
|
||||
LspSagaCodeActionTruncateLine = { link = 'LspSagaCodeActionBorder' },
|
||||
LspSagaDefPreviewBorder = { fg = group.border },
|
||||
LspSagaDiagnosticBorder = { fg = group.border },
|
||||
LspSagaDiagnosticHeader = { fg = palette.gold, style = 'bold' },
|
||||
LspSagaDiagnosticTruncateLine = { link = 'LspSagaDiagnosticBorder' },
|
||||
LspSagaDocTruncateLine = { link = 'LspSagaHoverBorder' },
|
||||
LspSagaFinderSelection = { fg = palette.gold },
|
||||
LspSagaHoverBorder = { fg = group.border },
|
||||
LspSagaLspFinderBorder = { fg = group.border },
|
||||
LspSagaRenameBorder = { fg = palette.pine },
|
||||
LspSagaRenamePromptPrefix = { fg = palette.love },
|
||||
LspSagaShTruncateLine = { link = 'LspSagaSignatureHelpBorder' },
|
||||
LspSagaSignatureHelpBorder = { fg = palette.pine },
|
||||
ReferencesCount = { fg = palette.rose },
|
||||
ReferencesIcon = { fg = palette.rose },
|
||||
SagaShadow = { bg = palette.overlay },
|
||||
TargetWord = { fg = palette.iris },
|
||||
|
||||
-- ray-x/lsp_signature.nvim
|
||||
LspSignatureActiveParameter = { bg = palette.overlay },
|
||||
|
||||
-- rlane/pounce.nvim
|
||||
PounceAccept = { fg = palette.love, bg = palette.highlight_high },
|
||||
PounceAcceptBest = { fg = palette.base, bg = palette.gold },
|
||||
PounceGap = { link = 'Search' },
|
||||
PounceMatch = { link = 'Search' },
|
||||
|
||||
-- nvim-telescope/telescope.nvim
|
||||
TelescopeBorder = { fg = group.border },
|
||||
TelescopeMatching = { fg = palette.rose },
|
||||
TelescopeNormal = { fg = palette.subtle },
|
||||
TelescopePromptNormal = { fg = palette.text },
|
||||
TelescopePromptPrefix = { fg = palette.subtle },
|
||||
TelescopeSelection = { fg = palette.text, bg = palette.overlay },
|
||||
TelescopeSelectionCaret = { fg = palette.rose, bg = palette.overlay },
|
||||
TelescopeTitle = { fg = palette.subtle },
|
||||
|
||||
-- rcarriga/nvim-notify
|
||||
NotifyINFOBorder = { fg = palette.foam },
|
||||
NotifyINFOTitle = { link = 'NotifyINFOBorder' },
|
||||
NotifyINFOIcon = { link = 'NotifyINFOBorder' },
|
||||
NotifyWARNBorder = { fg = palette.gold },
|
||||
NotifyWARNTitle = { link = 'NotifyWARNBorder' },
|
||||
NotifyWARNIcon = { link = 'NotifyWARNBorder' },
|
||||
NotifyDEBUGBorder = { fg = palette.muted },
|
||||
NotifyDEBUGTitle = { link = 'NotifyDEBUGBorder' },
|
||||
NotifyDEBUGIcon = { link = 'NotifyDEBUGBorder' },
|
||||
NotifyTRACEBorder = { fg = palette.iris },
|
||||
NotifyTRACETitle = { link = 'NotifyTRACEBorder' },
|
||||
NotifyTRACEIcon = { link = 'NotifyTRACEBorder' },
|
||||
NotifyERRORBorder = { fg = palette.love },
|
||||
NotifyERRORTitle = { link = 'NotifyERRORBorder' },
|
||||
NotifyERRORIcon = { link = 'NotifyERRORBorder' },
|
||||
}
|
||||
|
||||
vim.g.terminal_color_0 = palette.overlay -- black
|
||||
vim.g.terminal_color_8 = palette.subtle -- bright black
|
||||
vim.g.terminal_color_1 = palette.love -- red
|
||||
vim.g.terminal_color_9 = palette.love -- bright red
|
||||
vim.g.terminal_color_2 = palette.pine -- green
|
||||
vim.g.terminal_color_10 = palette.pine -- bright green
|
||||
vim.g.terminal_color_3 = palette.gold -- yellow
|
||||
vim.g.terminal_color_11 = palette.gold -- bright yellow
|
||||
vim.g.terminal_color_4 = palette.foam -- blue
|
||||
vim.g.terminal_color_12 = palette.foam -- bright blue
|
||||
vim.g.terminal_color_5 = palette.iris -- magenta
|
||||
vim.g.terminal_color_13 = palette.iris -- bright magenta
|
||||
vim.g.terminal_color_6 = palette.rose -- cyan
|
||||
vim.g.terminal_color_14 = palette.rose -- bright cyan
|
||||
vim.g.terminal_color_7 = palette.text -- white
|
||||
vim.g.terminal_color_15 = palette.text -- bright white
|
||||
|
||||
return theme
|
||||
return M
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@
|
|||
</a>
|
||||
</p>
|
||||
|
||||
> !!! You are looking at the canary branch. Documentation has not yet been updated on this branch and is NOT accurate.
|
||||
|
||||
## Usage
|
||||
|
||||
```lua
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue