Compare commits

..

No commits in common. "main" and "v3.0.0" have entirely different histories.

12 changed files with 179 additions and 649 deletions

View file

@ -1,10 +1,4 @@
local p = require("rose-pine.palette") local p = require("rose-pine.palette")
local config = require("rose-pine.config")
local bg_base = p.base
if config.options.styles.transparency then
bg_base = "NONE"
end
return { return {
normal = { normal = {
@ -25,8 +19,8 @@ return {
a = { bg = p.surface, fg = p.love, gui = "bold" }, a = { bg = p.surface, fg = p.love, gui = "bold" },
}, },
inactive = { inactive = {
a = { bg = bg_base, fg = p.subtle, gui = "bold" }, a = { bg = p.base, fg = p.subtle, gui = "bold" },
b = { bg = bg_base, fg = p.subtle }, b = { bg = p.base, fg = p.subtle },
c = { bg = bg_base, fg = p.subtle, gui = "italic" }, c = { bg = p.base, fg = p.subtle, gui = "italic" },
}, },
} }

View file

@ -1,7 +1,7 @@
local p = require("rose-pine.palette") local p = require("rose-pine.palette")
local config = require("rose-pine.config") local config = require("rose-pine.config")
local bg_base = p.surface local bg_base = p.base
if config.options.styles.transparency then if config.options.styles.transparency then
bg_base = "NONE" bg_base = "NONE"
end end

View file

@ -91,7 +91,7 @@ local function set_highlights()
DiffAdd = { bg = groups.git_add, blend = 20 }, DiffAdd = { bg = groups.git_add, blend = 20 },
DiffChange = { bg = groups.git_change, blend = 20 }, DiffChange = { bg = groups.git_change, blend = 20 },
DiffDelete = { bg = groups.git_delete, blend = 20 }, DiffDelete = { bg = groups.git_delete, blend = 20 },
DiffText = { bg = groups.git_text, blend = 40 }, DiffText = { bg = groups.git_text, blend = 20 },
diffAdded = { link = "DiffAdd" }, diffAdded = { link = "DiffAdd" },
diffChanged = { link = "DiffChange" }, diffChanged = { link = "DiffChange" },
diffRemoved = { link = "DiffDelete" }, diffRemoved = { link = "DiffDelete" },
@ -99,7 +99,7 @@ local function set_highlights()
-- EndOfBuffer = {}, -- EndOfBuffer = {},
ErrorMsg = { fg = groups.error, bold = styles.bold }, ErrorMsg = { fg = groups.error, bold = styles.bold },
FloatBorder = make_border(), FloatBorder = make_border(),
FloatTitle = { fg = palette.foam, bg = groups.panel, bold = styles.bold }, FloatTitle = { link = "Directory" },
FoldColumn = { fg = palette.muted }, FoldColumn = { fg = palette.muted },
Folded = { fg = palette.text, bg = groups.panel }, Folded = { fg = palette.text, bg = groups.panel },
IncSearch = { link = "CurSearch" }, IncSearch = { link = "CurSearch" },
@ -121,12 +121,12 @@ local function set_highlights()
PmenuSel = { fg = palette.text, bg = palette.overlay }, PmenuSel = { fg = palette.text, bg = palette.overlay },
PmenuThumb = { bg = palette.muted }, PmenuThumb = { bg = palette.muted },
Question = { fg = palette.gold }, Question = { fg = palette.gold },
QuickFixLine = { fg = palette.foam }, -- QuickFixLink = {},
-- RedrawDebugNormal = {}, -- RedrawDebugNormal = {},
RedrawDebugClear = { fg = palette.base, bg = palette.gold }, RedrawDebugClear = { fg = palette.base, bg = palette.gold },
RedrawDebugComposed = { fg = palette.base, bg = palette.pine }, RedrawDebugComposed = { fg = palette.base, bg = palette.pine },
RedrawDebugRecompose = { fg = palette.base, bg = palette.love }, RedrawDebugRecompose = { fg = palette.base, bg = palette.love },
Search = { fg = palette.text, bg = palette.gold, blend = 20 }, Search = { fg = palette.base, bg = palette.text },
SignColumn = { fg = palette.text, bg = "NONE" }, SignColumn = { fg = palette.text, bg = "NONE" },
SpecialKey = { fg = palette.foam }, SpecialKey = { fg = palette.foam },
SpellBad = { sp = palette.subtle, undercurl = true }, SpellBad = { sp = palette.subtle, undercurl = true },
@ -143,7 +143,7 @@ local function set_highlights()
TabLineSel = { fg = palette.text, bg = palette.overlay, bold = styles.bold }, TabLineSel = { fg = palette.text, bg = palette.overlay, bold = styles.bold },
Title = { fg = palette.foam, bold = styles.bold }, Title = { fg = palette.foam, bold = styles.bold },
VertSplit = { fg = groups.border }, VertSplit = { fg = groups.border },
Visual = { bg = palette.iris, blend = 15 }, Visual = { bg = palette.highlight_med },
-- VisualNOS = {}, -- VisualNOS = {},
WarningMsg = { fg = groups.warn, bold = styles.bold }, WarningMsg = { fg = groups.warn, bold = styles.bold },
-- Whitespace = {}, -- Whitespace = {},
@ -155,32 +155,26 @@ local function set_highlights()
DiagnosticError = { fg = groups.error }, DiagnosticError = { fg = groups.error },
DiagnosticHint = { fg = groups.hint }, DiagnosticHint = { fg = groups.hint },
DiagnosticInfo = { fg = groups.info }, DiagnosticInfo = { fg = groups.info },
DiagnosticOk = { fg = groups.ok },
DiagnosticWarn = { fg = groups.warn }, DiagnosticWarn = { fg = groups.warn },
DiagnosticDefaultError = { link = "DiagnosticError" }, DiagnosticDefaultError = { link = "DiagnosticError" },
DiagnosticDefaultHint = { link = "DiagnosticHint" }, DiagnosticDefaultHint = { link = "DiagnosticHint" },
DiagnosticDefaultInfo = { link = "DiagnosticInfo" }, DiagnosticDefaultInfo = { link = "DiagnosticInfo" },
DiagnosticDefaultOk = { link = "DiagnosticOk" },
DiagnosticDefaultWarn = { link = "DiagnosticWarn" }, DiagnosticDefaultWarn = { link = "DiagnosticWarn" },
DiagnosticFloatingError = { link = "DiagnosticError" }, DiagnosticFloatingError = { link = "DiagnosticError" },
DiagnosticFloatingHint = { link = "DiagnosticHint" }, DiagnosticFloatingHint = { link = "DiagnosticHint" },
DiagnosticFloatingInfo = { link = "DiagnosticInfo" }, DiagnosticFloatingInfo = { link = "DiagnosticInfo" },
DiagnosticFloatingOk = { link = "DiagnosticOk" },
DiagnosticFloatingWarn = { link = "DiagnosticWarn" }, DiagnosticFloatingWarn = { link = "DiagnosticWarn" },
DiagnosticSignError = { link = "DiagnosticError" }, DiagnosticSignError = { link = "DiagnosticError" },
DiagnosticSignHint = { link = "DiagnosticHint" }, DiagnosticSignHint = { link = "DiagnosticHint" },
DiagnosticSignInfo = { link = "DiagnosticInfo" }, DiagnosticSignInfo = { link = "DiagnosticInfo" },
DiagnosticSignOk = { link = "DiagnosticOk" },
DiagnosticSignWarn = { link = "DiagnosticWarn" }, DiagnosticSignWarn = { link = "DiagnosticWarn" },
DiagnosticUnderlineError = { sp = groups.error, undercurl = true }, DiagnosticUnderlineError = { sp = groups.error, undercurl = true },
DiagnosticUnderlineHint = { sp = groups.hint, undercurl = true }, DiagnosticUnderlineHint = { sp = groups.hint, undercurl = true },
DiagnosticUnderlineInfo = { sp = groups.info, undercurl = true }, DiagnosticUnderlineInfo = { sp = groups.info, undercurl = true },
DiagnosticUnderlineOk = { sp = groups.ok, undercurl = true },
DiagnosticUnderlineWarn = { sp = groups.warn, undercurl = true }, DiagnosticUnderlineWarn = { sp = groups.warn, undercurl = true },
DiagnosticVirtualTextError = { fg = groups.error, bg = groups.error, blend = 10 }, DiagnosticVirtualTextError = { fg = groups.error, bg = groups.error, blend = 10 },
DiagnosticVirtualTextHint = { fg = groups.hint, bg = groups.hint, blend = 10 }, DiagnosticVirtualTextHint = { fg = groups.hint, bg = groups.hint, blend = 10 },
DiagnosticVirtualTextInfo = { fg = groups.info, bg = groups.info, blend = 10 }, DiagnosticVirtualTextInfo = { fg = groups.info, bg = groups.info, blend = 10 },
DiagnosticVirtualTextOk = { fg = groups.ok, bg = groups.ok, blend = 10 },
DiagnosticVirtualTextWarn = { fg = groups.warn, bg = groups.warn, blend = 10 }, DiagnosticVirtualTextWarn = { fg = groups.warn, bg = groups.warn, blend = 10 },
Boolean = { fg = palette.rose }, Boolean = { fg = palette.rose },
@ -208,8 +202,8 @@ local function set_highlights()
Macro = { fg = palette.iris }, Macro = { fg = palette.iris },
Number = { fg = palette.gold }, Number = { fg = palette.gold },
Operator = { fg = palette.subtle }, Operator = { fg = palette.subtle },
PreCondit = { fg = palette.iris }, PreConduit = { fg = palette.iris },
PreProc = { link = "PreCondit" }, PreProc = { link = "PreConduit" },
Repeat = { fg = palette.pine }, Repeat = { fg = palette.pine },
Special = { fg = palette.foam }, Special = { fg = palette.foam },
SpecialChar = { link = "Special" }, SpecialChar = { link = "Special" },
@ -271,12 +265,10 @@ local function set_highlights()
mkdRule = { fg = palette.subtle }, mkdRule = { fg = palette.subtle },
mkdURL = { link = "markdownUrl" }, mkdURL = { link = "markdownUrl" },
--- Treesitter --- Identifiers
--- |:help treesitter-highlight-groups|
["@variable"] = { fg = palette.text, italic = styles.italic }, ["@variable"] = { fg = palette.text, italic = styles.italic },
["@variable.builtin"] = { fg = palette.love, italic = styles.italic, bold = styles.bold }, ["@variable.builtin"] = { fg = palette.text, bold = styles.bold },
["@variable.parameter"] = { fg = palette.iris, italic = styles.italic }, ["@variable.parameter"] = { fg = palette.iris, italic = styles.italic },
["@variable.parameter.builtin"] = { fg = palette.iris, italic = styles.italic, bold = styles.bold },
["@variable.member"] = { fg = palette.foam }, ["@variable.member"] = { fg = palette.foam },
["@constant"] = { fg = palette.gold }, ["@constant"] = { fg = palette.gold },
@ -287,6 +279,7 @@ local function set_highlights()
["@module.builtin"] = { fg = palette.text, bold = styles.bold }, ["@module.builtin"] = { fg = palette.text, bold = styles.bold },
["@label"] = { link = "Label" }, ["@label"] = { link = "Label" },
--- Literals
["@string"] = { link = "String" }, ["@string"] = { link = "String" },
-- ["@string.documentation"] = {}, -- ["@string.documentation"] = {},
["@string.regexp"] = { fg = palette.iris }, ["@string.regexp"] = { fg = palette.iris },
@ -302,27 +295,28 @@ local function set_highlights()
["@boolean"] = { link = "Boolean" }, ["@boolean"] = { link = "Boolean" },
["@number"] = { link = "Number" }, ["@number"] = { link = "Number" },
["@number.float"] = { link = "Number" }, ["@number.float"] = { link = "Number" },
["@float"] = { link = "Number" },
--- Types
["@type"] = { fg = palette.foam }, ["@type"] = { fg = palette.foam },
["@type.builtin"] = { fg = palette.foam, bold = styles.bold }, ["@type.builtin"] = { fg = palette.foam, bold = styles.bold },
-- ["@type.definition"] = {}, -- ["@type.definition"] = {},
-- ["@type.qualifier"] = {},
["@attribute"] = { fg = palette.iris }, -- ["@attribute"] = {},
["@attribute.builtin"] = { fg = palette.iris, bold = styles.bold },
["@property"] = { fg = palette.foam, italic = styles.italic }, ["@property"] = { fg = palette.foam, italic = styles.italic },
--- Functions
["@function"] = { fg = palette.rose }, ["@function"] = { fg = palette.rose },
["@function.builtin"] = { fg = palette.rose, bold = styles.bold }, ["@function.builtin"] = { fg = palette.rose, bold = styles.bold },
-- ["@function.call"] = {}, -- ["@function.call"] = {},
["@function.macro"] = { link = "Function" }, ["@function.macro"] = { link = "Function" },
["@function.method"] = { fg = palette.rose }, ["@function.method"] = { fg = palette.rose },
["@function.method.call"] = { fg = palette.iris }, ["@function.method.call"] = { fg = palette.iris },
["@constructor"] = { fg = palette.foam }, ["@constructor"] = { fg = palette.foam },
["@operator"] = { link = "Operator" }, ["@operator"] = { link = "Operator" },
--- Keywords
["@keyword"] = { link = "Keyword" }, ["@keyword"] = { link = "Keyword" },
-- ["@keyword.coroutine"] = {}, -- ["@keyword.coroutine"] = {},
-- ["@keyword.function"] = {}, -- ["@keyword.function"] = {},
@ -333,10 +327,8 @@ local function set_highlights()
["@keyword.return"] = { fg = palette.pine }, ["@keyword.return"] = { fg = palette.pine },
["@keyword.debug"] = { fg = palette.rose }, ["@keyword.debug"] = { fg = palette.rose },
["@keyword.exception"] = { fg = palette.pine }, ["@keyword.exception"] = { fg = palette.pine },
["@keyword.conditional"] = { fg = palette.pine }, ["@keyword.conditional"] = { fg = palette.pine },
["@keyword.conditional.ternary"] = { fg = palette.pine }, ["@keyword.conditional.ternary"] = { fg = palette.pine },
["@keyword.directive"] = { fg = palette.iris }, ["@keyword.directive"] = { fg = palette.iris },
["@keyword.directive.define"] = { fg = palette.iris }, ["@keyword.directive.define"] = { fg = palette.iris },
@ -351,10 +343,10 @@ local function set_highlights()
["@comment.error"] = { fg = groups.error }, ["@comment.error"] = { fg = groups.error },
["@comment.warning"] = { fg = groups.warn }, ["@comment.warning"] = { fg = groups.warn },
["@comment.todo"] = { fg = groups.todo, bg = groups.todo, blend = 15 }, ["@comment.todo"] = { fg = groups.todo, bg = groups.todo, blend = 20 },
["@comment.hint"] = { fg = groups.hint, bg = groups.hint, blend = 15 }, ["@comment.hint"] = { fg = groups.hint, bg = groups.hint, blend = 20 },
["@comment.info"] = { fg = groups.info, bg = groups.info, blend = 15 }, ["@comment.info"] = { fg = groups.info, bg = groups.info, blend = 20 },
["@comment.note"] = { fg = groups.note, bg = groups.note, blend = 15 }, ["@comment.note"] = { fg = groups.note, bg = groups.note, blend = 20 },
--- Markup --- Markup
["@markup.strong"] = { bold = styles.bold }, ["@markup.strong"] = { bold = styles.bold },
@ -364,38 +356,22 @@ local function set_highlights()
["@markup.heading"] = { fg = palette.foam, bold = styles.bold }, ["@markup.heading"] = { fg = palette.foam, bold = styles.bold },
["@markup.quote"] = { fg = palette.text }, ["@markup.quote"] = { fg = palette.subtle },
["@markup.math"] = { link = "Special" }, ["@markup.math"] = { link = "Special" },
["@markup.environment"] = { link = "Macro" }, ["@markup.environment"] = { link = "Macro" },
["@markup.environment.name"] = { link = "@type" }, ["@markup.environment.name"] = { link = "@type" },
-- ["@markup.link"] = {}, -- ["@markup.link"] = {},
["@markup.link.markdown_inline"] = { fg = palette.subtle }, ["@markup.link.label"] = { fg = palette.text },
["@markup.link.label.markdown_inline"] = { fg = palette.foam },
["@markup.link.url"] = { fg = groups.link }, ["@markup.link.url"] = { fg = groups.link },
-- ["@markup.raw"] = { bg = palette.surface }, -- ["@markup.raw"] = { bg = palette.surface },
-- ["@markup.raw.block"] = { bg = palette.surface }, -- ["@markup.raw.block"] = { bg = palette.surface },
["@markup.raw.delimiter.markdown"] = { fg = palette.subtle },
["@markup.list"] = { fg = palette.pine }, ["@markup.list"] = { fg = palette.text },
["@markup.list.checked"] = { fg = palette.foam, bg = palette.foam, blend = 10 }, ["@markup.list.checked"] = { fg = palette.foam, bg = palette.foam, blend = 10 },
["@markup.list.unchecked"] = { fg = palette.text }, ["@markup.list.unchecked"] = { fg = palette.text },
-- Markdown headings
["@markup.heading.1.markdown"] = { link = "markdownH1" },
["@markup.heading.2.markdown"] = { link = "markdownH2" },
["@markup.heading.3.markdown"] = { link = "markdownH3" },
["@markup.heading.4.markdown"] = { link = "markdownH4" },
["@markup.heading.5.markdown"] = { link = "markdownH5" },
["@markup.heading.6.markdown"] = { link = "markdownH6" },
["@markup.heading.1.marker.markdown"] = { link = "markdownH1Delimiter" },
["@markup.heading.2.marker.markdown"] = { link = "markdownH2Delimiter" },
["@markup.heading.3.marker.markdown"] = { link = "markdownH3Delimiter" },
["@markup.heading.4.marker.markdown"] = { link = "markdownH4Delimiter" },
["@markup.heading.5.marker.markdown"] = { link = "markdownH5Delimiter" },
["@markup.heading.6.marker.markdown"] = { link = "markdownH6Delimiter" },
["@diff.plus"] = { fg = groups.git_add, bg = groups.git_add, blend = 20 }, ["@diff.plus"] = { fg = groups.git_add, bg = groups.git_add, blend = 20 },
["@diff.minus"] = { fg = groups.git_delete, bg = groups.git_delete, blend = 20 }, ["@diff.minus"] = { fg = groups.git_delete, bg = groups.git_delete, blend = 20 },
["@diff.delta"] = { bg = groups.git_change, blend = 20 }, ["@diff.delta"] = { bg = groups.git_change, blend = 20 },
@ -407,28 +383,22 @@ local function set_highlights()
--- Non-highlighting captures --- Non-highlighting captures
-- ["@none"] = {}, -- ["@none"] = {},
["@conceal"] = { link = "Conceal" }, ["@conceal"] = { link = "Conceal" },
["@conceal.markdown"] = { fg = palette.subtle },
-- ["@spell"] = {}, -- ["@spell"] = {},
-- ["@nospell"] = {}, -- ["@nospell"] = {},
--- Semantic --- Semantic
["@lsp.type.comment"] = {}, ["@lsp.type.comment"] = {},
["@lsp.type.comment.c"] = { link = "@comment" },
["@lsp.type.comment.cpp"] = { link = "@comment" },
["@lsp.type.enum"] = { link = "@type" }, ["@lsp.type.enum"] = { link = "@type" },
["@lsp.type.interface"] = { link = "@interface" }, ["@lsp.type.interface"] = { link = "@interface" },
["@lsp.type.keyword"] = { link = "@keyword" }, ["@lsp.type.keyword"] = { link = "@keyword" },
["@lsp.type.namespace"] = { link = "@namespace" }, ["@lsp.type.namespace"] = { link = "@namespace" },
["@lsp.type.namespace.python"] = { link = "@variable" },
["@lsp.type.parameter"] = { link = "@parameter" }, ["@lsp.type.parameter"] = { link = "@parameter" },
["@lsp.type.property"] = { link = "@property" }, ["@lsp.type.property"] = { link = "@property" },
["@lsp.type.variable"] = {}, -- defer to treesitter for regular variables ["@lsp.type.variable"] = {},
["@lsp.type.variable.svelte"] = { link = "@variable" },
["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" }, ["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" },
["@lsp.typemod.operator.injected"] = { link = "@operator" }, ["@lsp.typemod.operator.injected"] = { link = "@operator" },
["@lsp.typemod.string.injected"] = { link = "@string" }, ["@lsp.typemod.string.injected"] = { link = "@string" },
["@lsp.typemod.variable.constant"] = { link = "@constant" },
["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" }, ["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" },
["@lsp.typemod.variable.injected"] = { link = "@variable" }, ["@lsp.typemod.variable.injected"] = { link = "@variable" },
@ -452,9 +422,9 @@ local function set_highlights()
BufferVisibleTarget = { fg = palette.gold }, BufferVisibleTarget = { fg = palette.gold },
-- lewis6991/gitsigns.nvim -- lewis6991/gitsigns.nvim
GitSignsAdd = { fg = groups.git_add, bg = "NONE" }, GitSignsAdd = { link = "SignAdd" },
GitSignsChange = { fg = groups.git_change, bg = "NONE" }, GitSignsChange = { link = "SignChange" },
GitSignsDelete = { fg = groups.git_delete, bg = "NONE" }, GitSignsDelete = { link = "SignDelete" },
SignAdd = { fg = groups.git_add, bg = "NONE" }, SignAdd = { fg = groups.git_add, bg = "NONE" },
SignChange = { fg = groups.git_change, bg = "NONE" }, SignChange = { fg = groups.git_change, bg = "NONE" },
SignDelete = { fg = groups.git_delete, bg = "NONE" }, SignDelete = { fg = groups.git_delete, bg = "NONE" },
@ -462,9 +432,7 @@ local function set_highlights()
-- mvllow/modes.nvim -- mvllow/modes.nvim
ModesCopy = { bg = palette.gold }, ModesCopy = { bg = palette.gold },
ModesDelete = { bg = palette.love }, ModesDelete = { bg = palette.love },
ModesFormat = { bg = palette.rose },
ModesInsert = { bg = palette.foam }, ModesInsert = { bg = palette.foam },
ModesReplace = { bg = palette.pine },
ModesVisual = { bg = palette.iris }, ModesVisual = { bg = palette.iris },
-- kyazdani42/nvim-tree.lua -- kyazdani42/nvim-tree.lua
@ -492,26 +460,6 @@ local function set_highlights()
NvimTreeSpecialFile = { link = "NvimTreeNormal" }, NvimTreeSpecialFile = { link = "NvimTreeNormal" },
NvimTreeWindowPicker = { link = "StatusLineTerm" }, NvimTreeWindowPicker = { link = "StatusLineTerm" },
-- nvim-neotest/neotest
NeotestAdapterName = { fg = palette.iris },
NeotestBorder = { fg = palette.highlight_med },
NeotestDir = { fg = palette.foam },
NeotestExpandMarker = { fg = palette.highlight_med },
NeotestFailed = { fg = palette.love },
NeotestFile = { fg = palette.text },
NeotestFocused = { fg = palette.gold, bg = palette.highlight_med },
NeotestIndent = { fg = palette.highlight_med },
NeotestMarked = { fg = palette.rose, bold = styles.bold },
NeotestNamespace = { fg = palette.gold },
NeotestPassed = { fg = palette.pine },
NeotestRunning = { fg = palette.gold },
NeotestWinSelect = { fg = palette.muted },
NeotestSkipped = { fg = palette.subtle },
NeotestTarget = { fg = palette.love },
NeotestTest = { fg = palette.gold },
NeotestUnknown = { fg = palette.subtle },
NeotestWatching = { fg = palette.iris },
-- nvim-neo-tree/neo-tree.nvim -- nvim-neo-tree/neo-tree.nvim
NeoTreeGitAdded = { fg = groups.git_add }, NeoTreeGitAdded = { fg = groups.git_add },
NeoTreeGitConflict = { fg = groups.git_merge }, NeoTreeGitConflict = { fg = groups.git_merge },
@ -520,10 +468,6 @@ local function set_highlights()
NeoTreeGitModified = { fg = groups.git_dirty }, NeoTreeGitModified = { fg = groups.git_dirty },
NeoTreeGitRenamed = { fg = groups.git_rename }, NeoTreeGitRenamed = { fg = groups.git_rename },
NeoTreeGitUntracked = { fg = groups.git_untracked }, NeoTreeGitUntracked = { fg = groups.git_untracked },
NeoTreeTabActive = { fg = palette.text, bg = palette.overlay },
NeoTreeTabInactive = { fg = palette.subtle },
NeoTreeTabSeparatorActive = { link = "WinSeparator" },
NeoTreeTabSeparatorInactive = { link = "WinSeparator" },
NeoTreeTitleBar = { link = "StatusLineTerm" }, NeoTreeTitleBar = { link = "StatusLineTerm" },
-- folke/flash.nvim -- folke/flash.nvim
@ -531,23 +475,10 @@ local function set_highlights()
-- folke/which-key.nvim -- folke/which-key.nvim
WhichKey = { fg = palette.iris }, WhichKey = { fg = palette.iris },
WhichKeyBorder = make_border(),
WhichKeyDesc = { fg = palette.gold }, WhichKeyDesc = { fg = palette.gold },
WhichKeyFloat = { bg = groups.panel }, WhichKeyFloat = { bg = groups.panel },
WhichKeyGroup = { fg = palette.foam }, WhichKeyGroup = { fg = palette.foam },
WhichKeyIcon = { fg = palette.pine },
WhichKeyIconAzure = { fg = palette.pine },
WhichKeyIconBlue = { fg = palette.pine },
WhichKeyIconCyan = { fg = palette.foam },
WhichKeyIconGreen = { fg = palette.leaf },
WhichKeyIconGrey = { fg = palette.subtle },
WhichKeyIconOrange = { fg = palette.rose },
WhichKeyIconPurple = { fg = palette.iris },
WhichKeyIconRed = { fg = palette.love },
WhichKeyIconYellow = { fg = palette.gold },
WhichKeyNormal = { link = "NormalFloat" },
WhichKeySeparator = { fg = palette.subtle }, WhichKeySeparator = { fg = palette.subtle },
WhichKeyTitle = { link = "FloatTitle" },
WhichKeyValue = { fg = palette.rose }, WhichKeyValue = { fg = palette.rose },
-- lukas-reineke/indent-blankline.nvim -- lukas-reineke/indent-blankline.nvim
@ -616,7 +547,7 @@ local function set_highlights()
-- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim) -- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim)
DefinitionCount = { fg = palette.rose }, DefinitionCount = { fg = palette.rose },
DefinitionIcon = { fg = palette.rose }, DefinitionIcon = { fg = palette.rose },
DefinitionPreviewTitle = { fg = palette.rose, bold = styles.bold }, DefintionPreviewTitle = { fg = palette.rose, bold = styles.bold },
LspFloatWinBorder = make_border(), LspFloatWinBorder = make_border(),
LspFloatWinNormal = { bg = groups.panel }, LspFloatWinNormal = { bg = groups.panel },
LspSagaAutoPreview = { fg = palette.subtle }, LspSagaAutoPreview = { fg = palette.subtle },
@ -673,35 +604,27 @@ local function set_highlights()
TelescopeTitle = { fg = palette.foam, bold = styles.bold }, TelescopeTitle = { fg = palette.foam, bold = styles.bold },
-- ibhagwan/fzf-lua -- ibhagwan/fzf-lua
FzfLuaBorder = make_border(),
FzfLuaBufFlagAlt = { fg = palette.subtle },
FzfLuaBufFlagCur = { fg = palette.subtle },
FzfLuaCursorLine = { fg = palette.text, bg = palette.overlay },
FzfLuaFilePart = { fg = palette.text },
FzfLuaHeaderBind = { fg = palette.rose },
FzfLuaHeaderText = { fg = palette.love },
FzfLuaNormal = { link = "NormalFloat" }, FzfLuaNormal = { link = "NormalFloat" },
FzfLuaTitle = { link = "FloatTitle" }, FwzfLuaTitle = { fg = palette.foam, bold = styles.bold },
FzfLuaBorder = make_border(),
FzfLuaHeaderText = { fg = palette.love },
FzfLuaHeaderBind = { fg = palette.rose },
FzfLuaBufFlagCur = { fg = palette.subtle },
FzfLuaBufFlagAlt = { fg = palette.subtle },
-- rcarriga/nvim-notify -- rcarriga/nvim-notify
NotifyBackground = { link = "NormalFloat" },
NotifyDEBUGBody = { link = "NormalFloat" },
NotifyDEBUGBorder = make_border(), NotifyDEBUGBorder = make_border(),
NotifyDEBUGIcon = { link = "NotifyDEBUGTitle" }, NotifyDEBUGIcon = { link = "NotifyDEBUGTitle" },
NotifyDEBUGTitle = { fg = palette.muted }, NotifyDEBUGTitle = { fg = palette.muted },
NotifyERRORBody = { link = "NormalFloat" },
NotifyERRORBorder = make_border(groups.error), NotifyERRORBorder = make_border(groups.error),
NotifyERRORIcon = { link = "NotifyERRORTitle" }, NotifyERRORIcon = { link = "NotifyERRORTitle" },
NotifyERRORTitle = { fg = groups.error }, NotifyERRORTitle = { fg = groups.error },
NotifyINFOBody = { link = "NormalFloat" },
NotifyINFOBorder = make_border(groups.info), NotifyINFOBorder = make_border(groups.info),
NotifyINFOIcon = { link = "NotifyINFOTitle" }, NotifyINFOIcon = { link = "NotifyINFOTitle" },
NotifyINFOTitle = { fg = groups.info }, NotifyINFOTitle = { fg = groups.info },
NotifyTRACEBody = { link = "NormalFloat" },
NotifyTRACEBorder = make_border(palette.iris), NotifyTRACEBorder = make_border(palette.iris),
NotifyTRACEIcon = { link = "NotifyTRACETitle" }, NotifyTRACEIcon = { link = "NotifyTRACETitle" },
NotifyTRACETitle = { fg = palette.iris }, NotifyTRACETitle = { fg = palette.iris },
NotifyWARNBody = { link = "NormalFloat" },
NotifyWARNBorder = make_border(groups.warn), NotifyWARNBorder = make_border(groups.warn),
NotifyWARNIcon = { link = "NotifyWARNTitle" }, NotifyWARNIcon = { link = "NotifyWARNTitle" },
NotifyWARNTitle = { fg = groups.warn }, NotifyWARNTitle = { fg = groups.warn },
@ -723,7 +646,6 @@ local function set_highlights()
DapUIThread = { fg = palette.gold }, DapUIThread = { fg = palette.gold },
DapUIValue = { fg = palette.text }, DapUIValue = { fg = palette.text },
DapUIVariable = { fg = palette.text }, DapUIVariable = { fg = palette.text },
DapUIType = { fg = palette.iris },
DapUIWatchesEmpty = { fg = palette.love }, DapUIWatchesEmpty = { fg = palette.love },
DapUIWatchesError = { link = "DapUIWatchesEmpty" }, DapUIWatchesError = { link = "DapUIWatchesEmpty" },
DapUIWatchesValue = { link = "DapUIThread" }, DapUIWatchesValue = { link = "DapUIThread" },
@ -768,143 +690,16 @@ local function set_highlights()
-- folke/noice.nvim -- folke/noice.nvim
NoiceCursor = { fg = palette.highlight_high, bg = palette.text }, NoiceCursor = { fg = palette.highlight_high, bg = palette.text },
-- folke/trouble.nvim -- echasnovski/mini.clue
TroubleText = { fg = palette.subtle },
TroubleCount = { fg = palette.iris, bg = palette.surface },
TroubleNormal = { fg = palette.text, bg = groups.panel },
-- echasnovski/mini.nvim
MiniAnimateCursor = { reverse = true, nocombine = true },
MiniAnimateNormalFloat = { link = "NormalFloat" },
MiniClueBorder = { link = "FloatBorder" },
MiniClueDescGroup = { link = "DiagnosticFloatingWarn" },
MiniClueDescSingle = { link = "NormalFloat" },
MiniClueNextKey = { link = "DiagnosticFloatingHint" },
MiniClueNextKeyWithPostkeys = { link = "DiagnosticFloatingError" },
MiniClueSeparator = { link = "DiagnosticFloatingInfo" },
MiniClueTitle = { bg = groups.panel, bold = styles.bold }, MiniClueTitle = { bg = groups.panel, bold = styles.bold },
MiniCompletionActiveParameter = { underline = true }, -- echasnovski/mini.pick
MiniCursorword = { underline = true },
MiniCursorwordCurrent = { underline = true },
MiniDepsChangeAdded = { fg = groups.git_add },
MiniDepsChangeRemoved = { fg = groups.git_delete },
MiniDepsHint = { link = "DiagnosticHint" },
MiniDepsInfo = { link = "DiagnosticInfo" },
MiniDepsMsgBreaking = { link = "DiagnosticWarn" },
MiniDepsPlaceholder = { link = "Comment" },
MiniDepsTitle = { link = "Title" },
MiniDepsTitleError = { link = "DiffDelete" },
MiniDepsTitleSame = { link = "DiffText" },
MiniDepsTitleUpdate = { link = "DiffAdd" },
MiniDiffOverAdd = { fg = groups.git_add, bg = groups.git_add, blend = 20 },
MiniDiffOverChange = { fg = groups.git_change, bg = groups.git_change, blend = 20 },
MiniDiffOverContext = { bg = palette.surface },
MiniDiffOverDelete = { fg = groups.git_delete, bg = groups.git_delete, blend = 20 },
MiniDiffSignAdd = { fg = groups.git_add },
MiniDiffSignChange = { fg = groups.git_change },
MiniDiffSignDelete = { fg = groups.git_delete },
MiniFilesBorder = { link = "FloatBorder" },
MiniFilesBorderModified = { link = "DiagnosticFloatingWarn" },
MiniFilesCursorLine = { link = "CursorLine" },
MiniFilesDirectory = { link = "Directory" },
MiniFilesFile = { fg = palette.text },
MiniFilesNormal = { link = "NormalFloat" },
MiniFilesTitle = { link = "FloatTitle" },
MiniFilesTitleFocused = { fg = palette.rose, bg = groups.panel, bold = styles.bold },
MiniHipatternsFixme = { fg = palette.base, bg = groups.error, bold = styles.bold },
MiniHipatternsHack = { fg = palette.base, bg = groups.warn, bold = styles.bold },
MiniHipatternsNote = { fg = palette.base, bg = groups.info, bold = styles.bold },
MiniHipatternsTodo = { fg = palette.base, bg = groups.hint, bold = styles.bold },
MiniIconsAzure = { fg = palette.foam },
MiniIconsBlue = { fg = palette.pine },
MiniIconsCyan = { fg = palette.foam },
MiniIconsGreen = { fg = palette.leaf },
MiniIconsGrey = { fg = palette.subtle },
MiniIconsOrange = { fg = palette.rose },
MiniIconsPurple = { fg = palette.iris },
MiniIconsRed = { fg = palette.love },
MiniIconsYellow = { fg = palette.gold },
MiniIndentscopeSymbol = { fg = palette.muted },
MiniIndentscopeSymbolOff = { fg = palette.gold },
MiniJump = { sp = palette.gold, undercurl = true },
MiniJump2dDim = { fg = palette.subtle },
MiniJump2dSpot = { fg = palette.gold, bold = styles.bold, nocombine = true },
MiniJump2dSpotAhead = { fg = palette.foam, bg = palette.surface, nocombine = true },
MiniJump2dSpotUnique = { fg = palette.rose, bold = styles.bold, nocombine = true },
MiniMapNormal = { link = "NormalFloat" },
MiniMapSymbolCount = { link = "Special" },
MiniMapSymbolLine = { link = "Title" },
MiniMapSymbolView = { link = "Delimiter" },
MiniNotifyBorder = { link = "FloatBorder" },
MiniNotifyNormal = { link = "NormalFloat" },
MiniNotifyTitle = { link = "FloatTitle" },
MiniOperatorsExchangeFrom = { link = "IncSearch" },
MiniPickBorder = { link = "FloatBorder" },
MiniPickBorderBusy = { link = "DiagnosticFloatingWarn" },
MiniPickBorderText = { bg = groups.panel }, MiniPickBorderText = { bg = groups.panel },
MiniPickIconDirectory = { link = "Directory" },
MiniPickIconFile = { link = "MiniPickNormal" },
MiniPickHeader = { link = "DiagnosticFloatingHint" },
MiniPickMatchCurrent = { link = "CursorLine" },
MiniPickMatchMarked = { link = "Visual" },
MiniPickMatchRanges = { fg = palette.foam },
MiniPickNormal = { link = "NormalFloat" },
MiniPickPreviewLine = { link = "CursorLine" },
MiniPickPreviewRegion = { link = "IncSearch" },
MiniPickPrompt = { bg = groups.panel, bold = styles.bold }, MiniPickPrompt = { bg = groups.panel, bold = styles.bold },
MiniStarterCurrent = { nocombine = true }, -- echasnovski/mini.indentscope
MiniStarterFooter = { fg = palette.subtle }, MiniIndentscopeSymbol = { fg = palette.muted },
MiniStarterHeader = { link = "Title" }, MiniIndentscopeSymbolOff = { fg = palette.muted },
MiniStarterInactive = { link = "Comment" },
MiniStarterItem = { link = "Normal" },
MiniStarterItemBullet = { link = "Delimiter" },
MiniStarterItemPrefix = { link = "WarningMsg" },
MiniStarterSection = { fg = palette.rose },
MiniStarterQuery = { link = "MoreMsg" },
MiniStatuslineDevinfo = { fg = palette.subtle, bg = palette.overlay },
MiniStatuslineFileinfo = { link = "MiniStatuslineDevinfo" },
MiniStatuslineFilename = { fg = palette.muted, bg = palette.surface },
MiniStatuslineInactive = { link = "MiniStatuslineFilename" },
MiniStatuslineModeCommand = { fg = palette.base, bg = palette.love, bold = styles.bold },
MiniStatuslineModeInsert = { fg = palette.base, bg = palette.foam, bold = styles.bold },
MiniStatuslineModeNormal = { fg = palette.base, bg = palette.rose, bold = styles.bold },
MiniStatuslineModeOther = { fg = palette.base, bg = palette.rose, bold = styles.bold },
MiniStatuslineModeReplace = { fg = palette.base, bg = palette.pine, bold = styles.bold },
MiniStatuslineModeVisual = { fg = palette.base, bg = palette.iris, bold = styles.bold },
MiniSurround = { link = "IncSearch" },
MiniTablineCurrent = { fg = palette.text, bg = palette.overlay, bold = styles.bold },
MiniTablineFill = { link = "TabLineFill" },
MiniTablineHidden = { fg = palette.subtle, bg = groups.panel },
MiniTablineModifiedCurrent = { fg = palette.overlay, bg = palette.text, bold = styles.bold },
MiniTablineModifiedHidden = { fg = groups.panel, bg = palette.subtle },
MiniTablineModifiedVisible = { fg = groups.panel, bg = palette.text },
MiniTablineTabpagesection = { link = "Search" },
MiniTablineVisible = { fg = palette.text, bg = groups.panel },
MiniTestEmphasis = { bold = styles.bold },
MiniTestFail = { fg = palette.love, bold = styles.bold },
MiniTestPass = { fg = palette.foam, bold = styles.bold },
MiniTrailspace = { bg = palette.love },
-- goolord/alpha-nvim -- goolord/alpha-nvim
AlphaButtons = { fg = palette.foam }, AlphaButtons = { fg = palette.foam },
@ -914,169 +709,14 @@ local function set_highlights()
-- github/copilot.vim -- github/copilot.vim
CopilotSuggestion = { fg = palette.muted, italic = styles.italic }, CopilotSuggestion = { fg = palette.muted, italic = styles.italic },
-- nvim-treesitter/nvim-treesitter-context
TreesitterContext = { bg = palette.overlay },
TreesitterContextLineNumber = { fg = palette.rose, bg = palette.overlay },
-- RRethy/vim-illuminate
IlluminatedWordRead = { link = "LspReferenceRead" },
IlluminatedWordText = { link = "LspReferenceText" },
IlluminatedWordWrite = { link = "LspReferenceWrite" },
-- HiPhish/rainbow-delimiters.nvim
RainbowDelimiterBlue = { fg = palette.pine },
RainbowDelimiterCyan = { fg = palette.foam },
RainbowDelimiterGreen = { fg = palette.leaf },
RainbowDelimiterOrange = { fg = palette.rose },
RainbowDelimiterRed = { fg = palette.love },
RainbowDelimiterViolet = { fg = palette.iris },
RainbowDelimiterYellow = { fg = palette.gold },
-- MeanderingProgrammer/render-markdown.nvim
RenderMarkdownBullet = { fg = palette.rose },
RenderMarkdownChecked = { fg = palette.foam },
RenderMarkdownCode = { bg = palette.overlay },
RenderMarkdownCodeInline = { fg = palette.text, bg = palette.overlay },
RenderMarkdownDash = { fg = palette.muted },
RenderMarkdownH1Bg = { bg = groups.h1, blend = 20 },
RenderMarkdownH2Bg = { bg = groups.h2, blend = 20 },
RenderMarkdownH3Bg = { bg = groups.h3, blend = 20 },
RenderMarkdownH4Bg = { bg = groups.h4, blend = 20 },
RenderMarkdownH5Bg = { bg = groups.h5, blend = 20 },
RenderMarkdownH6Bg = { bg = groups.h6, blend = 20 },
RenderMarkdownQuote = { fg = palette.subtle },
RenderMarkdownTableFill = { link = "Conceal" },
RenderMarkdownTableHead = { fg = palette.subtle },
RenderMarkdownTableRow = { fg = palette.subtle },
RenderMarkdownUnchecked = { fg = palette.subtle },
-- MagicDuck/grug-far.nvim
GrugFarHelpHeader = { fg = palette.pine },
GrugFarHelpHeaderKey = { fg = palette.gold },
GrugFarHelpWinActionKey = { fg = palette.gold },
GrugFarHelpWinActionPrefix = { fg = palette.foam },
GrugFarHelpWinActionText = { fg = palette.pine },
GrugFarHelpWinHeader = { link = "FloatTitle" },
GrugFarInputLabel = { fg = palette.foam },
GrugFarInputPlaceholder = { link = "Comment" },
GrugFarResultsActionMessage = { fg = palette.foam },
GrugFarResultsChangeIndicator = { fg = groups.git_change },
GrugFarResultsRemoveIndicator = { fg = groups.git_delete },
GrugFarResultsAddIndicator = { fg = groups.git_add },
GrugFarResultsHeader = { fg = palette.pine },
GrugFarResultsLineNo = { fg = palette.iris },
GrugFarResultsLineColumn = { link = "GrugFarResultsLineNo" },
GrugFarResultsMatch = { link = "CurSearch" },
GrugFarResultsPath = { fg = palette.foam },
GrugFarResultsStats = { fg = palette.iris },
-- yetone/avante.nvim
AvanteTitle = { fg = palette.highlight_high, bg = palette.rose },
AvanteReversedTitle = { fg = palette.rose },
AvanteSubtitle = { fg = palette.highlight_med, bg = palette.foam },
AvanteReversedSubtitle = { fg = palette.foam },
AvanteThirdTitle = { fg = palette.highlight_med, bg = palette.iris },
AvanteReversedThirdTitle = { fg = palette.iris },
AvantePromptInput = { fg = palette.text, bg = groups.panel },
AvantePromptInputBorder = { fg = groups.border },
-- Saghen/blink.cmp
BlinkCmpDoc = { bg = palette.highlight_low },
BlinkCmpDocSeparator = { bg = palette.highlight_low },
BlinkCmpDocBorder = { fg = palette.highlight_high },
BlinkCmpGhostText = { fg = palette.muted },
BlinkCmpLabel = { fg = palette.muted },
BlinkCmpLabelDeprecated = { fg = palette.muted, strikethrough = true },
BlinkCmpLabelMatch = { fg = palette.text, bold = styles.bold },
BlinkCmpDefault = { fg = palette.highlight_med },
BlinkCmpKindText = { fg = palette.pine },
BlinkCmpKindMethod = { fg = palette.foam },
BlinkCmpKindFunction = { fg = palette.foam },
BlinkCmpKindConstructor = { fg = palette.foam },
BlinkCmpKindField = { fg = palette.pine },
BlinkCmpKindVariable = { fg = palette.rose },
BlinkCmpKindClass = { fg = palette.gold },
BlinkCmpKindInterface = { fg = palette.gold },
BlinkCmpKindModule = { fg = palette.foam },
BlinkCmpKindProperty = { fg = palette.foam },
BlinkCmpKindUnit = { fg = palette.pine },
BlinkCmpKindValue = { fg = palette.love },
BlinkCmpKindKeyword = { fg = palette.iris },
BlinkCmpKindSnippet = { fg = palette.rose },
BlinkCmpKindColor = { fg = palette.love },
BlinkCmpKindFile = { fg = palette.foam },
BlinkCmpKindReference = { fg = palette.love },
BlinkCmpKindFolder = { fg = palette.foam },
BlinkCmpKindEnum = { fg = palette.foam },
BlinkCmpKindEnumMember = { fg = palette.foam },
BlinkCmpKindConstant = { fg = palette.gold },
BlinkCmpKindStruct = { fg = palette.foam },
BlinkCmpKindEvent = { fg = palette.foam },
BlinkCmpKindOperator = { fg = palette.foam },
BlinkCmpKindTypeParameter = { fg = palette.iris },
BlinkCmpKindCodeium = { fg = palette.foam },
BlinkCmpKindCopilot = { fg = palette.foam },
BlinkCmpKindSupermaven = { fg = palette.foam },
BlinkCmpKindTabNine = { fg = palette.foam },
-- folke/snacks.nvim
SnacksIndent = { fg = palette.overlay },
SnacksIndentChunk = { fg = palette.overlay },
SnacksIndentBlank = { fg = palette.overlay },
SnacksIndentScope = { fg = palette.foam },
SnacksPickerMatch = { fg = palette.rose, bold = styles.bold },
-- justinmk/vim-sneak
Sneak = { fg = palette.base, bg = palette.love },
SneakCurrent = { link = "StatusLineTerm" },
SneakScope = { link = "IncSearch" },
-- sindrets/diffview.nvim
DiffviewPrimary = { fg = palette.pine },
DiffviewSecondary = { fg = palette.foam },
DiffviewNormal = { fg = palette.text, bg = palette.surface },
DiffviewWinSeparator = { fg = palette.text, bg = palette.surface },
DiffviewFilePanelTitle = { fg = palette.foam, bold = styles.bold },
DiffviewFilePanelCounter = { fg = palette.rose },
DiffviewFilePanelRootPath = { fg = palette.foam, bold = styles.bold },
DiffviewFilePanelFileName = { fg = palette.text },
DiffviewFilePanelSelected = { fg = palette.gold },
DiffviewFilePanelPath = { link = "Comment" },
DiffviewFilePanelInsertions = { fg = groups.git_add },
DiffviewFilePanelDeletions = { fg = groups.git_delete },
DiffviewFilePanelConflicts = { fg = groups.git_merge },
DiffviewFolderName = { fg = palette.foam, bold = styles.bold },
DiffviewFolderSign = { fg = palette.subtle },
DiffviewHash = { fg = palette.rose },
DiffviewReference = { fg = palette.foam, bold = styles.bold },
DiffviewReflogSelector = { fg = palette.rose },
DiffviewStatusAdded = { fg = groups.git_add },
DiffviewStatusUntracked = { fg = groups.untracked },
DiffviewStatusModified = { fg = groups.git_change },
DiffviewStatusRenamed = { fg = groups.git_rename },
DiffviewStatusCopied = { fg = groups.untracked },
DiffviewStatusTypeChange = { fg = groups.git_change },
DiffviewStatusUnmerged = { fg = groups.git_change },
DiffviewStatusUnknown = { fg = groups.git_delete },
DiffviewStatusDeleted = { fg = groups.git_delete },
DiffviewStatusBroken = { fg = groups.git_delete },
DiffviewStatusIgnored = { fg = groups.git_ignore },
} }
local transparency_highlights = { local transparency_highlights = {
DiagnosticVirtualTextError = { fg = groups.error }, DiagnosticVirtualTextError = { fg = groups.error },
DiagnosticVirtualTextHint = { fg = groups.hint }, DiagnosticVirtualTextHint = { fg = groups.hint },
DiagnosticVirtualTextInfo = { fg = groups.info }, DiagnosticVirtualTextInfo = { fg = groups.info },
DiagnosticVirtualTextOk = { fg = groups.ok },
DiagnosticVirtualTextWarn = { fg = groups.warn }, DiagnosticVirtualTextWarn = { fg = groups.warn },
FloatBorder = { fg = palette.muted, bg = "NONE" }, FloatBorder = { fg = palette.muted, bg = "NONE" },
FloatTitle = { fg = palette.foam, bg = "NONE", bold = styles.bold },
Folded = { fg = palette.text, bg = "NONE" }, Folded = { fg = palette.text, bg = "NONE" },
NormalFloat = { bg = "NONE" }, NormalFloat = { bg = "NONE" },
Normal = { fg = palette.text, bg = "NONE" }, Normal = { fg = palette.text, bg = "NONE" },
@ -1086,12 +726,10 @@ local function set_highlights()
SignColumn = { fg = palette.text, bg = "NONE" }, SignColumn = { fg = palette.text, bg = "NONE" },
StatusLine = { fg = palette.subtle, bg = "NONE" }, StatusLine = { fg = palette.subtle, bg = "NONE" },
StatusLineNC = { fg = palette.muted, bg = "NONE" }, StatusLineNC = { fg = palette.muted, bg = "NONE" },
TabLine = { bg = "NONE", fg = palette.subtle },
TabLineFill = { bg = "NONE" }, TabLineFill = { bg = "NONE" },
TabLineSel = { fg = palette.text, bg = "NONE", bold = styles.bold }, TabLineSel = { fg = palette.text, bg = "NONE", bold = styles.bold },
-- ["@markup.raw"] = { bg = "none" }, -- ["@markup.raw"] = { bg = "none" },
["@markup.raw.markdown_inline"] = { fg = palette.gold },
-- ["@markup.raw.block"] = { bg = "none" }, -- ["@markup.raw.block"] = { bg = "none" },
TelescopeNormal = { fg = palette.subtle, bg = "NONE" }, TelescopeNormal = { fg = palette.subtle, bg = "NONE" },
@ -1099,22 +737,16 @@ local function set_highlights()
TelescopeSelection = { fg = palette.text, bg = "NONE", bold = styles.bold }, TelescopeSelection = { fg = palette.text, bg = "NONE", bold = styles.bold },
TelescopeSelectionCaret = { fg = palette.rose }, TelescopeSelectionCaret = { fg = palette.rose },
TroubleNormal = { bg = "NONE" },
WhichKeyFloat = { bg = "NONE" }, WhichKeyFloat = { bg = "NONE" },
WhichKeyNormal = { bg = "NONE" },
IblIndent = { fg = palette.overlay, bg = "NONE" }, IblIndent = { fg = palette.overlay, bg = "NONE" },
IblScope = { fg = palette.foam, bg = "NONE" }, IblScope = { fg = palette.foam, bg = "NONE" },
IblWhitespace = { fg = palette.overlay, bg = "NONE" }, IblWhitespace = { fg = palette.overlay, bg = "NONE" },
TreesitterContext = { bg = "NONE" }, MiniClueTitle = { bg = "NONE", bold = styles.bold },
TreesitterContextLineNumber = { fg = palette.rose, bg = "NONE" },
MiniFilesTitleFocused = { fg = palette.rose, bg = "NONE", bold = styles.bold },
MiniPickPrompt = { bg = "NONE", bold = styles.bold },
MiniPickBorderText = { bg = "NONE" }, MiniPickBorderText = { bg = "NONE" },
MiniPickPrompt = { bg = "NONE", bold = styles.bold },
} }
if config.options.enable.legacy_highlights then if config.options.enable.legacy_highlights then
@ -1135,12 +767,6 @@ local function set_highlights()
if config.options.highlight_groups ~= nil and next(config.options.highlight_groups) ~= nil then if config.options.highlight_groups ~= nil and next(config.options.highlight_groups) ~= nil then
for group, highlight in pairs(config.options.highlight_groups) do for group, highlight in pairs(config.options.highlight_groups) do
local existing = highlights[group] or {} local existing = highlights[group] or {}
-- Traverse link due to
-- "If link is used in combination with other attributes; only the link will take effect"
-- see: https://neovim.io/doc/user/api.html#nvim_set_hl()
while existing.link ~= nil do
existing = highlights[existing.link] or {}
end
local parsed = vim.tbl_extend("force", {}, highlight) local parsed = vim.tbl_extend("force", {}, highlight)
if highlight.fg ~= nil then if highlight.fg ~= nil then
@ -1154,10 +780,10 @@ local function set_highlights()
end end
if (highlight.inherit == nil or highlight.inherit) and existing ~= nil then if (highlight.inherit == nil or highlight.inherit) and existing ~= nil then
parsed.inherit = nil highlight.inherit = nil
highlights[group] = vim.tbl_extend("force", existing, parsed) highlights[group] = vim.tbl_extend("force", existing, parsed)
else else
parsed.inherit = nil highlight.inherit = nil
highlights[group] = parsed highlights[group] = parsed
end end
end end
@ -1167,18 +793,9 @@ local function set_highlights()
if config.options.before_highlight ~= nil then if config.options.before_highlight ~= nil then
config.options.before_highlight(group, highlight, palette) config.options.before_highlight(group, highlight, palette)
end end
if highlight.blend ~= nil and (highlight.blend >= 0 and highlight.blend <= 100) and highlight.bg ~= nil then if highlight.blend ~= nil and (highlight.blend >= 0 and highlight.blend <= 100) and highlight.bg ~= nil then
highlight.bg = utilities.blend(highlight.bg, highlight.blend_on or palette.base, highlight.blend / 100) highlight.bg = utilities.blend(highlight.bg, highlight.blend_on or palette.base, highlight.blend / 100)
end end
highlight.blend = nil
highlight.blend_on = nil
if highlight._nvim_blend ~= nil then
highlight.blend = highlight._nvim_blend
end
vim.api.nvim_set_hl(0, group, highlight) vim.api.nvim_set_hl(0, group, highlight)
end end
@ -1203,13 +820,9 @@ local function set_highlights()
-- Support StatusLineTerm & StatusLineTermNC from vim -- Support StatusLineTerm & StatusLineTermNC from vim
vim.cmd([[ vim.cmd([[
augroup rose-pine autocmd TermOpen * if &buftype=='terminal'
autocmd! \|setlocal winhighlight=StatusLine:StatusLineTerm,StatusLineNC:StatusLineTermNC
autocmd TermOpen * if &buftype=='terminal' \|else|setlocal winhighlight=|endif
\|setlocal winhighlight=StatusLine:StatusLineTerm,StatusLineNC:StatusLineTermNC
\|else|setlocal winhighlight=|endif
autocmd ColorSchemePre * autocmd! rose-pine
augroup END
]]) ]])
end end
end end
@ -1225,12 +838,6 @@ function M.colorscheme(variant)
end end
vim.g.colors_name = "rose-pine" vim.g.colors_name = "rose-pine"
if variant == "dawn" then
vim.o.background = "light"
elseif variant == "main" or variant == "moon" then
vim.o.background = "dark"
end
set_highlights() set_highlights()
end end

