diff --git a/colors/rose-pine.vim b/colors/rose-pine.vim index af1ddba..6b86afa 100644 --- a/colors/rose-pine.vim +++ b/colors/rose-pine.vim @@ -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() diff --git a/lua/lualine/themes/rose-pine.lua b/lua/lualine/themes/rose-pine.lua index dde3075..bb2b604 100644 --- a/lua/lualine/themes/rose-pine.lua +++ b/lua/lualine/themes/rose-pine.lua @@ -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 }, }, } diff --git a/lua/rose-pine/bufferline/init.lua b/lua/rose-pine/bufferline/init.lua index 3ae77b4..4eb8a9a 100644 --- a/lua/rose-pine/bufferline/init.lua +++ b/lua/rose-pine/bufferline/init.lua @@ -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, }, } diff --git a/lua/rose-pine/config.lua b/lua/rose-pine/config.lua deleted file mode 100644 index 6b3ac12..0000000 --- a/lua/rose-pine/config.lua +++ /dev/null @@ -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 - 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 diff --git a/lua/rose-pine/galaxyline/theme.lua b/lua/rose-pine/galaxyline/theme.lua index 5142949..b964186 100644 --- a/lua/rose-pine/galaxyline/theme.lua +++ b/lua/rose-pine/galaxyline/theme.lua @@ -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, } diff --git a/lua/rose-pine/init.lua b/lua/rose-pine/init.lua index f872457..748edce 100644 --- a/lua/rose-pine/init.lua +++ b/lua/rose-pine/init.lua @@ -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 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 diff --git a/lua/rose-pine/palette.lua b/lua/rose-pine/palette.lua index 1b27e8b..5aa7cc2 100644 --- a/lua/rose-pine/palette.lua +++ b/lua/rose-pine/palette.lua @@ -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 diff --git a/lua/rose-pine/theme.lua b/lua/rose-pine/theme.lua index 4a2aafa..1bd38a4 100644 --- a/lua/rose-pine/theme.lua +++ b/lua/rose-pine/theme.lua @@ -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 diff --git a/readme.md b/readme.md index c9f8619..d34cc8c 100644 --- a/readme.md +++ b/readme.md @@ -11,6 +11,8 @@

+> !!! You are looking at the canary branch. Documentation has not yet been updated on this branch and is NOT accurate. + ## Usage ```lua