diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 283165a..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
-end_of_line = lf
-indent_style = tab
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.{yaml,yml}]
-indent_size = 2
-indent_style = space
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
deleted file mode 100644
index cd69062..0000000
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ /dev/null
@@ -1,54 +0,0 @@
-name: Bug Report
-description: File a bug/issue
-title: "bug: "
-labels: [bug]
-body:
- - type: markdown
- attributes:
- value: |
- **Before** reporting an issue, make sure to read the [documentation](https://github.com/rose-pine/neovim) and search [existing issues](https://github.com/rose-pine/neovim/issues). Usage questions such as ***"How do I...?"*** belong in [Discussions](https://github.com/rose-pine/neovim/discussions) and will be closed.
- - type: input
- attributes:
- label: "Neovim version (nvim -v)"
- placeholder: "0.8.0 commit db1b0ee3b30f"
- validations:
- required: true
- - type: input
- attributes:
- label: "Terminal / multiplexer"
- placeholder: "Kitty / tmux"
- validations:
- required: true
- - type: textarea
- attributes:
- label: Describe the bug
- description: A clear and concise description of what the bug is. Please include screenshots if possible and any related errors you see in Neovim.
- validations:
- required: true
- - type: textarea
- attributes:
- label: Repro
- description: Minimal `init.lua` to reproduce this issue. Save as `repro.lua` and run with `nvim -u repro.lua`
- value: |
- vim.o.packpath = "/tmp/nvim/site"
-
- local plugins = {
- rose_pine = "https://github.com/rose-pine/neovim",
- -- ADD OTHER PLUGINS _NECESSARY_ TO REPRODUCE THE ISSUE
- }
-
- for name, url in pairs(plugins) do
- local install_path = "/tmp/nvim/site/pack/test/start/" .. name
- if vim.fn.isdirectory(install_path) == 0 then
- vim.fn.system({ "git", "clone", "--depth=1", url, install_path })
- end
- end
-
- require("rose-pine").setup({
- -- ADD ROSÉ PINE CONFIG THAT IS _NECESSARY_ TO REPRODUCE THE ISSUE
- })
-
- vim.cmd("colorscheme rose-pine")
- render: Lua
- validations:
- required: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
deleted file mode 100644
index bd9d3f6..0000000
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-name: Feature Request
-description: Suggest a new feature
-title: "feature: "
-labels: [enhancement]
-body:
- - type: textarea
- validations:
- required: true
- attributes:
- label: Describe the solution you'd like
- description: A clear and concise description of what you want to happen.
- - type: textarea
- validations:
- required: false
- attributes:
- label: Additional context
- description: Add any other context or screenshots about the feature request here.
diff --git a/.stylua.toml b/.stylua.toml
new file mode 100644
index 0000000..48e35ae
--- /dev/null
+++ b/.stylua.toml
@@ -0,0 +1,6 @@
+column_width = 100
+indent_type = "Tabs"
+indent_width = 3
+line_endings = "Unix"
+quote_style = "AutoPreferSingle"
+
diff --git a/changelog.md b/changelog.md
deleted file mode 100644
index bd583ba..0000000
--- a/changelog.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# Changelog
-
-## v2.0.0-next.1
-
-### What's new
-
-- Add proper support for `StatusLineTerm` & `StatusLineTermNC`, controlled via `enable.terminal`
-- Add background glow to diagnostic virtual text
-- Add `extend_background_behind_borders`
-- Add `styles.bold` and alternatively styling when disabled
-- Add `before_highlight` hook to allow changing palette values and behaviours
-- Increase contrast of search, visual selections, and more
-
-### Features
-
-**extend_background_behind_borders**
-
-Extend float backgrounds behind borders. Results vary depending on your border characters.
-
-```lua
-{
- extend_background_behind_borders = true
-}
-```
-
-**styles.transparency**
-
-Enable a unique experience focused around transparent terminals, avoiding large backgrounds and differentiating selections with foreground colours when possible.
-
-```lua
-{
- styles = {
- transparency = true
- }
-}
-```
-
-**before_highlight**
-
-```lua
-{
- before_highlight = function(group, highlight, palette)
- -- Disable all undercurls
- if highlight.undercurl then
- highlight.undercurl = false
- end
-
- -- Change palette colour
- if highlight.fg == palette.pine then
- highlight.fg = palette.foam
- end
- end,
-}
-```
-
-### Breaking changes
-
-> [!WARNING]
-> Removed or renamed options should continue to work via internal migrations but backwards compatibility is not tested and may break at any time.
-
-```diff
-- dim_nc_background = true,
-+ dim_inactive_windows = true,
-
-- disable_background = true,
-- disable_float_background = true,
-+ styles.transparency = true
-
-- disable_italics = true,
-+ styles.italic = false,
-
-- groups = {
-- background = "...",
-- comment = "...",
-- punctuation = "...",
-- },
-+ highlight_groups = {
-+ Normal = { bg = "..." },
-+ Comment = { fg = "..." },
-+ ["@punctuation"] = { fg = "..." },
-+ }
-```
diff --git a/colors/rose-pine-dawn.lua b/colors/rose-pine-dawn.lua
deleted file mode 100644
index a95b327..0000000
--- a/colors/rose-pine-dawn.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-package.loaded["rose-pine.palette"] = nil
-require("rose-pine").colorscheme("dawn")
diff --git a/colors/rose-pine-main.lua b/colors/rose-pine-main.lua
deleted file mode 100644
index 15729c9..0000000
--- a/colors/rose-pine-main.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-package.loaded["rose-pine.palette"] = nil
-require("rose-pine").colorscheme("main")
diff --git a/colors/rose-pine-moon.lua b/colors/rose-pine-moon.lua
deleted file mode 100644
index 34b58c0..0000000
--- a/colors/rose-pine-moon.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-package.loaded["rose-pine.palette"] = nil
-require("rose-pine").colorscheme("moon")
diff --git a/colors/rose-pine.lua b/colors/rose-pine.lua
deleted file mode 100644
index f705290..0000000
--- a/colors/rose-pine.lua
+++ /dev/null
@@ -1,2 +0,0 @@
-package.loaded["rose-pine.palette"] = nil
-require("rose-pine").colorscheme()
diff --git a/colors/rose-pine.vim b/colors/rose-pine.vim
new file mode 100644
index 0000000..af1ddba
--- /dev/null
+++ b/colors/rose-pine.vim
@@ -0,0 +1,6 @@
+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/license b/license
deleted file mode 100644
index 590df78..0000000
--- a/license
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Rosé Pine
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/lua/lualine/themes/rose-pine-alt.lua b/lua/lualine/themes/rose-pine-alt.lua
index 287144f..1e1ee36 100644
--- a/lua/lualine/themes/rose-pine-alt.lua
+++ b/lua/lualine/themes/rose-pine-alt.lua
@@ -1,32 +1,26 @@
-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
+local p = require('rose-pine.palette')
return {
normal = {
- a = { bg = p.surface, fg = p.rose, gui = "bold" },
+ a = { bg = p.surface, fg = p.rose, gui = 'bold' },
b = { bg = p.surface, fg = p.text },
- c = { bg = p.surface, fg = p.subtle, gui = "italic" },
+ c = { bg = p.surface, fg = p.subtle, gui = 'italic' },
},
insert = {
- a = { bg = p.surface, fg = p.foam, gui = "bold" },
+ a = { bg = p.surface, fg = p.foam, gui = 'bold' },
},
visual = {
- a = { bg = p.surface, fg = p.iris, gui = "bold" },
+ a = { bg = p.surface, fg = p.iris, gui = 'bold' },
},
replace = {
- a = { bg = p.surface, fg = p.pine, gui = "bold" },
+ a = { bg = p.surface, fg = p.pine, gui = 'bold' },
},
command = {
- a = { bg = p.surface, fg = p.love, gui = "bold" },
+ a = { bg = p.surface, fg = p.love, gui = 'bold' },
},
inactive = {
- a = { bg = bg_base, fg = p.subtle, gui = "bold" },
- b = { bg = bg_base, fg = p.subtle },
- c = { bg = bg_base, fg = p.subtle, gui = "italic" },
+ a = { bg = p.base, fg = p.subtle, gui = 'bold' },
+ b = { bg = p.base, fg = p.subtle },
+ c = { bg = p.base, fg = p.subtle, gui = 'italic' },
},
}
diff --git a/lua/lualine/themes/rose-pine.lua b/lua/lualine/themes/rose-pine.lua
index e409130..dde3075 100644
--- a/lua/lualine/themes/rose-pine.lua
+++ b/lua/lualine/themes/rose-pine.lua
@@ -1,40 +1,34 @@
-local p = require("rose-pine.palette")
-local config = require("rose-pine.config")
-
-local bg_base = p.surface
-if config.options.styles.transparency then
- bg_base = "NONE"
-end
+local p = require('rose-pine.palette')
return {
normal = {
- a = { bg = p.rose, fg = p.base, gui = "bold" },
+ a = { bg = p.rose, fg = p.base, gui = 'bold' },
b = { bg = p.overlay, fg = p.rose },
- c = { bg = bg_base, fg = p.text },
+ c = { bg = p.base, fg = p.text },
},
insert = {
- a = { bg = p.foam, fg = p.base, gui = "bold" },
+ a = { bg = p.foam, fg = p.base, gui = 'bold' },
b = { bg = p.overlay, fg = p.foam },
- c = { bg = bg_base, fg = p.text },
+ c = { bg = p.base, fg = p.text },
},
visual = {
- a = { bg = p.iris, fg = p.base, gui = "bold" },
+ a = { bg = p.iris, fg = p.base, gui = 'bold' },
b = { bg = p.overlay, fg = p.iris },
- c = { bg = bg_base, fg = p.text },
+ c = { bg = p.base, fg = p.text },
},
replace = {
- a = { bg = p.pine, fg = p.base, gui = "bold" },
+ a = { bg = p.pine, fg = p.base, gui = 'bold' },
b = { bg = p.overlay, fg = p.pine },
- c = { bg = bg_base, fg = p.text },
+ c = { bg = p.base, fg = p.text },
},
command = {
- a = { bg = p.love, fg = p.base, gui = "bold" },
+ a = { bg = p.love, fg = p.base, gui = 'bold' },
b = { bg = p.overlay, fg = p.love },
- c = { bg = bg_base, fg = p.text },
+ c = { bg = p.base, fg = p.text },
},
inactive = {
- a = { bg = bg_base, fg = p.muted, gui = "bold" },
- b = { bg = bg_base, fg = p.muted },
- c = { bg = bg_base, fg = p.muted },
+ a = { bg = p.base, fg = p.muted, gui = 'bold' },
+ b = { bg = p.base, fg = p.muted },
+ c = { bg = p.base, fg = p.muted },
},
}
diff --git a/lua/rose-pine.lua b/lua/rose-pine.lua
deleted file mode 100644
index f10ffcd..0000000
--- a/lua/rose-pine.lua
+++ /dev/null
@@ -1,1242 +0,0 @@
-local M = {}
-local config = require("rose-pine.config")
-
-local function set_highlights()
- local utilities = require("rose-pine.utilities")
- local palette = require("rose-pine.palette")
- local styles = config.options.styles
-
- local groups = {}
- for group, color in pairs(config.options.groups) do
- groups[group] = utilities.parse_color(color)
- end
-
- local function make_border(fg)
- fg = fg or groups.border
- return {
- fg = fg,
- bg = (config.options.extend_background_behind_borders and not styles.transparency) and palette.surface
- or "NONE",
- }
- end
-
- local highlights = {}
- local legacy_highlights = {
- ["@attribute.diff"] = { fg = palette.gold },
- ["@boolean"] = { link = "Boolean" },
- ["@class"] = { fg = palette.foam },
- ["@conditional"] = { link = "Conditional" },
- ["@field"] = { fg = palette.foam },
- ["@include"] = { link = "Include" },
- ["@interface"] = { fg = palette.foam },
- ["@macro"] = { link = "Macro" },
- ["@method"] = { fg = palette.rose },
- ["@namespace"] = { link = "Include" },
- ["@number"] = { link = "Number" },
- ["@parameter"] = { fg = palette.iris, italic = styles.italic },
- ["@preproc"] = { link = "PreProc" },
- ["@punctuation"] = { fg = palette.subtle },
- ["@punctuation.bracket"] = { link = "@punctuation" },
- ["@punctuation.delimiter"] = { link = "@punctuation" },
- ["@punctuation.special"] = { link = "@punctuation" },
- ["@regexp"] = { link = "String" },
- ["@repeat"] = { link = "Repeat" },
- ["@storageclass"] = { link = "StorageClass" },
- ["@symbol"] = { link = "Identifier" },
- ["@text"] = { fg = palette.text },
- ["@text.danger"] = { fg = groups.error },
- ["@text.diff.add"] = { fg = groups.git_add, bg = groups.git_add, blend = 20 },
- ["@text.diff.delete"] = { fg = groups.git_delete, bg = groups.git_delete, blend = 20 },
- ["@text.emphasis"] = { italic = styles.italic },
- ["@text.environment"] = { link = "Macro" },
- ["@text.environment.name"] = { link = "Type" },
- ["@text.math"] = { link = "Special" },
- ["@text.note"] = { link = "SpecialComment" },
- ["@text.strike"] = { strikethrough = true },
- ["@text.strong"] = { bold = styles.bold },
- ["@text.title"] = { link = "Title" },
- ["@text.title.1.markdown"] = { link = "markdownH1" },
- ["@text.title.1.marker.markdown"] = { link = "markdownH1Delimiter" },
- ["@text.title.2.markdown"] = { link = "markdownH2" },
- ["@text.title.2.marker.markdown"] = { link = "markdownH2Delimiter" },
- ["@text.title.3.markdown"] = { link = "markdownH3" },
- ["@text.title.3.marker.markdown"] = { link = "markdownH3Delimiter" },
- ["@text.title.4.markdown"] = { link = "markdownH4" },
- ["@text.title.4.marker.markdown"] = { link = "markdownH4Delimiter" },
- ["@text.title.5.markdown"] = { link = "markdownH5" },
- ["@text.title.5.marker.markdown"] = { link = "markdownH5Delimiter" },
- ["@text.title.6.markdown"] = { link = "markdownH6" },
- ["@text.title.6.marker.markdown"] = { link = "markdownH6Delimiter" },
- ["@text.underline"] = { underline = true },
- ["@text.uri"] = { fg = groups.link },
- ["@text.warning"] = { fg = groups.warn },
- ["@todo"] = { link = "Todo" },
-
- -- lukas-reineke/indent-blankline.nvim
- IndentBlanklineChar = { fg = palette.muted, nocombine = true },
- IndentBlanklineSpaceChar = { fg = palette.muted, nocombine = true },
- IndentBlanklineSpaceCharBlankline = { fg = palette.muted, nocombine = true },
- }
- local default_highlights = {
- ColorColumn = { bg = palette.surface },
- Conceal = { bg = "NONE" },
- CurSearch = { fg = palette.base, bg = palette.gold },
- Cursor = { fg = palette.text, bg = palette.highlight_high },
- CursorColumn = { bg = palette.overlay },
- -- CursorIM = {},
- CursorLine = { bg = palette.overlay },
- CursorLineNr = { fg = palette.text, bold = styles.bold },
- -- DarkenedPanel = { },
- -- DarkenedStatusline = {},
- DiffAdd = { bg = groups.git_add, blend = 20 },
- DiffChange = { bg = groups.git_change, blend = 20 },
- DiffDelete = { bg = groups.git_delete, blend = 20 },
- DiffText = { bg = groups.git_text, blend = 40 },
- diffAdded = { link = "DiffAdd" },
- diffChanged = { link = "DiffChange" },
- diffRemoved = { link = "DiffDelete" },
- Directory = { fg = palette.foam, bold = styles.bold },
- -- EndOfBuffer = {},
- ErrorMsg = { fg = groups.error, bold = styles.bold },
- FloatBorder = make_border(),
- FloatTitle = { fg = palette.foam, bg = groups.panel, bold = styles.bold },
- FoldColumn = { fg = palette.muted },
- Folded = { fg = palette.text, bg = groups.panel },
- IncSearch = { link = "CurSearch" },
- LineNr = { fg = palette.muted },
- MatchParen = { fg = palette.pine, bg = palette.pine, blend = 25 },
- ModeMsg = { fg = palette.subtle },
- MoreMsg = { fg = palette.iris },
- NonText = { fg = palette.muted },
- Normal = { fg = palette.text, bg = palette.base },
- NormalFloat = { bg = groups.panel },
- NormalNC = { fg = palette.text, bg = config.options.dim_inactive_windows and palette._nc or palette.base },
- NvimInternalError = { link = "ErrorMsg" },
- Pmenu = { fg = palette.subtle, bg = groups.panel },
- PmenuExtra = { fg = palette.muted, bg = groups.panel },
- PmenuExtraSel = { fg = palette.subtle, bg = palette.overlay },
- PmenuKind = { fg = palette.foam, bg = groups.panel },
- PmenuKindSel = { fg = palette.subtle, bg = palette.overlay },
- PmenuSbar = { bg = groups.panel },
- PmenuSel = { fg = palette.text, bg = palette.overlay },
- PmenuThumb = { bg = palette.muted },
- Question = { fg = palette.gold },
- QuickFixLine = { fg = palette.foam },
- -- RedrawDebugNormal = {},
- RedrawDebugClear = { fg = palette.base, bg = palette.gold },
- RedrawDebugComposed = { fg = palette.base, bg = palette.pine },
- RedrawDebugRecompose = { fg = palette.base, bg = palette.love },
- Search = { fg = palette.text, bg = palette.gold, blend = 20 },
- SignColumn = { fg = palette.text, bg = "NONE" },
- SpecialKey = { fg = palette.foam },
- SpellBad = { sp = palette.subtle, undercurl = true },
- SpellCap = { sp = palette.subtle, undercurl = true },
- SpellLocal = { sp = palette.subtle, undercurl = true },
- SpellRare = { sp = palette.subtle, undercurl = true },
- StatusLine = { fg = palette.subtle, bg = groups.panel },
- StatusLineNC = { fg = palette.muted, bg = groups.panel, blend = 60 },
- StatusLineTerm = { fg = palette.base, bg = palette.pine },
- StatusLineTermNC = { fg = palette.base, bg = palette.pine, blend = 60 },
- Substitute = { link = "IncSearch" },
- TabLine = { fg = palette.subtle, bg = groups.panel },
- TabLineFill = { bg = groups.panel },
- TabLineSel = { fg = palette.text, bg = palette.overlay, bold = styles.bold },
- Title = { fg = palette.foam, bold = styles.bold },
- VertSplit = { fg = groups.border },
- Visual = { bg = palette.iris, blend = 15 },
- -- VisualNOS = {},
- WarningMsg = { fg = groups.warn, bold = styles.bold },
- -- Whitespace = {},
- WildMenu = { link = "IncSearch" },
- WinBar = { fg = palette.subtle, bg = groups.panel },
- WinBarNC = { fg = palette.muted, bg = groups.panel, blend = 60 },
- WinSeparator = { fg = groups.border },
-
- DiagnosticError = { fg = groups.error },
- DiagnosticHint = { fg = groups.hint },
- DiagnosticInfo = { fg = groups.info },
- DiagnosticOk = { fg = groups.ok },
- DiagnosticWarn = { fg = groups.warn },
- DiagnosticDefaultError = { link = "DiagnosticError" },
- DiagnosticDefaultHint = { link = "DiagnosticHint" },
- DiagnosticDefaultInfo = { link = "DiagnosticInfo" },
- DiagnosticDefaultOk = { link = "DiagnosticOk" },
- DiagnosticDefaultWarn = { link = "DiagnosticWarn" },
- DiagnosticFloatingError = { link = "DiagnosticError" },
- DiagnosticFloatingHint = { link = "DiagnosticHint" },
- DiagnosticFloatingInfo = { link = "DiagnosticInfo" },
- DiagnosticFloatingOk = { link = "DiagnosticOk" },
- DiagnosticFloatingWarn = { link = "DiagnosticWarn" },
- DiagnosticSignError = { link = "DiagnosticError" },
- DiagnosticSignHint = { link = "DiagnosticHint" },
- DiagnosticSignInfo = { link = "DiagnosticInfo" },
- DiagnosticSignOk = { link = "DiagnosticOk" },
- DiagnosticSignWarn = { link = "DiagnosticWarn" },
- DiagnosticUnderlineError = { sp = groups.error, undercurl = true },
- DiagnosticUnderlineHint = { sp = groups.hint, undercurl = true },
- DiagnosticUnderlineInfo = { sp = groups.info, undercurl = true },
- DiagnosticUnderlineOk = { sp = groups.ok, undercurl = true },
- DiagnosticUnderlineWarn = { sp = groups.warn, undercurl = true },
- DiagnosticVirtualTextError = { fg = groups.error, bg = groups.error, blend = 10 },
- DiagnosticVirtualTextHint = { fg = groups.hint, bg = groups.hint, 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 },
-
- Boolean = { fg = palette.rose },
- Character = { fg = palette.gold },
- Comment = { fg = palette.subtle, italic = styles.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.text },
- Include = { fg = palette.pine },
- Keyword = { fg = palette.pine },
- Label = { fg = palette.foam },
- LspCodeLens = { fg = palette.subtle },
- LspCodeLensSeparator = { fg = palette.muted },
- LspInlayHint = { fg = palette.muted, bg = palette.muted, blend = 10 },
- LspReferenceRead = { bg = palette.highlight_med },
- LspReferenceText = { bg = palette.highlight_med },
- LspReferenceWrite = { bg = palette.highlight_med },
- Macro = { fg = palette.iris },
- Number = { fg = palette.gold },
- Operator = { fg = palette.subtle },
- PreCondit = { fg = palette.iris },
- PreProc = { link = "PreCondit" },
- Repeat = { fg = palette.pine },
- Special = { fg = palette.foam },
- SpecialChar = { link = "Special" },
- SpecialComment = { fg = palette.iris },
- Statement = { fg = palette.pine, bold = styles.bold },
- StorageClass = { fg = palette.foam },
- String = { fg = palette.gold },
- Structure = { fg = palette.foam },
- Tag = { fg = palette.foam },
- Todo = { fg = palette.rose, bg = palette.rose, blend = 20 },
- Type = { fg = palette.foam },
- TypeDef = { link = "Type" },
- Underlined = { fg = palette.iris, underline = true },
-
- healthError = { fg = groups.error },
- healthSuccess = { fg = groups.info },
- healthWarning = { fg = groups.warn },
-
- htmlArg = { fg = palette.iris },
- htmlBold = { bold = styles.bold },
- htmlEndTag = { fg = palette.subtle },
- htmlH1 = { link = "markdownH1" },
- htmlH2 = { link = "markdownH2" },
- htmlH3 = { link = "markdownH3" },
- htmlH4 = { link = "markdownH4" },
- htmlH5 = { link = "markdownH5" },
- htmlItalic = { italic = styles.italic },
- htmlLink = { link = "markdownUrl" },
- htmlTag = { fg = palette.subtle },
- htmlTagN = { fg = palette.text },
- htmlTagName = { fg = palette.foam },
-
- markdownDelimiter = { fg = palette.subtle },
- markdownH1 = { fg = groups.h1, bold = styles.bold },
- markdownH1Delimiter = { link = "markdownH1" },
- markdownH2 = { fg = groups.h2, bold = styles.bold },
- markdownH2Delimiter = { link = "markdownH2" },
- markdownH3 = { fg = groups.h3, bold = styles.bold },
- markdownH3Delimiter = { link = "markdownH3" },
- markdownH4 = { fg = groups.h4, bold = styles.bold },
- markdownH4Delimiter = { link = "markdownH4" },
- markdownH5 = { fg = groups.h5, bold = styles.bold },
- markdownH5Delimiter = { link = "markdownH5" },
- markdownH6 = { fg = groups.h6, bold = styles.bold },
- markdownH6Delimiter = { link = "markdownH6" },
- markdownLinkText = { link = "markdownUrl" },
- markdownUrl = { fg = groups.link, sp = groups.link, underline = true },
-
- mkdCode = { fg = palette.foam, italic = styles.italic },
- mkdCodeDelimiter = { fg = palette.rose },
- mkdCodeEnd = { fg = palette.foam },
- mkdCodeStart = { fg = palette.foam },
- mkdFootnotes = { fg = palette.foam },
- mkdID = { fg = palette.foam, underline = true },
- mkdInlineURL = { link = "markdownUrl" },
- mkdLink = { link = "markdownUrl" },
- mkdLinkDef = { link = "markdownUrl" },
- mkdListItemLine = { fg = palette.text },
- mkdRule = { fg = palette.subtle },
- mkdURL = { link = "markdownUrl" },
-
- --- Treesitter
- --- |:help treesitter-highlight-groups|
- ["@variable"] = { fg = palette.text, italic = styles.italic },
- ["@variable.builtin"] = { fg = palette.love, italic = styles.italic, bold = styles.bold },
- ["@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 },
-
- ["@constant"] = { fg = palette.gold },
- ["@constant.builtin"] = { fg = palette.gold, bold = styles.bold },
- ["@constant.macro"] = { fg = palette.gold },
-
- ["@module"] = { fg = palette.text },
- ["@module.builtin"] = { fg = palette.text, bold = styles.bold },
- ["@label"] = { link = "Label" },
-
- ["@string"] = { link = "String" },
- -- ["@string.documentation"] = {},
- ["@string.regexp"] = { fg = palette.iris },
- ["@string.escape"] = { fg = palette.pine },
- ["@string.special"] = { link = "String" },
- ["@string.special.symbol"] = { link = "Identifier" },
- ["@string.special.url"] = { fg = groups.link },
- -- ["@string.special.path"] = {},
-
- ["@character"] = { link = "Character" },
- ["@character.special"] = { link = "Character" },
-
- ["@boolean"] = { link = "Boolean" },
- ["@number"] = { link = "Number" },
- ["@number.float"] = { link = "Number" },
- ["@float"] = { link = "Number" },
-
- ["@type"] = { fg = palette.foam },
- ["@type.builtin"] = { fg = palette.foam, bold = styles.bold },
- -- ["@type.definition"] = {},
-
- ["@attribute"] = { fg = palette.iris },
- ["@attribute.builtin"] = { fg = palette.iris, bold = styles.bold },
- ["@property"] = { fg = palette.foam, italic = styles.italic },
-
- ["@function"] = { fg = palette.rose },
- ["@function.builtin"] = { fg = palette.rose, bold = styles.bold },
- -- ["@function.call"] = {},
- ["@function.macro"] = { link = "Function" },
-
- ["@function.method"] = { fg = palette.rose },
- ["@function.method.call"] = { fg = palette.iris },
-
- ["@constructor"] = { fg = palette.foam },
- ["@operator"] = { link = "Operator" },
-
- ["@keyword"] = { link = "Keyword" },
- -- ["@keyword.coroutine"] = {},
- -- ["@keyword.function"] = {},
- ["@keyword.operator"] = { fg = palette.subtle },
- ["@keyword.import"] = { fg = palette.pine },
- ["@keyword.storage"] = { fg = palette.foam },
- ["@keyword.repeat"] = { fg = palette.pine },
- ["@keyword.return"] = { fg = palette.pine },
- ["@keyword.debug"] = { fg = palette.rose },
- ["@keyword.exception"] = { fg = palette.pine },
-
- ["@keyword.conditional"] = { fg = palette.pine },
- ["@keyword.conditional.ternary"] = { fg = palette.pine },
-
- ["@keyword.directive"] = { fg = palette.iris },
- ["@keyword.directive.define"] = { fg = palette.iris },
-
- --- Punctuation
- ["@punctuation.delimiter"] = { fg = palette.subtle },
- ["@punctuation.bracket"] = { fg = palette.subtle },
- ["@punctuation.special"] = { fg = palette.subtle },
-
- --- Comments
- ["@comment"] = { link = "Comment" },
- -- ["@comment.documentation"] = {},
-
- ["@comment.error"] = { fg = groups.error },
- ["@comment.warning"] = { fg = groups.warn },
- ["@comment.todo"] = { fg = groups.todo, bg = groups.todo, blend = 15 },
- ["@comment.hint"] = { fg = groups.hint, bg = groups.hint, blend = 15 },
- ["@comment.info"] = { fg = groups.info, bg = groups.info, blend = 15 },
- ["@comment.note"] = { fg = groups.note, bg = groups.note, blend = 15 },
-
- --- Markup
- ["@markup.strong"] = { bold = styles.bold },
- ["@markup.italic"] = { italic = styles.italic },
- ["@markup.strikethrough"] = { strikethrough = true },
- ["@markup.underline"] = { underline = true },
-
- ["@markup.heading"] = { fg = palette.foam, bold = styles.bold },
-
- ["@markup.quote"] = { fg = palette.text },
- ["@markup.math"] = { link = "Special" },
- ["@markup.environment"] = { link = "Macro" },
- ["@markup.environment.name"] = { link = "@type" },
-
- -- ["@markup.link"] = {},
- ["@markup.link.markdown_inline"] = { fg = palette.subtle },
- ["@markup.link.label.markdown_inline"] = { fg = palette.foam },
- ["@markup.link.url"] = { fg = groups.link },
-
- -- ["@markup.raw"] = { bg = palette.surface },
- -- ["@markup.raw.block"] = { bg = palette.surface },
- ["@markup.raw.delimiter.markdown"] = { fg = palette.subtle },
-
- ["@markup.list"] = { fg = palette.pine },
- ["@markup.list.checked"] = { fg = palette.foam, bg = palette.foam, blend = 10 },
- ["@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.minus"] = { fg = groups.git_delete, bg = groups.git_delete, blend = 20 },
- ["@diff.delta"] = { bg = groups.git_change, blend = 20 },
-
- ["@tag"] = { link = "Tag" },
- ["@tag.attribute"] = { fg = palette.iris },
- ["@tag.delimiter"] = { fg = palette.subtle },
-
- --- Non-highlighting captures
- -- ["@none"] = {},
- ["@conceal"] = { link = "Conceal" },
- ["@conceal.markdown"] = { fg = palette.subtle },
-
- -- ["@spell"] = {},
- -- ["@nospell"] = {},
-
- --- Semantic
- ["@lsp.type.comment"] = {},
- ["@lsp.type.comment.c"] = { link = "@comment" },
- ["@lsp.type.comment.cpp"] = { link = "@comment" },
- ["@lsp.type.enum"] = { link = "@type" },
- ["@lsp.type.interface"] = { link = "@interface" },
- ["@lsp.type.keyword"] = { link = "@keyword" },
- ["@lsp.type.namespace"] = { link = "@namespace" },
- ["@lsp.type.namespace.python"] = { link = "@variable" },
- ["@lsp.type.parameter"] = { link = "@parameter" },
- ["@lsp.type.property"] = { link = "@property" },
- ["@lsp.type.variable"] = {}, -- defer to treesitter for regular variables
- ["@lsp.type.variable.svelte"] = { link = "@variable" },
- ["@lsp.typemod.function.defaultLibrary"] = { link = "@function.builtin" },
- ["@lsp.typemod.operator.injected"] = { link = "@operator" },
- ["@lsp.typemod.string.injected"] = { link = "@string" },
- ["@lsp.typemod.variable.constant"] = { link = "@constant" },
- ["@lsp.typemod.variable.defaultLibrary"] = { link = "@variable.builtin" },
- ["@lsp.typemod.variable.injected"] = { link = "@variable" },
-
- --- Plugins
- -- 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 = "NONE", bg = "NONE" },
- 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 = groups.git_add, bg = "NONE" },
- GitSignsChange = { fg = groups.git_change, bg = "NONE" },
- GitSignsDelete = { fg = groups.git_delete, bg = "NONE" },
- SignAdd = { fg = groups.git_add, bg = "NONE" },
- SignChange = { fg = groups.git_change, bg = "NONE" },
- SignDelete = { fg = groups.git_delete, bg = "NONE" },
-
- -- mvllow/modes.nvim
- ModesCopy = { bg = palette.gold },
- ModesDelete = { bg = palette.love },
- ModesFormat = { bg = palette.rose },
- ModesInsert = { bg = palette.foam },
- ModesReplace = { bg = palette.pine },
- ModesVisual = { bg = palette.iris },
-
- -- kyazdani42/nvim-tree.lua
- NvimTreeEmptyFolderName = { fg = palette.muted },
- NvimTreeFileDeleted = { fg = groups.git_delete },
- NvimTreeFileDirty = { fg = groups.git_dirty },
- NvimTreeFileMerge = { fg = groups.git_merge },
- NvimTreeFileNew = { fg = palette.foam },
- NvimTreeFileRenamed = { fg = groups.git_rename },
- NvimTreeFileStaged = { fg = groups.git_stage },
- NvimTreeFolderIcon = { fg = palette.subtle },
- NvimTreeFolderName = { fg = palette.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 = palette.text },
- NvimTreeNormal = { link = "Normal" },
- NvimTreeOpenedFile = { fg = palette.text, bg = palette.overlay },
- NvimTreeOpenedFolderName = { link = "NvimTreeFolderName" },
- NvimTreeRootFolder = { fg = palette.foam, bold = styles.bold },
- NvimTreeSpecialFile = { link = "NvimTreeNormal" },
- 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
- NeoTreeGitAdded = { fg = groups.git_add },
- NeoTreeGitConflict = { fg = groups.git_merge },
- NeoTreeGitDeleted = { fg = groups.git_delete },
- NeoTreeGitIgnored = { fg = groups.git_ignore },
- NeoTreeGitModified = { fg = groups.git_dirty },
- NeoTreeGitRenamed = { fg = groups.git_rename },
- 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" },
-
- -- folke/flash.nvim
- FlashLabel = { fg = palette.base, bg = palette.love },
-
- -- folke/which-key.nvim
- WhichKey = { fg = palette.iris },
- WhichKeyBorder = make_border(),
- WhichKeyDesc = { fg = palette.gold },
- WhichKeyFloat = { bg = groups.panel },
- 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 },
- WhichKeyTitle = { link = "FloatTitle" },
- WhichKeyValue = { fg = palette.rose },
-
- -- lukas-reineke/indent-blankline.nvim
- IblIndent = { fg = palette.overlay },
- IblScope = { fg = palette.foam },
- IblWhitespace = { fg = palette.overlay },
-
- -- hrsh7th/nvim-cmp
- CmpItemAbbr = { fg = palette.subtle },
- CmpItemAbbrDeprecated = { fg = palette.subtle, strikethrough = true },
- CmpItemAbbrMatch = { fg = palette.text, bold = styles.bold },
- CmpItemAbbrMatchFuzzy = { fg = palette.text, bold = styles.bold },
- CmpItemKind = { fg = palette.subtle },
- CmpItemKindClass = { link = "StorageClass" },
- CmpItemKindFunction = { link = "Function" },
- CmpItemKindInterface = { link = "Type" },
- CmpItemKindMethod = { link = "PreProc" },
- CmpItemKindSnippet = { link = "String" },
- CmpItemKindVariable = { link = "Identifier" },
-
- -- NeogitOrg/neogit
- -- https://github.com/NeogitOrg/neogit/blob/master/lua/neogit/lib/hl.lua#L109-L198
- NeogitChangeAdded = { fg = groups.git_add, bold = styles.bold, italic = styles.italic },
- NeogitChangeBothModified = { fg = groups.git_change, bold = styles.bold, italic = styles.italic },
- NeogitChangeCopied = { fg = groups.git_untracked, bold = styles.bold, italic = styles.italic },
- NeogitChangeDeleted = { fg = groups.git_delete, bold = styles.bold, italic = styles.italic },
- NeogitChangeModified = { fg = groups.git_change, bold = styles.bold, italic = styles.italic },
- NeogitChangeNewFile = { fg = groups.git_stage, bold = styles.bold, italic = styles.italic },
- NeogitChangeRenamed = { fg = groups.git_rename, bold = styles.bold, italic = styles.italic },
- NeogitChangeUpdated = { fg = groups.git_change, bold = styles.bold, italic = styles.italic },
- NeogitDiffAddHighlight = { link = "DiffAdd" },
- NeogitDiffContextHighlight = { bg = palette.surface },
- NeogitDiffDeleteHighlight = { link = "DiffDelete" },
- NeogitFilePath = { fg = palette.foam, italic = styles.italic },
- NeogitHunkHeader = { bg = groups.panel },
- NeogitHunkHeaderHighlight = { bg = groups.panel },
-
- -- vimwiki/vimwiki
- VimwikiHR = { fg = palette.subtle },
- VimwikiHeader1 = { link = "markdownH1" },
- VimwikiHeader2 = { link = "markdownH2" },
- VimwikiHeader3 = { link = "markdownH3" },
- VimwikiHeader4 = { link = "markdownH4" },
- VimwikiHeader5 = { link = "markdownH5" },
- VimwikiHeader6 = { link = "markdownH6" },
- VimwikiHeaderChar = { fg = palette.subtle },
- VimwikiLink = { link = "markdownUrl" },
- VimwikiList = { fg = palette.iris },
- VimwikiNoExistsLink = { fg = palette.love },
-
- -- nvim-neorg/neorg
- NeorgHeading1Prefix = { link = "markdownH1Delimiter" },
- NeorgHeading1Title = { link = "markdownH1" },
- NeorgHeading2Prefix = { link = "markdownH2Delimiter" },
- NeorgHeading2Title = { link = "markdownH2" },
- NeorgHeading3Prefix = { link = "markdownH3Delimiter" },
- NeorgHeading3Title = { link = "markdownH3" },
- NeorgHeading4Prefix = { link = "markdownH4Delimiter" },
- NeorgHeading4Title = { link = "markdownH4" },
- NeorgHeading5Prefix = { link = "markdownH5Delimiter" },
- NeorgHeading5Title = { link = "markdownH5" },
- NeorgHeading6Prefix = { link = "markdownH6Delimiter" },
- NeorgHeading6Title = { link = "markdownH6" },
- NeorgMarkerTitle = { fg = palette.foam, bold = styles.bold },
-
- -- tami5/lspsaga.nvim (fork of glepnir/lspsaga.nvim)
- DefinitionCount = { fg = palette.rose },
- DefinitionIcon = { fg = palette.rose },
- DefinitionPreviewTitle = { fg = palette.rose, bold = styles.bold },
- LspFloatWinBorder = make_border(),
- LspFloatWinNormal = { bg = groups.panel },
- LspSagaAutoPreview = { fg = palette.subtle },
- LspSagaCodeActionBorder = make_border(palette.rose),
- LspSagaCodeActionContent = { fg = palette.foam },
- LspSagaCodeActionTitle = { fg = palette.gold, bold = styles.bold },
- LspSagaCodeActionTruncateLine = { link = "LspSagaCodeActionBorder" },
- LspSagaDefPreviewBorder = make_border(),
- LspSagaDiagnosticBorder = make_border(palette.gold),
- LspSagaDiagnosticHeader = { fg = palette.foam, bold = styles.bold },
- LspSagaDiagnosticTruncateLine = { link = "LspSagaDiagnosticBorder" },
- LspSagaDocTruncateLine = { link = "LspSagaHoverBorder" },
- LspSagaFinderSelection = { fg = palette.gold },
- LspSagaHoverBorder = { link = "LspFloatWinBorder" },
- LspSagaLspFinderBorder = { link = "LspFloatWinBorder" },
- LspSagaRenameBorder = make_border(palette.pine),
- LspSagaRenamePromptPrefix = { fg = palette.love },
- LspSagaShTruncateLine = { link = "LspSagaSignatureHelpBorder" },
- LspSagaSignatureHelpBorder = make_border(palette.foam),
- 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.love, blend = 20 },
- PounceAcceptBest = { fg = palette.gold, bg = palette.gold, blend = 20 },
- PounceGap = { link = "Search" },
- PounceMatch = { link = "Search" },
-
- -- ggandor/leap.nvim
- LeapLabelPrimary = { link = "IncSearch" },
- LeapLabelSecondary = { link = "StatusLineTerm" },
- LeapMatch = { link = "MatchParen" },
-
- -- phaazon/hop.nvim
- -- smoka7/hop.nvim
- HopNextKey = { fg = palette.love, bg = palette.love, blend = 20 },
- HopNextKey1 = { fg = palette.foam, bg = palette.foam, blend = 20 },
- HopNextKey2 = { fg = palette.pine, bg = palette.pine, blend = 20 },
- HopUnmatched = { fg = palette.muted },
-
- -- nvim-telescope/telescope.nvim
- TelescopeBorder = make_border(),
- TelescopeMatching = { fg = palette.rose },
- TelescopeNormal = { link = "NormalFloat" },
- TelescopePromptNormal = { link = "TelescopeNormal" },
- TelescopePromptPrefix = { fg = palette.subtle },
- TelescopeSelection = { fg = palette.text, bg = palette.overlay },
- TelescopeSelectionCaret = { fg = palette.rose, bg = palette.overlay },
- TelescopeTitle = { fg = palette.foam, bold = styles.bold },
-
- -- 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" },
- FzfLuaTitle = { link = "FloatTitle" },
-
- -- rcarriga/nvim-notify
- NotifyBackground = { link = "NormalFloat" },
- NotifyDEBUGBody = { link = "NormalFloat" },
- NotifyDEBUGBorder = make_border(),
- NotifyDEBUGIcon = { link = "NotifyDEBUGTitle" },
- NotifyDEBUGTitle = { fg = palette.muted },
- NotifyERRORBody = { link = "NormalFloat" },
- NotifyERRORBorder = make_border(groups.error),
- NotifyERRORIcon = { link = "NotifyERRORTitle" },
- NotifyERRORTitle = { fg = groups.error },
- NotifyINFOBody = { link = "NormalFloat" },
- NotifyINFOBorder = make_border(groups.info),
- NotifyINFOIcon = { link = "NotifyINFOTitle" },
- NotifyINFOTitle = { fg = groups.info },
- NotifyTRACEBody = { link = "NormalFloat" },
- NotifyTRACEBorder = make_border(palette.iris),
- NotifyTRACEIcon = { link = "NotifyTRACETitle" },
- NotifyTRACETitle = { fg = palette.iris },
- NotifyWARNBody = { link = "NormalFloat" },
- NotifyWARNBorder = make_border(groups.warn),
- NotifyWARNIcon = { link = "NotifyWARNTitle" },
- NotifyWARNTitle = { fg = groups.warn },
-
- -- rcarriga/nvim-dap-ui
- DapUIBreakpointsCurrentLine = { fg = palette.gold, bold = styles.bold },
- DapUIBreakpointsDisabledLine = { fg = palette.muted },
- DapUIBreakpointsInfo = { link = "DapUIThread" },
- DapUIBreakpointsLine = { link = "DapUIBreakpointsPath" },
- DapUIBreakpointsPath = { fg = palette.foam },
- DapUIDecoration = { link = "DapUIBreakpointsPath" },
- DapUIFloatBorder = make_border(),
- DapUIFrameName = { fg = palette.text },
- DapUILineNumber = { link = "DapUIBreakpointsPath" },
- DapUIModifiedValue = { fg = palette.foam, bold = styles.bold },
- DapUIScope = { link = "DapUIBreakpointsPath" },
- DapUISource = { fg = palette.iris },
- DapUIStoppedThread = { link = "DapUIBreakpointsPath" },
- DapUIThread = { fg = palette.gold },
- DapUIValue = { fg = palette.text },
- DapUIVariable = { fg = palette.text },
- DapUIType = { fg = palette.iris },
- DapUIWatchesEmpty = { fg = palette.love },
- DapUIWatchesError = { link = "DapUIWatchesEmpty" },
- DapUIWatchesValue = { link = "DapUIThread" },
-
- -- glepnir/dashboard-nvim
- DashboardCenter = { fg = palette.gold },
- DashboardFooter = { fg = palette.iris },
- DashboardHeader = { fg = palette.pine },
- DashboardShortcut = { fg = palette.love },
-
- -- SmiteshP/nvim-navic
- NavicIconsArray = { fg = palette.gold },
- NavicIconsBoolean = { fg = palette.rose },
- NavicIconsClass = { fg = palette.foam },
- NavicIconsConstant = { fg = palette.gold },
- NavicIconsConstructor = { fg = palette.gold },
- NavicIconsEnum = { fg = palette.gold },
- NavicIconsEnumMember = { fg = palette.foam },
- NavicIconsEvent = { fg = palette.gold },
- NavicIconsField = { fg = palette.foam },
- NavicIconsFile = { fg = palette.muted },
- NavicIconsFunction = { fg = palette.pine },
- NavicIconsInterface = { fg = palette.foam },
- NavicIconsKey = { fg = palette.iris },
- NavicIconsKeyword = { fg = palette.pine },
- NavicIconsMethod = { fg = palette.iris },
- NavicIconsModule = { fg = palette.rose },
- NavicIconsNamespace = { fg = palette.muted },
- NavicIconsNull = { fg = palette.love },
- NavicIconsNumber = { fg = palette.gold },
- NavicIconsObject = { fg = palette.gold },
- NavicIconsOperator = { fg = palette.subtle },
- NavicIconsPackage = { fg = palette.muted },
- NavicIconsProperty = { fg = palette.foam },
- NavicIconsString = { fg = palette.gold },
- NavicIconsStruct = { fg = palette.foam },
- NavicIconsTypeParameter = { fg = palette.foam },
- NavicIconsVariable = { fg = palette.text },
- NavicSeparator = { fg = palette.subtle },
- NavicText = { fg = palette.subtle },
-
- -- folke/noice.nvim
- NoiceCursor = { fg = palette.highlight_high, bg = palette.text },
-
- -- folke/trouble.nvim
- 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 },
-
- MiniCompletionActiveParameter = { underline = true },
-
- 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 },
- 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 },
-
- MiniStarterCurrent = { nocombine = true },
- MiniStarterFooter = { fg = palette.subtle },
- MiniStarterHeader = { link = "Title" },
- 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
- AlphaButtons = { fg = palette.foam },
- AlphaFooter = { fg = palette.gold },
- AlphaHeader = { fg = palette.pine },
- AlphaShortcut = { fg = palette.rose },
-
- -- github/copilot.vim
- 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 = {
- DiagnosticVirtualTextError = { fg = groups.error },
- DiagnosticVirtualTextHint = { fg = groups.hint },
- DiagnosticVirtualTextInfo = { fg = groups.info },
- DiagnosticVirtualTextOk = { fg = groups.ok },
- DiagnosticVirtualTextWarn = { fg = groups.warn },
-
- FloatBorder = { fg = palette.muted, bg = "NONE" },
- FloatTitle = { fg = palette.foam, bg = "NONE", bold = styles.bold },
- Folded = { fg = palette.text, bg = "NONE" },
- NormalFloat = { bg = "NONE" },
- Normal = { fg = palette.text, bg = "NONE" },
- NormalNC = { fg = palette.text, bg = config.options.dim_inactive_windows and palette._nc or "NONE" },
- Pmenu = { fg = palette.subtle, bg = "NONE" },
- PmenuKind = { fg = palette.foam, bg = "NONE" },
- SignColumn = { fg = palette.text, bg = "NONE" },
- StatusLine = { fg = palette.subtle, bg = "NONE" },
- StatusLineNC = { fg = palette.muted, bg = "NONE" },
- TabLine = { bg = "NONE", fg = palette.subtle },
- TabLineFill = { bg = "NONE" },
- TabLineSel = { fg = palette.text, bg = "NONE", bold = styles.bold },
-
- -- ["@markup.raw"] = { bg = "none" },
- ["@markup.raw.markdown_inline"] = { fg = palette.gold },
- -- ["@markup.raw.block"] = { bg = "none" },
-
- TelescopeNormal = { fg = palette.subtle, bg = "NONE" },
- TelescopePromptNormal = { fg = palette.text, bg = "NONE" },
- TelescopeSelection = { fg = palette.text, bg = "NONE", bold = styles.bold },
- TelescopeSelectionCaret = { fg = palette.rose },
-
- TroubleNormal = { bg = "NONE" },
-
- WhichKeyFloat = { bg = "NONE" },
- WhichKeyNormal = { bg = "NONE" },
-
- IblIndent = { fg = palette.overlay, bg = "NONE" },
- IblScope = { fg = palette.foam, bg = "NONE" },
- IblWhitespace = { fg = palette.overlay, bg = "NONE" },
-
- TreesitterContext = { bg = "NONE" },
- TreesitterContextLineNumber = { fg = palette.rose, bg = "NONE" },
-
- MiniFilesTitleFocused = { fg = palette.rose, bg = "NONE", bold = styles.bold },
-
- MiniPickPrompt = { bg = "NONE", bold = styles.bold },
- MiniPickBorderText = { bg = "NONE" },
- }
-
- if config.options.enable.legacy_highlights then
- for group, highlight in pairs(legacy_highlights) do
- highlights[group] = highlight
- end
- end
- for group, highlight in pairs(default_highlights) do
- highlights[group] = highlight
- end
- if styles.transparency then
- for group, highlight in pairs(transparency_highlights) do
- highlights[group] = highlight
- end
- end
-
- -- Reconcile highlights with config
- if config.options.highlight_groups ~= nil and next(config.options.highlight_groups) ~= nil then
- for group, highlight in pairs(config.options.highlight_groups) do
- 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)
-
- if highlight.fg ~= nil then
- parsed.fg = utilities.parse_color(highlight.fg) or highlight.fg
- end
- if highlight.bg ~= nil then
- parsed.bg = utilities.parse_color(highlight.bg) or highlight.bg
- end
- if highlight.sp ~= nil then
- parsed.sp = utilities.parse_color(highlight.sp) or highlight.sp
- end
-
- if (highlight.inherit == nil or highlight.inherit) and existing ~= nil then
- parsed.inherit = nil
- highlights[group] = vim.tbl_extend("force", existing, parsed)
- else
- parsed.inherit = nil
- highlights[group] = parsed
- end
- end
- end
-
- for group, highlight in pairs(highlights) do
- if config.options.before_highlight ~= nil then
- config.options.before_highlight(group, highlight, palette)
- end
-
- 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)
- 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)
- end
-
- --- Terminal
- if config.options.enable.terminal then
- 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
-
- -- Support StatusLineTerm & StatusLineTermNC from vim
- vim.cmd([[
- augroup rose-pine
- autocmd!
- autocmd TermOpen * if &buftype=='terminal'
- \|setlocal winhighlight=StatusLine:StatusLineTerm,StatusLineNC:StatusLineTermNC
- \|else|setlocal winhighlight=|endif
- autocmd ColorSchemePre * autocmd! rose-pine
- augroup END
- ]])
- end
-end
-
----@param variant Variant | nil
-function M.colorscheme(variant)
- config.extend_options({ variant = variant })
-
- vim.opt.termguicolors = true
- if vim.g.colors_name then
- vim.cmd("hi clear")
- vim.cmd("syntax reset")
- end
- 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()
-end
-
----@param options Options
-function M.setup(options)
- config.extend_options(options or {})
-end
-
-return M
diff --git a/lua/rose-pine/bufferline/init.lua b/lua/rose-pine/bufferline/init.lua
new file mode 100644
index 0000000..3ae77b4
--- /dev/null
+++ b/lua/rose-pine/bufferline/init.lua
@@ -0,0 +1,23 @@
+local p = require('rose-pine.palette')
+
+-- TODO: Someone who uses bufferline.nvim is free to PR with this addition
+-- `:h bufferline-highlights`
+--
+-- The intended use would be (or any better solution):
+--
+-- ```
+-- local highlights = require('rose-pine.bufferline')
+-- require('bufferline').setup({
+-- highlights = highlights
+-- })
+-- ```
+return {
+ fill = {
+ guifg = p.text,
+ guibg = p.base,
+ },
+ background = {
+ guifg = p.text,
+ guibg = p.base,
+ },
+}
diff --git a/lua/rose-pine/config.lua b/lua/rose-pine/config.lua
index bbc9967..6b3ac12 100644
--- a/lua/rose-pine/config.lua
+++ b/lua/rose-pine/config.lua
@@ -1,176 +1,74 @@
----@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 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 }
+local palette = require('rose-pine.palette')
-local config = {}
+local function opt(key, default)
+ key = 'rose_pine_' .. key
----@class Options
-config.options = {
- ---Set the desired variant: "auto" will follow the vim background,
- ---defaulting to `dark_variant` or "main" for dark and "dawn" for light.
- ---@type "auto" | Variant
- variant = "auto",
+ if vim.g[key] == nil then
+ return default
+ end
- ---Set the desired dark variant when `options.variant` is set to "auto".
- ---@type Variant
- dark_variant = "main",
+ if vim.g[key] == 0 or vim.g[key] == false then
+ return false
+ end
- ---Differentiate between active and inactive windows and panels.
- dim_inactive_windows = false,
+ return vim.g[key]
+end
- ---Extend background behind borders. Appearance differs based on which
- ---border characters you are using.
- extend_background_behind_borders = true,
+local config = {
+ variant = opt('variant', 'main'),
- enable = {
- legacy_highlights = true,
- migrations = true,
- terminal = true,
+ 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