View file

@ -1,7 +1,7 @@
---@alias Variant "main" | "moon" | "dawn" ---@alias Variant "main" | "moon" | "dawn"
---@alias Palette { base: string, surface: string, overlay: string, muted: string, subtle: string, text: string, love: string, gold: string, rose: string, pine: string, foam: string, iris: string } ---@alias Palette { base: string, surface: string, overlay: string, muted: string, subtle: string, text: string, love: string, gold: string, rose: string, pine: string, foam: string, iris: string }
---@alias PaletteColor "base" | "surface" | "overlay" | "muted" | "subtle" | "text" | "love" | "gold" | "rose" | "pine" | "foam" | "iris" | "highlight_low" | "highlight_med" | "highlight_high" ---@alias PaletteColor "base" | "surface" | "overlay" | "muted" | "subtle" | "text" | "love" | "gold" | "rose" | "pine" | "foam" | "iris" | "highlight_low" | "highlight_med" | "highlight_high"
---@alias Highlight { link: string, inherit: boolean } | { fg: string, bg: string, sp: string, bold: boolean, italic: boolean, undercurl: boolean, underline: boolean, underdouble: boolean, underdotted: boolean, underdashed: boolean, strikethrough: boolean, inherit: boolean } ---@alias Highlight { fg: string, bg: string, sp: string, bold: boolean, italic: boolean, undercurl: boolean, underline: boolean, underdouble: boolean, underdotted: boolean, underdashed: boolean, strikethrough: boolean, inherit: boolean }
local config = {} local config = {}
@ -35,9 +35,6 @@ config.options = {
transparency = false, transparency = false,
}, },
---@type table<string, table<string, string>>
palette = {},
---@type table<string, string | PaletteColor> ---@type table<string, string | PaletteColor>
groups = { groups = {
border = "muted", border = "muted",
@ -47,10 +44,9 @@ config.options = {
error = "love", error = "love",
hint = "iris", hint = "iris",
info = "foam", info = "foam",
ok = "leaf",
warn = "gold",
note = "pine", note = "pine",
todo = "rose", todo = "rose",
warn = "gold",
git_add = "foam", git_add = "foam",
git_change = "rose", git_change = "rose",
@ -69,7 +65,7 @@ config.options = {
h3 = "rose", h3 = "rose",
h4 = "gold", h4 = "gold",
h5 = "pine", h5 = "pine",
h6 = "leaf", h6 = "foam",
---@deprecated Replaced by `options.highlight_groups["Normal"]` ---@deprecated Replaced by `options.highlight_groups["Normal"]`
-- background = "base", -- background = "base",
@ -137,21 +133,24 @@ local function migrate(options)
-- These never actually existed, but may be set intuitively by the user -- These never actually existed, but may be set intuitively by the user
-- because of `disable_italics` existing. -- because of `disable_italics` existing.
options.styles.bold = not (options.disable_bold or options.disable_bolds) and options.styles.bold or false options.styles.bold = (options.disable_bold or options.disable_bolds) and false or options.styles.bold
-- Similar to bold options, `disable_italic` never existed but could be a -- Similar to bold options, `disable_italic` never existed but could be a
-- common typo of the actual `disable_italics`. -- common typo of the actual `disable_italics`.
options.styles.italic = not (options.disable_italic or options.disable_italics) and options.styles.italic or false options.styles.italic = (options.disable_italic or options.disable_italics) and false or options.styles.italic
-- Set h1 through h6 to the same color if only one is specified -- Set h1 through h6 to the same color if only one is specified
if type(options.groups.headings) == "string" then if type(options.groups.headings) == "string" then
options.groups.h1 = options.groups.headings options.groups.headings = {
options.groups.h2 = options.groups.headings h1 = options.groups.headings,
options.groups.h3 = options.groups.headings h2 = options.groups.headings,
options.groups.h4 = options.groups.headings h3 = options.groups.headings,
options.groups.h5 = options.groups.headings h4 = options.groups.headings,
options.groups.h6 = options.groups.headings h5 = options.groups.headings,
elseif options.groups.headings == "table" then h6 = options.groups.headings,
}
end
if type(options.groups.headings) == "table" then
options.groups.h1 = options.groups.headings.h1 or options.groups.h1 options.groups.h1 = options.groups.headings.h1 or options.groups.h1
options.groups.h2 = options.groups.headings.h2 or options.groups.h2 options.groups.h2 = options.groups.headings.h2 or options.groups.h2
options.groups.h3 = options.groups.headings.h3 or options.groups.h3 options.groups.h3 = options.groups.headings.h3 or options.groups.h3
@ -159,7 +158,6 @@ local function migrate(options)
options.groups.h5 = options.groups.headings.h5 or options.groups.h5 options.groups.h5 = options.groups.headings.h5 or options.groups.h5
options.groups.h6 = options.groups.headings.h6 or options.groups.h6 options.groups.h6 = options.groups.headings.h6 or options.groups.h6
end end
options.groups.headings = nil
return options return options
end end

View file

@ -14,7 +14,6 @@ local variants = {
pine = "#31748f", pine = "#31748f",
foam = "#9ccfd8", foam = "#9ccfd8",
iris = "#c4a7e7", iris = "#c4a7e7",
leaf = "#95b1ac",
highlight_low = "#21202e", highlight_low = "#21202e",
highlight_med = "#403d52", highlight_med = "#403d52",
highlight_high = "#524f67", highlight_high = "#524f67",
@ -34,7 +33,6 @@ local variants = {
pine = "#3e8fb0", pine = "#3e8fb0",
foam = "#9ccfd8", foam = "#9ccfd8",
iris = "#c4a7e7", iris = "#c4a7e7",
leaf = "#95b1ac",
highlight_low = "#2a283e", highlight_low = "#2a283e",
highlight_med = "#44415a", highlight_med = "#44415a",
highlight_high = "#56526e", highlight_high = "#56526e",
@ -47,14 +45,13 @@ local variants = {
overlay = "#f2e9e1", overlay = "#f2e9e1",
muted = "#9893a5", muted = "#9893a5",
subtle = "#797593", subtle = "#797593",
text = "#464261", text = "#575279",
love = "#b4637a", love = "#b4637a",
gold = "#ea9d34", gold = "#ea9d34",
rose = "#d7827e", rose = "#d7827e",
pine = "#286983", pine = "#286983",
foam = "#56949f", foam = "#56949f",
iris = "#907aa9", iris = "#907aa9",
leaf = "#6d8f89",
highlight_low = "#f4ede8", highlight_low = "#f4ede8",
highlight_med = "#dfdad9", highlight_med = "#dfdad9",
highlight_high = "#cecacd", highlight_high = "#cecacd",
@ -62,15 +59,6 @@ local variants = {
}, },
} }
if options.palette ~= nil and next(options.palette) then
-- handle variant specific overrides
for variant_name, override_palette in pairs(options.palette) do
if variants[variant_name] then
variants[variant_name] = vim.tbl_extend("force", variants[variant_name], override_palette or {})
end
end
end
if variants[options.variant] ~= nil then if variants[options.variant] ~= nil then
return variants[options.variant] return variants[options.variant]
end end

View file

@ -2,43 +2,43 @@
--- https://github.com/akinsho/bufferline.nvim --- https://github.com/akinsho/bufferline.nvim
--- ---
--- @usage --- @usage
--- local highlights = require("rose-pine.plugins.bufferline") --- local highlights = require('rose-pine.plugins.bufferline')
--- require("bufferline").setup({ highlights = highlights }) --- require('bufferline').setup({ highlights = highlights })
local p = require("rose-pine.palette") local p = require("rose-pine.palette")
return { return {
-- fill = { -- fill = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- background = { -- background = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- tab = { -- tab = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
tab_selected = { tab_selected = {
fg = p.text, fg = p.text,
bg = p.overlay, bg = p.overlay,
}, },
-- tab_close = { -- tab_close = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- close_button = { -- close_button = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- close_button_visible = { -- close_button_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- close_button_selected = { -- close_button_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
buffer_visible = { buffer_visible = {
fg = p.subtle, fg = p.subtle,
@ -51,172 +51,172 @@ return {
italic = true, italic = true,
}, },
-- diagnostic = { -- diagnostic = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- diagnostic_visible = { -- diagnostic_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- diagnostic_selected = { -- diagnostic_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- }, -- },
-- info = { -- info = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- info_visible = { -- info_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- info_selected = { -- info_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- info_diagnostic = { -- info_diagnostic = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- info_diagnostic_visible = { -- info_diagnostic_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- info_diagnostic_selected = { -- info_diagnostic_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- warning = { -- warning = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- warning_visible = { -- warning_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- warning_selected = { -- warning_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- warning_diagnostic = { -- warning_diagnostic = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- warning_diagnostic_visible = { -- warning_diagnostic_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- warning_diagnostic_selected = { -- warning_diagnostic_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- sp = warning_diagnostic_fg, -- sp = warning_diagnostic_fg,
-- }, -- },
-- error = { -- error = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- error_visible = { -- error_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- error_selected = { -- error_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- error_diagnostic = { -- error_diagnostic = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- error_diagnostic_visible = { -- error_diagnostic_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- error_diagnostic_selected = { -- error_diagnostic_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- sp = "<color-value-here>", -- sp = '<color-value-here>',
-- }, -- },
-- modified = { -- modified = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- modified_visible = { -- modified_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- modified_selected = { -- modified_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- duplicate_selected = { -- duplicate_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- italic = true, -- italic = true,
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- duplicate_visible = { -- duplicate_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- italic = true, -- italic = true,
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- duplicate = { -- duplicate = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- italic = true, -- italic = true,
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- separator_selected = { -- separator_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- separator_visible = { -- separator_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- separator = { -- separator = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- indicator_selected = { -- indicator_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- }, -- },
-- pick_selected = { -- pick_selected = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- italic = true, -- italic = true,
-- }, -- },
-- pick_visible = { -- pick_visible = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- }, -- },
-- pick = { -- pick = {
-- fg = "<color-value-here>", -- fg = '<color-value-here>',
-- bg = "<color-value-here>", -- bg = '<color-value-here>',
-- bold = true, -- bold = true,
-- italic = true, -- italic = true,
-- }, -- },

View file

@ -2,7 +2,7 @@
--- https://github.com/NTBBloodbath/galaxyline.nvim --- https://github.com/NTBBloodbath/galaxyline.nvim
--- ---
--- @usage --- @usage
--- local highlights = require("rose-pine.plugins.galaxyline") --- local highlights = require('rose-pine.plugins.galaxyline')
local p = require("rose-pine.palette") local p = require("rose-pine.palette")

View file

@ -2,7 +2,7 @@
--- https://github.com/David-Kunz/markid --- https://github.com/David-Kunz/markid
--- ---
--- @usage --- @usage
--- local highlights = require("rose-pine.plugins.markid") --- local highlights = require('rose-pine.plugins.markid')
--- require("nvim-treesitter.configs").setup({ markid = { enable = true, colors = highlights } }) --- require("nvim-treesitter.configs").setup({ markid = { enable = true, colors = highlights } })
local p = require("rose-pine.palette") local p = require("rose-pine.palette")

View file

@ -1,14 +0,0 @@
--- Rosé Pine for Obsidian(epwalsh)
--- https://github.com/epwalsh/obsidian.nvim
---
--- @usage
--- local highlights = require("rose-pine.plugins.obsidian")
--- require("obsidian").setup({ ui = {hl_groups = highlights} })
local p = require("rose-pine.palette")
return {
ObsidianBullet = { fg = p.muted },
ObsidianRefText = { underline = true, fg = p.iris },
ObsidianDone = { bold = true, fg = p.foam }
}

View file

@ -2,8 +2,8 @@
--- https://github.com/akinsho/toggleterm.nvim --- https://github.com/akinsho/toggleterm.nvim
--- ---
--- @usage --- @usage
--- local highlights = require("rose-pine.plugins.toggleterm") --- local highlights = require('rose-pine.plugins.toggleterm')
--- require("toggleterm").setup({ highlights = highlights }) --- require('toggleterm').setup({ highlights = highlights })
return { return {
Normal = { link = "Normal" }, Normal = { link = "Normal" },

View file

@ -14,17 +14,10 @@ local function color_to_rgb(color)
return { byte(new_color, 16), byte(new_color, 8), byte(new_color, 0) } return { byte(new_color, 16), byte(new_color, 8), byte(new_color, 0) }
end end
local color_cache = {}
---@param color string Palette key or hex value ---@param color string Palette key or hex value
function utilities.parse_color(color) function utilities.parse_color(color)
if color_cache[color] then
return color_cache[color]
end
if color == nil then if color == nil then
print("Invalid color: " .. color) return print("Invalid color: " .. color)
return nil
end end
color = color:lower() color = color:lower()
@ -33,21 +26,13 @@ function utilities.parse_color(color)
color = require("rose-pine.palette")[color] or vim.api.nvim_get_color_by_name(color) color = require("rose-pine.palette")[color] or vim.api.nvim_get_color_by_name(color)
end end
color_cache[color] = color
return color return color
end end
local blend_cache = {}
---@param fg string Foreground color ---@param fg string Foreground color
---@param bg string Background color ---@param bg string Background color
---@param alpha number Between 0 (background) and 1 (foreground) ---@param alpha number Between 0 (background) and 1 (foreground)
function utilities.blend(fg, bg, alpha) function utilities.blend(fg, bg, alpha)
local cache_key = fg .. bg .. alpha
if blend_cache[cache_key] then
return blend_cache[cache_key]
end
local fg_rgb = color_to_rgb(fg) local fg_rgb = color_to_rgb(fg)
local bg_rgb = color_to_rgb(bg) local bg_rgb = color_to_rgb(bg)
@ -56,10 +41,7 @@ function utilities.blend(fg, bg, alpha)
return math.floor(math.min(math.max(0, ret), 255) + 0.5) return math.floor(math.min(math.max(0, ret), 255) + 0.5)
end end
local result = string.format("#%02X%02X%02X", blend_channel(1), blend_channel(2), blend_channel(3)) return string.format("#%02X%02X%02X", blend_channel(1), blend_channel(2), blend_channel(3))
blend_cache[cache_key] = result
return result
end end
return utilities return utilities

View file

@ -13,33 +13,18 @@
## Getting started ## Getting started
Install `rose-pine/neovim` using your favourite package manager: Install `rose-pine/neovim` using your favourite plugin manager:
### [pam.nvim](https://github.com/mvllow/pam.nvim) **paq-nvim**
```lua ```lua
{ source = "rose-pine/neovim", as = "rose-pine" } { 'rose-pine/neovim', as = 'rose-pine' }
``` ```
### [lazy.nvim](https://lazy.folke.io/installation) **lazy.nvim**
**Structured Setup**
```lua ```lua
-- lua/plugins/rose-pine.lua { 'rose-pine/neovim', name = 'rose-pine' }
return {
"rose-pine/neovim",
name = "rose-pine",
config = function()
vim.cmd("colorscheme rose-pine")
end
}
```
**Single file**
```lua
{ "rose-pine/neovim", name = "rose-pine" }
``` ```
## Gallery ## Gallery
@ -66,7 +51,7 @@ Rosé Pine has three variants: main, moon, and dawn. By default, `vim.o.backgrou
Colour values accept named colours from the [Rosé Pine palette](https://rosepinetheme.com/palette/ingredients/), e.g. "foam", or valid hex, e.g. "#fa8072". Colour values accept named colours from the [Rosé Pine palette](https://rosepinetheme.com/palette/ingredients/), e.g. "foam", or valid hex, e.g. "#fa8072".
```lua ```lua
require("rose-pine").setup({ require('rose-pine').setup({
variant = "auto", -- auto, main, moon, or dawn variant = "auto", -- auto, main, moon, or dawn
dark_variant = "main", -- main, moon, or dawn dark_variant = "main", -- main, moon, or dawn
dim_inactive_windows = false, dim_inactive_windows = false,
@ -74,8 +59,10 @@ require("rose-pine").setup({
enable = { enable = {
terminal = true, terminal = true,
legacy_highlights = true, -- Improve compatibility for previous versions of Neovim -- Improve compatibility for previous versions of Neovim
migrations = true, -- Handle deprecated options automatically legacy_highlights = true,
-- Handle deprecated options automatically
migrations = true,
}, },
styles = { styles = {
@ -115,21 +102,9 @@ require("rose-pine").setup({
h6 = "foam", h6 = "foam",
}, },
palette = {
-- Override the builtin palette per variant
-- moon = {
-- base = '#18191a',
-- overlay = '#363738',
-- },
},
-- NOTE: Highlight groups are extended (merged) by default. Disable this
-- per group via `inherit = false`
highlight_groups = { highlight_groups = {
-- Comment = { fg = "foam" }, -- Comment = { fg = "foam" },
-- StatusLine = { fg = "love", bg = "love", blend = 15 },
-- VertSplit = { fg = "muted", bg = "muted" }, -- VertSplit = { fg = "muted", bg = "muted" },
-- Visual = { fg = "base", bg = "text", inherit = false },
}, },
before_highlight = function(group, highlight, palette) before_highlight = function(group, highlight, palette)
@ -145,10 +120,10 @@ require("rose-pine").setup({
end, end,
}) })
vim.cmd("colorscheme rose-pine") vim.cmd('colorscheme rose-pine')
-- vim.cmd("colorscheme rose-pine-main") -- vim.cmd('colorscheme rose-pine-main')
-- vim.cmd("colorscheme rose-pine-moon") -- vim.cmd('colorscheme rose-pine-moon')
-- vim.cmd("colorscheme rose-pine-dawn") -- vim.cmd('colorscheme rose-pine-dawn')
``` ```
> [!NOTE] > [!NOTE]