chore: update config with shared headings

This commit is contained in:
mvllow 2021-12-03 09:36:08 -06:00
commit 4a43244c6a
2 changed files with 124 additions and 117 deletions

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

@ -0,0 +1,49 @@
local palette = require('rose-pine.palette')
local config = {
bold_vert_split = vim.g.rose_pine_bold_verical_split_line or false,
no_background = vim.g.rose_pine_disable_background or false,
no_italics = vim.g.rose_pine_disable_italics or false,
colors = {
punctuation = palette.subtle,
comment = palette.subtle,
hint = palette.iris,
info = palette.foam,
warn = palette.gold,
error = palette.love,
-- TODO: Expose these once matched with syntax and cmp kind
-- variable = '',
-- class = '',
-- interface = '',
-- ['function'] = '',
-- method = '',
---@type string|table<string, string>
headings = {
h1 = palette.foam,
h2 = palette.foam,
h3 = palette.foam,
h4 = palette.foam,
h5 = palette.foam,
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

View file

@ -1,46 +1,24 @@
local config = require('rose-pine.config')
local p = require('rose-pine.palette')
local user_colors = vim.g.rose_pine_colors or {}
local groups = {
punctuation = user_colors.punctuation or p.subtle,
comment = user_colors.comment or p.subtle,
hint = user_colors.hint or p.iris,
info = user_colors.info or p.foam,
warn = user_colors.warn or p.gold,
error = user_colors.error or p.love,
headings = {
h1 = p.love,
h2 = p.rose,
h3 = p.iris,
h4 = p.pine,
h5 = p.foam,
},
}
groups.headings = vim.tbl_extend(
'force',
groups.headings,
user_colors.headings or {}
)
local theme = {}
-- TODO: Refactor `maybe` logic
local maybe_base = p.base
local maybe_italic = 'italic'
local maybe_bold_vert_split = { fg = p.overlay }
if vim.g.rose_pine_disable_background then
maybe_base = p.none
end
if vim.g.rose_pine_disable_italics then
maybe_italic = nil
end
if vim.g.rose_pine_bold_vertical_split_line then
if config.bold_vert_split then
maybe_bold_vert_split = { fg = p.surface, bg = p.surface }
end
theme.base = {
if config.no_background then
maybe_base = p.none
end
if config.no_italics then
maybe_italic = nil
end
local theme = {
ColorColumn = { bg = p.highlight_high },
Conceal = { bg = p.none },
-- Cursor = {},
@ -63,7 +41,7 @@ theme.base = {
IncSearch = { bg = p.highlight_med },
LineNr = { fg = p.inactive },
MatchParen = { fg = p.text, bg = p.overlay },
-- ModeMsg = {},
ModeMsg = { fg = p.subtle },
MoreMsg = { fg = p.iris },
NonText = { fg = p.inactive },
Normal = { fg = p.text, bg = maybe_base },
@ -99,7 +77,7 @@ theme.base = {
Boolean = { fg = p.gold },
Character = { fg = p.gold },
Comment = {
fg = groups.comment,
fg = config.colors.comment,
style = maybe_italic,
},
Conditional = { fg = p.pine },
@ -138,11 +116,11 @@ theme.base = {
htmlArg = { fg = p.iris },
htmlBold = { fg = p.text, style = 'bold' },
htmlEndTag = { fg = p.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' },
htmlH1 = { fg = config.colors.headings.h1, style = 'bold' },
htmlH2 = { fg = config.colors.headings.h2, style = 'bold' },
htmlH3 = { fg = config.colors.headings.h3, style = 'bold' },
htmlH4 = { fg = config.colors.headings.h4, style = 'bold' },
htmlH5 = { fg = config.colors.headings.h5, style = 'bold' },
htmlItalic = { fg = p.text, style = maybe_italic },
htmlLink = { fg = p.text },
htmlTag = { fg = p.subtle },
@ -169,59 +147,54 @@ theme.base = {
-- ^ ^
typescriptParens = { bg = p.none },
DiagnosticHint = { fg = groups.hint },
DiagnosticInfo = { fg = groups.info },
DiagnosticWarn = { fg = groups.warn },
DiagnosticError = { fg = groups.error },
DiagnosticDefaultHint = { fg = groups.hint },
DiagnosticDefaultInfo = { fg = groups.info },
DiagnosticDefaultWarn = { fg = groups.warn },
DiagnosticDefaultError = { fg = groups.error },
DiagnosticFloatingHint = { fg = groups.hint },
DiagnosticFloatingInfo = { fg = groups.info },
DiagnosticFloatingWarn = { fg = groups.warn },
DiagnosticFloatingError = { fg = groups.error },
DiagnosticSignHint = { fg = groups.hint },
DiagnosticSignInfo = { fg = groups.info },
DiagnosticSignWarn = { fg = groups.warn },
DiagnosticSignError = { fg = groups.error },
DiagnosticUnderlineHint = { style = 'undercurl', sp = groups.hint },
DiagnosticUnderlineInfo = { style = 'undercurl', sp = groups.info },
DiagnosticUnderlineWarn = { style = 'undercurl', sp = groups.warn },
DiagnosticUnderlineError = { style = 'undercurl', sp = groups.error },
DiagnosticVirtualTextHint = { fg = groups.hint },
DiagnosticVirtualTextInfo = { fg = groups.info },
DiagnosticVirtualTextWarn = { fg = groups.warn },
DiagnosticVirtualTextError = { fg = groups.error },
DiagnosticHint = { fg = config.colors.hint },
DiagnosticInfo = { fg = config.colors.info },
DiagnosticWarn = { fg = config.colors.warn },
DiagnosticError = { fg = config.colors.error },
DiagnosticDefaultHint = { fg = config.colors.hint },
DiagnosticDefaultInfo = { fg = config.colors.info },
DiagnosticDefaultWarn = { fg = config.colors.warn },
DiagnosticDefaultError = { fg = config.colors.error },
DiagnosticFloatingHint = { fg = config.colors.hint },
DiagnosticFloatingInfo = { fg = config.colors.info },
DiagnosticFloatingWarn = { fg = config.colors.warn },
DiagnosticFloatingError = { fg = config.colors.error },
DiagnosticSignHint = { fg = config.colors.hint },
DiagnosticSignInfo = { fg = config.colors.info },
DiagnosticSignWarn = { fg = config.colors.warn },
DiagnosticSignError = { fg = config.colors.error },
DiagnosticUnderlineHint = { style = 'undercurl', sp = config.colors.hint },
DiagnosticUnderlineInfo = { style = 'undercurl', sp = config.colors.info },
DiagnosticUnderlineWarn = { style = 'undercurl', sp = config.colors.warn },
DiagnosticUnderlineError = {
style = 'undercurl',
sp = config.colors.error,
},
DiagnosticVirtualTextHint = { fg = config.colors.hint },
DiagnosticVirtualTextInfo = { fg = config.colors.info },
DiagnosticVirtualTextWarn = { fg = config.colors.warn },
DiagnosticVirtualTextError = { fg = config.colors.error },
LspReferenceText = { fg = p.rose, bg = p.highlight_med },
LspReferenceRead = { fg = p.rose, bg = p.highlight_med },
LspReferenceWrite = { fg = p.rose, bg = p.highlight_med },
--Lsp color groups for nvim 0.5.x
-- 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' },
@ -236,42 +209,13 @@ theme.base = {
RedrawDebugRecompose = { fg = '#ffffff', bg = p.love },
NvimInternalError = { fg = '#ffffff', bg = p.love },
}
function theme.load_terminal()
-- black
vim.g.terminal_color_0 = p.overlay
vim.g.terminal_color_8 = p.subtle
-- red
vim.g.terminal_color_1 = p.love
vim.g.terminal_color_9 = p.love
-- green
vim.g.terminal_color_2 = p.pine
vim.g.terminal_color_10 = p.pine
-- yellow
vim.g.terminal_color_3 = p.gold
vim.g.terminal_color_11 = p.gold
-- blue
vim.g.terminal_color_4 = p.foam
vim.g.terminal_color_12 = p.foam
-- magenta
vim.g.terminal_color_5 = p.iris
vim.g.terminal_color_13 = p.iris
-- cyan
vim.g.terminal_color_6 = p.rose
vim.g.terminal_color_14 = p.rose
-- white
vim.g.terminal_color_7 = p.text
vim.g.terminal_color_15 = p.text
end
theme.treesitter = {
-- TSAnnotation = {},
-- TSAttribute = {},
TSBoolean = { fg = p.rose },
-- TSCharacter = {},
TSComment = {
fg = groups.comment,
fg = config.colors.comment,
style = maybe_italic,
},
-- TSConditional = {},
@ -307,9 +251,9 @@ theme.treesitter = {
fg = p.iris,
style = maybe_italic,
},
TSPunctBracket = { fg = groups.punctuation },
TSPunctDelimiter = { fg = groups.punctuation },
TSPunctSpecial = { fg = groups.punctuation },
TSPunctBracket = { fg = config.colors.punctuation },
TSPunctDelimiter = { fg = config.colors.punctuation },
TSPunctSpecial = { fg = config.colors.punctuation },
-- TSRepeat = {},
-- TSStrike = {},
TSString = { fg = p.gold },
@ -329,9 +273,7 @@ theme.treesitter = {
style = maybe_italic,
},
TSVariableBuiltin = { fg = p.love },
}
theme.plugins = {
-- barbar.nvim
-- https://github.com/romgrk/barbar.nvim
BufferTabpageFill = { fg = p.base, bg = p.base },
@ -367,14 +309,12 @@ theme.plugins = {
-- nvim-tree.lua
-- https://github.com/kyazdani42/nvim-tree.lua
NvimTreeNormal = { fg = p.text },
NvimTreeFileDeleted = { fg = p.love },
NvimTreeFileDirty = { fg = p.rose },
NvimTreeFileMerge = { fg = p.iris },
NvimTreeFileNew = { fg = p.foam },
NvimTreeFileRenamed = { fg = p.pine },
NvimTreeFileStaged = { fg = p.iris },
NvimTreeEmptyFolderName = { fg = p.inactive },
NvimTreeFolderIcon = { fg = p.subtle },
NvimTreeFolderName = { fg = p.foam },
@ -383,7 +323,6 @@ theme.plugins = {
NvimTreeOpenedFolderName = { fg = p.foam },
NvimTreeRootFolder = { fg = p.iris },
NvimTreeSpecialFile = { link = 'NvimTreeNormal' },
NvimTreeGitDeleted = { fg = p.love },
NvimTreeGitDirty = { fg = p.rose },
NvimTreeGitIgnored = { fg = p.subtle },
@ -391,7 +330,6 @@ theme.plugins = {
NvimTreeGitNew = { fg = p.foam },
NvimTreeGitRenamed = { fg = p.pine },
NvimTreeGitStaged = { fg = p.iris },
NvimTreeWindowPicker = { fg = p.base, bg = p.iris },
-- which-key.nvim
@ -425,7 +363,10 @@ theme.plugins = {
-- neogit
-- https://github.com/TimUntersberger/neogit
NeogitDiffAddHighlight = { fg = p.foam, bg = p.highlight_med },
NeogitDiffDeleteHighlight = { fg = p.love, bg = p.highlight_med },
NeogitDiffDeleteHighlight = {
fg = p.love,
bg = p.highlight_med,
},
NeogitDiffContextHighlight = { bg = p.highlight_low },
NeogitHunkHeader = { bg = p.highlight_low },
NeogitHunkHeaderHighlight = { bg = p.highlight_low },
@ -433,16 +374,33 @@ theme.plugins = {
-- VimWiki
-- https://github.com/vimwiki/vimwiki
VimwikiHR = { fg = p.subtle },
VimwikiHeader1 = { fg = p.foam, style = 'bold' },
VimwikiHeader2 = { fg = p.foam, style = 'bold' },
VimwikiHeader3 = { fg = p.foam, style = 'bold' },
VimwikiHeader4 = { fg = p.foam, style = 'bold' },
VimwikiHeader5 = { fg = p.foam, style = 'bold' },
VimwikiHeader6 = { fg = p.foam, style = 'bold' },
VimwikiHeader1 = { fg = config.colors.headings.h1, style = 'bold' },
VimwikiHeader2 = { fg = config.colors.headings.h2, style = 'bold' },
VimwikiHeader3 = { fg = config.colors.headings.h3, style = 'bold' },
VimwikiHeader4 = { fg = config.colors.headings.h4, style = 'bold' },
VimwikiHeader5 = { fg = config.colors.headings.h5, style = 'bold' },
VimwikiHeader6 = { fg = config.colors.headings.h6, style = 'bold' },
VimwikiHeaderChar = { fg = p.pine },
VimwikiLink = { fg = p.rose },
VimwikiList = { fg = p.iris },
VimwikiNoExistsLink = { fg = p.love },
}
vim.g.terminal_color_0 = p.overlay -- black
vim.g.terminal_color_8 = p.subtle -- bright black
vim.g.terminal_color_1 = p.love -- red
vim.g.terminal_color_9 = p.love -- bright red
vim.g.terminal_color_2 = p.pine -- green
vim.g.terminal_color_10 = p.pine -- bright green
vim.g.terminal_color_3 = p.gold -- yellow
vim.g.terminal_color_11 = p.gold -- bright yellow
vim.g.terminal_color_4 = p.foam -- blue
vim.g.terminal_color_12 = p.foam -- bright blue
vim.g.terminal_color_5 = p.iris -- magenta
vim.g.terminal_color_13 = p.iris -- bright magenta
vim.g.terminal_color_6 = p.rose -- cyan
vim.g.terminal_color_14 = p.rose -- bright cyan
vim.g.terminal_color_7 = p.text -- white
vim.g.terminal_color_15 = p.text -- bright white
return theme