From e7b755d869296c0e100add9c940fb3024a41aa8a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ellison=20Lea=CC=83o?=
Date: Fri, 29 Sep 2023 18:27:57 -0300
Subject: BREAKING CHANGE: gruvbox is now a single module
palette: Can now be accessed in the main module through `require('gruvbox').palette`
get_base_colors: now a internal function called get_colors. If you want
to get the colors, just get the palette directly
groups: now moved to main module
---
README.md | 11 +-
lua/gruvbox.lua | 1046 ++++++++++++++++++++++++++++++++++++++++
lua/gruvbox/groups.lua | 838 --------------------------------
lua/gruvbox/init.lua | 97 ----
lua/gruvbox/palette.lua | 121 -----
tests/gruvbox/gruvbox_spec.lua | 15 +-
6 files changed, 1062 insertions(+), 1066 deletions(-)
create mode 100644 lua/gruvbox.lua
delete mode 100644 lua/gruvbox/groups.lua
delete mode 100644 lua/gruvbox/init.lua
delete mode 100644 lua/gruvbox/palette.lua
diff --git a/README.md b/README.md
index b4d7962..460934b 100644
--- a/README.md
+++ b/README.md
@@ -18,16 +18,16 @@ Neovim 0.8.0+
# Installing
-Using `packer`
+## Using `packer`
```lua
use { "ellisonleao/gruvbox.nvim" }
```
-Using `lazy.nvim`
+## Using `lazy.nvim`
```lua
-{ "ellisonleao/gruvbox.nvim", priority = 1000 }
+{ "ellisonleao/gruvbox.nvim", priority = 1000 , setup = true, opts = ...}
```
# Basic Usage
@@ -51,7 +51,6 @@ vim.cmd([[colorscheme gruvbox]])
Additional settings for gruvbox are:
```lua
--- setup must be called before loading the colorscheme
-- Default options:
require("gruvbox").setup({
terminal_colors = true, -- add neovim terminal colors
@@ -80,6 +79,8 @@ require("gruvbox").setup({
vim.cmd("colorscheme gruvbox")
```
+**VERY IMPORTANT**: Make sure to call setup() **BEFORE** calling the colorscheme command, to use your custom configs
+
## Overriding
### Palette
@@ -95,8 +96,6 @@ require("gruvbox").setup({
vim.cmd("colorscheme gruvbox")
```
-More colors in the [palette.lua](lua/gruvbox/palette.lua) file
-
### Highlight groups
If you don't enjoy the current color for a specific highlight group, now you can just override it in the setup. For
diff --git a/lua/gruvbox.lua b/lua/gruvbox.lua
new file mode 100644
index 0000000..68eb889
--- /dev/null
+++ b/lua/gruvbox.lua
@@ -0,0 +1,1046 @@
+---@class Gruvbox
+---@field config GruvboxConfig
+---@field palette GruvboxPalette
+local Gruvbox = {}
+
+---@alias Contrast "hard" | "soft" | ""
+
+---@class ItalicConfig
+---@field strings boolean
+---@field comments boolean
+---@field operators boolean
+---@field folds boolean
+---@field emphasis boolean
+
+---@class HighlightDefinition
+---@field fg string?
+---@field bg string?
+---@field sp string?
+---@field blend integer?
+---@field bold boolean?
+---@field standout boolean?
+---@field underline boolean?
+---@field undercurl boolean?
+---@field underdouble boolean?
+---@field underdotted boolean?
+---@field strikethrough boolean?
+---@field italic boolean?
+---@field reverse boolean?
+---@field nocombine boolean?
+
+---@class GruvboxConfig
+---@field terminal_colors boolean?
+---@field undercurl boolean?
+---@field underline boolean?
+---@field bold boolean?
+---@field italic ItalicConfig?
+---@field strikethrough boolean?
+---@field contrast Contrast?
+---@field invert_selection boolean?
+---@field invert_signs boolean?
+---@field invert_tabline boolean?
+---@field invert_intend_guides boolean?
+---@field inverse boolean?
+---@field overrides table?
+---@field palette_overrides table?
+Gruvbox.config = {
+ terminal_colors = true,
+ undercurl = true,
+ underline = true,
+ bold = true,
+ italic = {
+ strings = true,
+ emphasis = true,
+ comments = true,
+ operators = false,
+ folds = true,
+ },
+ strikethrough = true,
+ invert_selection = false,
+ invert_signs = false,
+ invert_tabline = false,
+ invert_intend_guides = false,
+ inverse = true,
+ contrast = "",
+ palette_overrides = {},
+ overrides = {},
+ dim_inactive = false,
+ transparent_mode = false,
+}
+
+-- main gruvbox color palette
+---@class GruvboxPalette
+Gruvbox.palette = {
+ dark0_hard = "#1d2021",
+ dark0 = "#282828",
+ dark0_soft = "#32302f",
+ dark1 = "#3c3836",
+ dark2 = "#504945",
+ dark3 = "#665c54",
+ dark4 = "#7c6f64",
+ light0_hard = "#f9f5d7",
+ light0 = "#fbf1c7",
+ light0_soft = "#f2e5bc",
+ light1 = "#ebdbb2",
+ light2 = "#d5c4a1",
+ light3 = "#bdae93",
+ light4 = "#a89984",
+ bright_red = "#fb4934",
+ bright_green = "#b8bb26",
+ bright_yellow = "#fabd2f",
+ bright_blue = "#83a598",
+ bright_purple = "#d3869b",
+ bright_aqua = "#8ec07c",
+ bright_orange = "#fe8019",
+ neutral_red = "#cc241d",
+ neutral_green = "#98971a",
+ neutral_yellow = "#d79921",
+ neutral_blue = "#458588",
+ neutral_purple = "#b16286",
+ neutral_aqua = "#689d6a",
+ neutral_orange = "#d65d0e",
+ faded_red = "#9d0006",
+ faded_green = "#79740e",
+ faded_yellow = "#b57614",
+ faded_blue = "#076678",
+ faded_purple = "#8f3f71",
+ faded_aqua = "#427b58",
+ faded_orange = "#af3a03",
+ gray = "#928374",
+}
+
+-- get a hex list of gruvbox colors based on current bg and constrast config
+local function get_colors()
+ local p = Gruvbox.palette
+
+ for color, hex in pairs(Gruvbox.config.palette_overrides) do
+ p[color] = hex
+ end
+
+ local bg = vim.o.background
+ local contrast = Gruvbox.config.contrast
+
+ local color_groups = {
+ dark = {
+ bg0 = p.dark0,
+ bg1 = p.dark1,
+ bg2 = p.dark2,
+ bg3 = p.dark3,
+ bg4 = p.dark4,
+ fg0 = p.light0,
+ fg1 = p.light1,
+ fg2 = p.light2,
+ fg3 = p.light3,
+ fg4 = p.light4,
+ red = p.bright_red,
+ green = p.bright_green,
+ yellow = p.bright_yellow,
+ blue = p.bright_blue,
+ purple = p.bright_purple,
+ aqua = p.bright_aqua,
+ orange = p.bright_orange,
+ neutral_red = p.neutral_red,
+ neutral_green = p.neutral_green,
+ neutral_yellow = p.neutral_yellow,
+ neutral_blue = p.neutral_blue,
+ neutral_purple = p.neutral_purple,
+ neutral_aqua = p.neutral_aqua,
+ gray = p.gray,
+ },
+ light = {
+ bg0 = p.light0,
+ bg1 = p.light1,
+ bg2 = p.light2,
+ bg3 = p.light3,
+ bg4 = p.light4,
+ fg0 = p.dark0,
+ fg1 = p.dark1,
+ fg2 = p.dark2,
+ fg3 = p.dark3,
+ fg4 = p.dark4,
+ red = p.faded_red,
+ green = p.faded_green,
+ yellow = p.faded_yellow,
+ blue = p.faded_blue,
+ purple = p.faded_purple,
+ aqua = p.faded_aqua,
+ orange = p.faded_orange,
+ neutral_red = p.neutral_red,
+ neutral_green = p.neutral_green,
+ neutral_yellow = p.neutral_yellow,
+ neutral_blue = p.neutral_blue,
+ neutral_purple = p.neutral_purple,
+ neutral_aqua = p.neutral_aqua,
+ gray = p.gray,
+ },
+ }
+
+ if contrast ~= nil and contrast ~= "" then
+ color_groups[bg].bg0 = p[bg .. string.format("0_%s", contrast)]
+ end
+
+ return color_groups[bg]
+end
+
+local function get_groups()
+ local colors = get_colors()
+ local config = Gruvbox.config
+
+ if Gruvbox.config.terminal_colors then
+ local term_colors = {
+ colors.bg0,
+ colors.neutral_red,
+ colors.neutral_green,
+ colors.neutral_yellow,
+ colors.neutral_blue,
+ colors.neutral_purple,
+ colors.neutral_aqua,
+ colors.fg4,
+ colors.gray,
+ colors.red,
+ colors.green,
+ colors.yellow,
+ colors.blue,
+ colors.purple,
+ colors.aqua,
+ colors.fg1,
+ }
+ for index, value in ipairs(term_colors) do
+ vim.g["terminal_color_" .. index - 1] = value
+ end
+ end
+
+ local groups = {
+ GruvboxFg0 = { fg = colors.fg0 },
+ GruvboxFg1 = { fg = colors.fg1 },
+ GruvboxFg2 = { fg = colors.fg2 },
+ GruvboxFg3 = { fg = colors.fg3 },
+ GruvboxFg4 = { fg = colors.fg4 },
+ GruvboxGray = { fg = colors.gray },
+ GruvboxBg0 = { fg = colors.bg0 },
+ GruvboxBg1 = { fg = colors.bg1 },
+ GruvboxBg2 = { fg = colors.bg2 },
+ GruvboxBg3 = { fg = colors.bg3 },
+ GruvboxBg4 = { fg = colors.bg4 },
+ GruvboxRed = { fg = colors.red },
+ GruvboxRedBold = { fg = colors.red, bold = config.bold },
+ GruvboxGreen = { fg = colors.green },
+ GruvboxGreenBold = { fg = colors.green, bold = config.bold },
+ GruvboxYellow = { fg = colors.yellow },
+ GruvboxYellowBold = { fg = colors.yellow, bold = config.bold },
+ GruvboxBlue = { fg = colors.blue },
+ GruvboxBlueBold = { fg = colors.blue, bold = config.bold },
+ GruvboxPurple = { fg = colors.purple },
+ GruvboxPurpleBold = { fg = colors.purple, bold = config.bold },
+ GruvboxAqua = { fg = colors.aqua },
+ GruvboxAquaBold = { fg = colors.aqua, bold = config.bold },
+ GruvboxOrange = { fg = colors.orange },
+ GruvboxOrangeBold = { fg = colors.orange, bold = config.bold },
+ GruvboxRedSign = config.transparent_mode and { fg = colors.red, reverse = config.invert_signs }
+ or { fg = colors.red, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxGreenSign = config.transparent_mode and { fg = colors.green, reverse = config.invert_signs }
+ or { fg = colors.green, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxYellowSign = config.transparent_mode and { fg = colors.yellow, reverse = config.invert_signs }
+ or { fg = colors.yellow, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxBlueSign = config.transparent_mode and { fg = colors.blue, reverse = config.invert_signs }
+ or { fg = colors.blue, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxPurpleSign = config.transparent_mode and { fg = colors.purple, reverse = config.invert_signs }
+ or { fg = colors.purple, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxAquaSign = config.transparent_mode and { fg = colors.aqua, reverse = config.invert_signs }
+ or { fg = colors.aqua, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxOrangeSign = config.transparent_mode and { fg = colors.orange, reverse = config.invert_signs }
+ or { fg = colors.orange, bg = colors.bg1, reverse = config.invert_signs },
+ GruvboxRedUnderline = { undercurl = config.undercurl, sp = colors.red },
+ GruvboxGreenUnderline = { undercurl = config.undercurl, sp = colors.green },
+ GruvboxYellowUnderline = { undercurl = config.undercurl, sp = colors.yellow },
+ GruvboxBlueUnderline = { undercurl = config.undercurl, sp = colors.blue },
+ GruvboxPurpleUnderline = { undercurl = config.undercurl, sp = colors.purple },
+ GruvboxAquaUnderline = { undercurl = config.undercurl, sp = colors.aqua },
+ GruvboxOrangeUnderline = { undercurl = config.undercurl, sp = colors.orange },
+ Normal = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg0 },
+ NormalFloat = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg1 },
+ NormalNC = config.dim_inactive and { fg = colors.fg0, bg = colors.bg1 } or { link = "Normal" },
+ CursorLine = { bg = colors.bg1 },
+ CursorColumn = { link = "CursorLine" },
+ TabLineFill = { fg = colors.bg4, bg = colors.bg1, reverse = config.invert_tabline },
+ TabLineSel = { fg = colors.green, bg = colors.bg1, reverse = config.invert_tabline },
+ TabLine = { link = "TabLineFill" },
+ MatchParen = { bg = colors.bg3, bold = config.bold },
+ ColorColumn = { bg = colors.bg1 },
+ Conceal = { fg = colors.blue },
+ CursorLineNr = { fg = colors.yellow, bg = colors.bg1 },
+ NonText = { link = "GruvboxBg2" },
+ SpecialKey = { link = "GruvboxFg4" },
+ Visual = { bg = colors.bg3, reverse = config.invert_selection },
+ VisualNOS = { link = "Visual" },
+ Search = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse },
+ IncSearch = { fg = colors.orange, bg = colors.bg0, reverse = config.inverse },
+ CurSearch = { link = "IncSearch" },
+ QuickFixLine = { fg = colors.bg0, bg = colors.yellow, bold = config.bold },
+ Underlined = { fg = colors.blue, underline = config.underline },
+ StatusLine = { fg = colors.bg2, bg = colors.fg1, reverse = config.inverse },
+ StatusLineNC = { fg = colors.bg1, bg = colors.fg4, reverse = config.inverse },
+ WinBar = { fg = colors.fg4, bg = colors.bg0 },
+ WinBarNC = { fg = colors.fg3, bg = colors.bg1 },
+ WinSeparator = config.transparent_mode and { fg = colors.bg3, bg = nil } or { fg = colors.bg3, bg = colors.bg0 },
+ WildMenu = { fg = colors.blue, bg = colors.bg2, bold = config.bold },
+ Directory = { link = "GruvboxBlueBold" },
+ Title = { link = "GruvboxGreenBold" },
+ ErrorMsg = { fg = colors.bg0, bg = colors.red, bold = config.bold },
+ MoreMsg = { link = "GruvboxYellowBold" },
+ ModeMsg = { link = "GruvboxYellowBold" },
+ Question = { link = "GruvboxOrangeBold" },
+ WarningMsg = { link = "GruvboxRedBold" },
+ LineNr = { fg = colors.bg4 },
+ SignColumn = config.transparent_mode and { bg = nil } or { bg = colors.bg1 },
+ Folded = { fg = colors.gray, bg = colors.bg1, italic = config.italic.folds },
+ FoldColumn = config.transparent_mode and { fg = colors.gray, bg = nil } or { fg = colors.gray, bg = colors.bg1 },
+ Cursor = { reverse = config.inverse },
+ vCursor = { link = "Cursor" },
+ iCursor = { link = "Cursor" },
+ lCursor = { link = "Cursor" },
+ Special = { link = "GruvboxOrange" },
+ Comment = { fg = colors.gray, italic = config.italic.comments },
+ Todo = { fg = colors.bg0, bg = colors.yellow, bold = config.bold, italic = config.italic.comments },
+ Done = { fg = colors.orange, bold = config.bold, italic = config.italic.comments },
+ Error = { fg = colors.red, bold = config.bold, reverse = config.inverse },
+ Statement = { link = "GruvboxRed" },
+ Conditional = { link = "GruvboxRed" },
+ Repeat = { link = "GruvboxRed" },
+ Label = { link = "GruvboxRed" },
+ Exception = { link = "GruvboxRed" },
+ Operator = { fg = colors.orange, italic = config.italic.operators },
+ Keyword = { link = "GruvboxRed" },
+ Identifier = { link = "GruvboxBlue" },
+ Function = { link = "GruvboxGreenBold" },
+ PreProc = { link = "GruvboxAqua" },
+ Include = { link = "GruvboxAqua" },
+ Define = { link = "GruvboxAqua" },
+ Macro = { link = "GruvboxAqua" },
+ PreCondit = { link = "GruvboxAqua" },
+ Constant = { link = "GruvboxPurple" },
+ Character = { link = "GruvboxPurple" },
+ String = { fg = colors.green, italic = config.italic.strings },
+ Boolean = { link = "GruvboxPurple" },
+ Number = { link = "GruvboxPurple" },
+ Float = { link = "GruvboxPurple" },
+ Type = { link = "GruvboxYellow" },
+ StorageClass = { link = "GruvboxOrange" },
+ Structure = { link = "GruvboxAqua" },
+ Typedef = { link = "GruvboxYellow" },
+ Pmenu = { fg = colors.fg1, bg = colors.bg2 },
+ PmenuSel = { fg = colors.bg2, bg = colors.blue, bold = config.bold },
+ PmenuSbar = { bg = colors.bg2 },
+ PmenuThumb = { bg = colors.bg4 },
+ DiffDelete = { fg = colors.red, bg = colors.bg0, reverse = config.inverse },
+ DiffAdd = { fg = colors.green, bg = colors.bg0, reverse = config.inverse },
+ DiffChange = { fg = colors.aqua, bg = colors.bg0, reverse = config.inverse },
+ DiffText = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse },
+ SpellCap = { link = "GruvboxBlueUnderline" },
+ SpellBad = { link = "GruvboxRedUnderline" },
+ SpellLocal = { link = "GruvboxAquaUnderline" },
+ SpellRare = { link = "GruvboxPurpleUnderline" },
+ Whitespace = { fg = colors.bg2 },
+ DiagnosticError = { link = "GruvboxRed" },
+ DiagnosticSignError = { link = "GruvboxRedSign" },
+ DiagnosticUnderlineError = { link = "GruvboxRedUnderline" },
+ DiagnosticWarn = { link = "GruvboxYellow" },
+ DiagnosticSignWarn = { link = "GruvboxYellowSign" },
+ DiagnosticUnderlineWarn = { link = "GruvboxYellowUnderline" },
+ DiagnosticInfo = { link = "GruvboxBlue" },
+ DiagnosticSignInfo = { link = "GruvboxBlueSign" },
+ DiagnosticUnderlineInfo = { link = "GruvboxBlueUnderline" },
+ DiagnosticHint = { link = "GruvboxAqua" },
+ DiagnosticSignHint = { link = "GruvboxAquaSign" },
+ DiagnosticUnderlineHint = { link = "GruvboxAquaUnderline" },
+ DiagnosticFloatingError = { link = "GruvboxRed" },
+ DiagnosticFloatingWarn = { link = "GruvboxOrange" },
+ DiagnosticFloatingInfo = { link = "GruvboxBlue" },
+ DiagnosticFloatingHint = { link = "GruvboxAqua" },
+ DiagnosticVirtualTextError = { link = "GruvboxRed" },
+ DiagnosticVirtualTextWarn = { link = "GruvboxYellow" },
+ DiagnosticVirtualTextInfo = { link = "GruvboxBlue" },
+ DiagnosticVirtualTextHint = { link = "GruvboxAqua" },
+ LspReferenceRead = { link = "GruvboxYellowBold" },
+ LspReferenceText = { link = "GruvboxYellowBold" },
+ LspReferenceWrite = { link = "GruvboxOrangeBold" },
+ LspCodeLens = { link = "GruvboxGray" },
+ LspSignatureActiveParameter = { link = "Search" },
+ gitcommitSelectedFile = { link = "GruvboxGreen" },
+ gitcommitDiscardedFile = { link = "GruvboxRed" },
+ GitSignsAdd = { link = "GruvboxGreenSign" },
+ GitSignsChange = { link = "GruvboxAquaSign" },
+ GitSignsDelete = { link = "GruvboxRedSign" },
+ NvimTreeSymlink = { fg = colors.neutral_aqua },
+ NvimTreeRootFolder = { fg = colors.neutral_purple, bold = true },
+ NvimTreeFolderIcon = { fg = colors.neutral_blue, bold = true },
+ NvimTreeFileIcon = { fg = colors.light2 },
+ NvimTreeExecFile = { fg = colors.neutral_green, bold = true },
+ NvimTreeOpenedFile = { fg = colors.bright_red, bold = true },
+ NvimTreeSpecialFile = { fg = colors.neutral_yellow, bold = true, underline = true },
+ NvimTreeImageFile = { fg = colors.neutral_purple },
+ NvimTreeIndentMarker = { fg = colors.dark3 },
+ NvimTreeGitDirty = { fg = colors.neutral_yellow },
+ NvimTreeGitStaged = { fg = colors.neutral_yellow },
+ NvimTreeGitMerge = { fg = colors.neutral_purple },
+ NvimTreeGitRenamed = { fg = colors.neutral_purple },
+ NvimTreeGitNew = { fg = colors.neutral_yellow },
+ NvimTreeGitDeleted = { fg = colors.neutral_red },
+ NvimTreeWindowPicker = { bg = colors.faded_aqua },
+ debugPC = { bg = colors.faded_blue },
+ debugBreakpoint = { link = "GruvboxRedSign" },
+ StartifyBracket = { link = "GruvboxFg3" },
+ StartifyFile = { link = "GruvboxFg1" },
+ StartifyNumber = { link = "GruvboxBlue" },
+ StartifyPath = { link = "GruvboxGray" },
+ StartifySlash = { link = "GruvboxGray" },
+ StartifySection = { link = "GruvboxYellow" },
+ StartifySpecial = { link = "GruvboxBg2" },
+ StartifyHeader = { link = "GruvboxOrange" },
+ StartifyFooter = { link = "GruvboxBg2" },
+ StartifyVar = { link = "StartifyPath" },
+ StartifySelect = { link = "Title" },
+ DirvishPathTail = { link = "GruvboxAqua" },
+ DirvishArg = { link = "GruvboxYellow" },
+ netrwDir = { link = "GruvboxAqua" },
+ netrwClassify = { link = "GruvboxAqua" },
+ netrwLink = { link = "GruvboxGray" },
+ netrwSymLink = { link = "GruvboxFg1" },
+ netrwExe = { link = "GruvboxYellow" },
+ netrwComment = { link = "GruvboxGray" },
+ netrwList = { link = "GruvboxBlue" },
+ netrwHelpCmd = { link = "GruvboxAqua" },
+ netrwCmdSep = { link = "GruvboxFg3" },
+ netrwVersion = { link = "GruvboxGreen" },
+ NERDTreeDir = { link = "GruvboxAqua" },
+ NERDTreeDirSlash = { link = "GruvboxAqua" },
+ NERDTreeOpenable = { link = "GruvboxOrange" },
+ NERDTreeClosable = { link = "GruvboxOrange" },
+ NERDTreeFile = { link = "GruvboxFg1" },
+ NERDTreeExecFile = { link = "GruvboxYellow" },
+ NERDTreeUp = { link = "GruvboxGray" },
+ NERDTreeCWD = { link = "GruvboxGreen" },
+ NERDTreeHelp = { link = "GruvboxFg1" },
+ NERDTreeToggleOn = { link = "GruvboxGreen" },
+ NERDTreeToggleOff = { link = "GruvboxRed" },
+ CocErrorSign = { link = "GruvboxRedSign" },
+ CocWarningSign = { link = "GruvboxOrangeSign" },
+ CocInfoSign = { link = "GruvboxBlueSign" },
+ CocHintSign = { link = "GruvboxAquaSign" },
+ CocErrorFloat = { link = "GruvboxRed" },
+ CocWarningFloat = { link = "GruvboxOrange" },
+ CocInfoFloat = { link = "GruvboxBlue" },
+ CocHintFloat = { link = "GruvboxAqua" },
+ CocDiagnosticsError = { link = "GruvboxRed" },
+ CocDiagnosticsWarning = { link = "GruvboxOrange" },
+ CocDiagnosticsInfo = { link = "GruvboxBlue" },
+ CocDiagnosticsHint = { link = "GruvboxAqua" },
+ CocSelectedText = { link = "GruvboxRed" },
+ CocMenuSel = { link = "PmenuSel" },
+ CocCodeLens = { link = "GruvboxGray" },
+ CocErrorHighlight = { link = "GruvboxRedUnderline" },
+ CocWarningHighlight = { link = "GruvboxOrangeUnderline" },
+ CocInfoHighlight = { link = "GruvboxBlueUnderline" },
+ CocHintHighlight = { link = "GruvboxAquaUnderline" },
+ TelescopeNormal = { link = "GruvboxFg1" },
+ TelescopeSelection = { link = "GruvboxOrangeBold" },
+ TelescopeSelectionCaret = { link = "GruvboxRed" },
+ TelescopeMultiSelection = { link = "GruvboxGray" },
+ TelescopeBorder = { link = "TelescopeNormal" },
+ TelescopePromptBorder = { link = "TelescopeNormal" },
+ TelescopeResultsBorder = { link = "TelescopeNormal" },
+ TelescopePreviewBorder = { link = "TelescopeNormal" },
+ TelescopeMatching = { link = "GruvboxBlue" },
+ TelescopePromptPrefix = { link = "GruvboxRed" },
+ TelescopePrompt = { link = "TelescopeNormal" },
+ CmpItemAbbr = { link = "GruvboxFg0" },
+ CmpItemAbbrDeprecated = { link = "GruvboxFg1" },
+ CmpItemAbbrMatch = { link = "GruvboxBlueBold" },
+ CmpItemAbbrMatchFuzzy = { link = "GruvboxBlueUnderline" },
+ CmpItemMenu = { link = "GruvboxGray" },
+ CmpItemKindText = { link = "GruvboxOrange" },
+ CmpItemKindVariable = { link = "GruvboxOrange" },
+ CmpItemKindMethod = { link = "GruvboxBlue" },
+ CmpItemKindFunction = { link = "GruvboxBlue" },
+ CmpItemKindConstructor = { link = "GruvboxYellow" },
+ CmpItemKindUnit = { link = "GruvboxBlue" },
+ CmpItemKindField = { link = "GruvboxBlue" },
+ CmpItemKindClass = { link = "GruvboxYellow" },
+ CmpItemKindInterface = { link = "GruvboxYellow" },
+ CmpItemKindModule = { link = "GruvboxBlue" },
+ CmpItemKindProperty = { link = "GruvboxBlue" },
+ CmpItemKindValue = { link = "GruvboxOrange" },
+ CmpItemKindEnum = { link = "GruvboxYellow" },
+ CmpItemKindOperator = { link = "GruvboxYellow" },
+ CmpItemKindKeyword = { link = "GruvboxPurple" },
+ CmpItemKindEvent = { link = "GruvboxPurple" },
+ CmpItemKindReference = { link = "GruvboxPurple" },
+ CmpItemKindColor = { link = "GruvboxPurple" },
+ CmpItemKindSnippet = { link = "GruvboxGreen" },
+ CmpItemKindFile = { link = "GruvboxBlue" },
+ CmpItemKindFolder = { link = "GruvboxBlue" },
+ CmpItemKindEnumMember = { link = "GruvboxAqua" },
+ CmpItemKindConstant = { link = "GruvboxOrange" },
+ CmpItemKindStruct = { link = "GruvboxYellow" },
+ CmpItemKindTypeParameter = { link = "GruvboxYellow" },
+ diffAdded = { link = "GruvboxGreen" },
+ diffRemoved = { link = "GruvboxRed" },
+ diffChanged = { link = "GruvboxAqua" },
+ diffFile = { link = "GruvboxOrange" },
+ diffNewFile = { link = "GruvboxYellow" },
+ diffOldFile = { link = "GruvboxOrange" },
+ diffLine = { link = "GruvboxBlue" },
+ diffIndexLine = { link = "diffChanged" },
+ NavicIconsFile = { link = "GruvboxBlue" },
+ NavicIconsModule = { link = "GruvboxOrange" },
+ NavicIconsNamespace = { link = "GruvboxBlue" },
+ NavicIconsPackage = { link = "GruvboxAqua" },
+ NavicIconsClass = { link = "GruvboxYellow" },
+ NavicIconsMethod = { link = "GruvboxBlue" },
+ NavicIconsProperty = { link = "GruvboxAqua" },
+ NavicIconsField = { link = "GruvboxPurple" },
+ NavicIconsConstructor = { link = "GruvboxBlue" },
+ NavicIconsEnum = { link = "GruvboxPurple" },
+ NavicIconsInterface = { link = "GruvboxGreen" },
+ NavicIconsFunction = { link = "GruvboxBlue" },
+ NavicIconsVariable = { link = "GruvboxPurple" },
+ NavicIconsConstant = { link = "GruvboxOrange" },
+ NavicIconsString = { link = "GruvboxGreen" },
+ NavicIconsNumber = { link = "GruvboxOrange" },
+ NavicIconsBoolean = { link = "GruvboxOrange" },
+ NavicIconsArray = { link = "GruvboxOrange" },
+ NavicIconsObject = { link = "GruvboxOrange" },
+ NavicIconsKey = { link = "GruvboxAqua" },
+ NavicIconsNull = { link = "GruvboxOrange" },
+ NavicIconsEnumMember = { link = "GruvboxYellow" },
+ NavicIconsStruct = { link = "GruvboxPurple" },
+ NavicIconsEvent = { link = "GruvboxYellow" },
+ NavicIconsOperator = { link = "GruvboxRed" },
+ NavicIconsTypeParameter = { link = "GruvboxRed" },
+ NavicText = { link = "GruvboxWhite" },
+ NavicSeparator = { link = "GruvboxWhite" },
+ htmlTag = { link = "GruvboxAquaBold" },
+ htmlEndTag = { link = "GruvboxAquaBold" },
+ htmlTagName = { link = "GruvboxBlue" },
+ htmlArg = { link = "GruvboxOrange" },
+ htmlTagN = { link = "GruvboxFg1" },
+ htmlSpecialTagName = { link = "GruvboxBlue" },
+ htmlLink = { fg = colors.fg4, underline = config.underline },
+ htmlSpecialChar = { link = "GruvboxRed" },
+ htmlBold = { fg = colors.fg0, bg = colors.bg0, bold = config.bold },
+ htmlBoldUnderline = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, underline = config.underline },
+ htmlBoldItalic = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, italic = true },
+ htmlBoldUnderlineItalic = {
+ fg = colors.fg0,
+ bg = colors.bg0,
+ bold = config.bold,
+ italic = true,
+ underline = config.underline,
+ },
+ htmlUnderline = { fg = colors.fg0, bg = colors.bg0, underline = config.underline },
+ htmlUnderlineItalic = {
+ fg = colors.fg0,
+ bg = colors.bg0,
+ italic = true,
+ underline = config.underline,
+ },
+ htmlItalic = { fg = colors.fg0, bg = colors.bg0, italic = true },
+ xmlTag = { link = "GruvboxAquaBold" },
+ xmlEndTag = { link = "GruvboxAquaBold" },
+ xmlTagName = { link = "GruvboxBlue" },
+ xmlEqual = { link = "GruvboxBlue" },
+ docbkKeyword = { link = "GruvboxAquaBold" },
+ xmlDocTypeDecl = { link = "GruvboxGray" },
+ xmlDocTypeKeyword = { link = "GruvboxPurple" },
+ xmlCdataStart = { link = "GruvboxGray" },
+ xmlCdataCdata = { link = "GruvboxPurple" },
+ dtdFunction = { link = "GruvboxGray" },
+ dtdTagName = { link = "GruvboxPurple" },
+ xmlAttrib = { link = "GruvboxOrange" },
+ xmlProcessingDelim = { link = "GruvboxGray" },
+ dtdParamEntityPunct = { link = "GruvboxGray" },
+ dtdParamEntityDPunct = { link = "GruvboxGray" },
+ xmlAttribPunct = { link = "GruvboxGray" },
+ xmlEntity = { link = "GruvboxRed" },
+ xmlEntityPunct = { link = "GruvboxRed" },
+ clojureKeyword = { link = "GruvboxBlue" },
+ clojureCond = { link = "GruvboxOrange" },
+ clojureSpecial = { link = "GruvboxOrange" },
+ clojureDefine = { link = "GruvboxOrange" },
+ clojureFunc = { link = "GruvboxYellow" },
+ clojureRepeat = { link = "GruvboxYellow" },
+ clojureCharacter = { link = "GruvboxAqua" },
+ clojureStringEscape = { link = "GruvboxAqua" },
+ clojureException = { link = "GruvboxRed" },
+ clojureRegexp = { link = "GruvboxAqua" },
+ clojureRegexpEscape = { link = "GruvboxAqua" },
+ clojureRegexpCharClass = { fg = colors.fg3, bold = config.bold },
+ clojureRegexpMod = { link = "clojureRegexpCharClass" },
+ clojureRegexpQuantifier = { link = "clojureRegexpCharClass" },
+ clojureParen = { link = "GruvboxFg3" },
+ clojureAnonArg = { link = "GruvboxYellow" },
+ clojureVariable = { link = "GruvboxBlue" },
+ clojureMacro = { link = "GruvboxOrange" },
+ clojureMeta = { link = "GruvboxYellow" },
+ clojureDeref = { link = "GruvboxYellow" },
+ clojureQuote = { link = "GruvboxYellow" },
+ clojureUnquote = { link = "GruvboxYellow" },
+ cOperator = { link = "GruvboxPurple" },
+ cppOperator = { link = "GruvboxPurple" },
+ cStructure = { link = "GruvboxOrange" },
+ pythonBuiltin = { link = "GruvboxOrange" },
+ pythonBuiltinObj = { link = "GruvboxOrange" },
+ pythonBuiltinFunc = { link = "GruvboxOrange" },
+ pythonFunction = { link = "GruvboxAqua" },
+ pythonDecorator = { link = "GruvboxRed" },
+ pythonInclude = { link = "GruvboxBlue" },
+ pythonImport = { link = "GruvboxBlue" },
+ pythonRun = { link = "GruvboxBlue" },
+ pythonCoding = { link = "GruvboxBlue" },
+ pythonOperator = { link = "GruvboxRed" },
+ pythonException = { link = "GruvboxRed" },
+ pythonExceptions = { link = "GruvboxPurple" },
+ pythonBoolean = { link = "GruvboxPurple" },
+ pythonDot = { link = "GruvboxFg3" },
+ pythonConditional = { link = "GruvboxRed" },
+ pythonRepeat = { link = "GruvboxRed" },
+ pythonDottedName = { link = "GruvboxGreenBold" },
+ cssBraces = { link = "GruvboxBlue" },
+ cssFunctionName = { link = "GruvboxYellow" },
+ cssIdentifier = { link = "GruvboxOrange" },
+ cssClassName = { link = "GruvboxGreen" },
+ cssColor = { link = "GruvboxBlue" },
+ cssSelectorOp = { link = "GruvboxBlue" },
+ cssSelectorOp2 = { link = "GruvboxBlue" },
+ cssImportant = { link = "GruvboxGreen" },
+ cssVendor = { link = "GruvboxFg1" },
+ cssTextProp = { link = "GruvboxAqua" },
+ cssAnimationProp = { link = "GruvboxAqua" },
+ cssUIProp = { link = "GruvboxYellow" },
+ cssTransformProp = { link = "GruvboxAqua" },
+ cssTransitionProp = { link = "GruvboxAqua" },
+ cssPrintProp = { link = "GruvboxAqua" },
+ cssPositioningProp = { link = "GruvboxYellow" },
+ cssBoxProp = { link = "GruvboxAqua" },
+ cssFontDescriptorProp = { link = "GruvboxAqua" },
+ cssFlexibleBoxProp = { link = "GruvboxAqua" },
+ cssBorderOutlineProp = { link = "GruvboxAqua" },
+ cssBackgroundProp = { link = "GruvboxAqua" },
+ cssMarginProp = { link = "GruvboxAqua" },
+ cssListProp = { link = "GruvboxAqua" },
+ cssTableProp = { link = "GruvboxAqua" },
+ cssFontProp = { link = "GruvboxAqua" },
+ cssPaddingProp = { link = "GruvboxAqua" },
+ cssDimensionProp = { link = "GruvboxAqua" },
+ cssRenderProp = { link = "GruvboxAqua" },
+ cssColorProp = { link = "GruvboxAqua" },
+ cssGeneratedContentProp = { link = "GruvboxAqua" },
+ javaScriptBraces = { link = "GruvboxFg1" },
+ javaScriptFunction = { link = "GruvboxAqua" },
+ javaScriptIdentifier = { link = "GruvboxRed" },
+ javaScriptMember = { link = "GruvboxBlue" },
+ javaScriptNumber = { link = "GruvboxPurple" },
+ javaScriptNull = { link = "GruvboxPurple" },
+ javaScriptParens = { link = "GruvboxFg3" },
+ typescriptReserved = { link = "GruvboxAqua" },
+ typescriptLabel = { link = "GruvboxAqua" },
+ typescriptFuncKeyword = { link = "GruvboxAqua" },
+ typescriptIdentifier = { link = "GruvboxOrange" },
+ typescriptBraces = { link = "GruvboxFg1" },
+ typescriptEndColons = { link = "GruvboxFg1" },
+ typescriptDOMObjects = { link = "GruvboxFg1" },
+ typescriptAjaxMethods = { link = "GruvboxFg1" },
+ typescriptLogicSymbols = { link = "GruvboxFg1" },
+ typescriptDocSeeTag = { link = "Comment" },
+ typescriptDocParam = { link = "Comment" },
+ typescriptDocTags = { link = "vimCommentTitle" },
+ typescriptGlobalObjects = { link = "GruvboxFg1" },
+ typescriptParens = { link = "GruvboxFg3" },
+ typescriptOpSymbols = { link = "GruvboxFg3" },
+ typescriptHtmlElemProperties = { link = "GruvboxFg1" },
+ typescriptNull = { link = "GruvboxPurple" },
+ typescriptInterpolationDelimiter = { link = "GruvboxAqua" },
+ purescriptModuleKeyword = { link = "GruvboxAqua" },
+ purescriptModuleName = { link = "GruvboxFg1" },
+ purescriptWhere = { link = "GruvboxAqua" },
+ purescriptDelimiter = { link = "GruvboxFg4" },
+ purescriptType = { link = "GruvboxFg1" },
+ purescriptImportKeyword = { link = "GruvboxAqua" },
+ purescriptHidingKeyword = { link = "GruvboxAqua" },
+ purescriptAsKeyword = { link = "GruvboxAqua" },
+ purescriptStructure = { link = "GruvboxAqua" },
+ purescriptOperator = { link = "GruvboxBlue" },
+ purescriptTypeVar = { link = "GruvboxFg1" },
+ purescriptConstructor = { link = "GruvboxFg1" },
+ purescriptFunction = { link = "GruvboxFg1" },
+ purescriptConditional = { link = "GruvboxOrange" },
+ purescriptBacktick = { link = "GruvboxOrange" },
+ coffeeExtendedOp = { link = "GruvboxFg3" },
+ coffeeSpecialOp = { link = "GruvboxFg3" },
+ coffeeCurly = { link = "GruvboxOrange" },
+ coffeeParen = { link = "GruvboxFg3" },
+ coffeeBracket = { link = "GruvboxOrange" },
+ rubyStringDelimiter = { link = "GruvboxGreen" },
+ rubyInterpolationDelimiter = { link = "GruvboxAqua" },
+ rubyDefinedOperator = { link = "rubyKeyword" },
+ objcTypeModifier = { link = "GruvboxRed" },
+ objcDirective = { link = "GruvboxBlue" },
+ goDirective = { link = "GruvboxAqua" },
+ goConstants = { link = "GruvboxPurple" },
+ goDeclaration = { link = "GruvboxRed" },
+ goDeclType = { link = "GruvboxBlue" },
+ goBuiltins = { link = "GruvboxOrange" },
+ luaIn = { link = "GruvboxRed" },
+ luaFunction = { link = "GruvboxAqua" },
+ luaTable = { link = "GruvboxOrange" },
+ moonSpecialOp = { link = "GruvboxFg3" },
+ moonExtendedOp = { link = "GruvboxFg3" },
+ moonFunction = { link = "GruvboxFg3" },
+ moonObject = { link = "GruvboxYellow" },
+ javaAnnotation = { link = "GruvboxBlue" },
+ javaDocTags = { link = "GruvboxAqua" },
+ javaCommentTitle = { link = "vimCommentTitle" },
+ javaParen = { link = "GruvboxFg3" },
+ javaParen1 = { link = "GruvboxFg3" },
+ javaParen2 = { link = "GruvboxFg3" },
+ javaParen3 = { link = "GruvboxFg3" },
+ javaParen4 = { link = "GruvboxFg3" },
+ javaParen5 = { link = "GruvboxFg3" },
+ javaOperator = { link = "GruvboxOrange" },
+ javaVarArg = { link = "GruvboxGreen" },
+ elixirDocString = { link = "Comment" },
+ elixirStringDelimiter = { link = "GruvboxGreen" },
+ elixirInterpolationDelimiter = { link = "GruvboxAqua" },
+ elixirModuleDeclaration = { link = "GruvboxYellow" },
+ scalaNameDefinition = { link = "GruvboxFg1" },
+ scalaCaseFollowing = { link = "GruvboxFg1" },
+ scalaCapitalWord = { link = "GruvboxFg1" },
+ scalaTypeExtension = { link = "GruvboxFg1" },
+ scalaKeyword = { link = "GruvboxRed" },
+ scalaKeywordModifier = { link = "GruvboxRed" },
+ scalaSpecial = { link = "GruvboxAqua" },
+ scalaOperator = { link = "GruvboxFg1" },
+ scalaTypeDeclaration = { link = "GruvboxYellow" },
+ scalaTypeTypePostDeclaration = { link = "GruvboxYellow" },
+ scalaInstanceDeclaration = { link = "GruvboxFg1" },
+ scalaInterpolation = { link = "GruvboxAqua" },
+ markdownItalic = { fg = colors.fg3, italic = true },
+ markdownBold = { fg = colors.fg3, bold = config.bold },
+ markdownBoldItalic = { fg = colors.fg3, bold = config.bold, italic = true },
+ markdownH1 = { link = "GruvboxGreenBold" },
+ markdownH2 = { link = "GruvboxGreenBold" },
+ markdownH3 = { link = "GruvboxYellowBold" },
+ markdownH4 = { link = "GruvboxYellowBold" },
+ markdownH5 = { link = "GruvboxYellow" },
+ markdownH6 = { link = "GruvboxYellow" },
+ markdownCode = { link = "GruvboxAqua" },
+ markdownCodeBlock = { link = "GruvboxAqua" },
+ markdownCodeDelimiter = { link = "GruvboxAqua" },
+ markdownBlockquote = { link = "GruvboxGray" },
+ markdownListMarker = { link = "GruvboxGray" },
+ markdownOrderedListMarker = { link = "GruvboxGray" },
+ markdownRule = { link = "GruvboxGray" },
+ markdownHeadingRule = { link = "GruvboxGray" },
+ markdownUrlDelimiter = { link = "GruvboxFg3" },
+ markdownLinkDelimiter = { link = "GruvboxFg3" },
+ markdownLinkTextDelimiter = { link = "GruvboxFg3" },
+ markdownHeadingDelimiter = { link = "GruvboxOrange" },
+ markdownUrl = { link = "GruvboxPurple" },
+ markdownUrlTitleDelimiter = { link = "GruvboxGreen" },
+ markdownLinkText = { fg = colors.gray, underline = config.underline },
+ markdownIdDeclaration = { link = "markdownLinkText" },
+ haskellType = { link = "GruvboxBlue" },
+ haskellIdentifier = { link = "GruvboxAqua" },
+ haskellSeparator = { link = "GruvboxFg4" },
+ haskellDelimiter = { link = "GruvboxOrange" },
+ haskellOperators = { link = "GruvboxPurple" },
+ haskellBacktick = { link = "GruvboxOrange" },
+ haskellStatement = { link = "GruvboxPurple" },
+ haskellConditional = { link = "GruvboxPurple" },
+ haskellLet = { link = "GruvboxRed" },
+ haskellDefault = { link = "GruvboxRed" },
+ haskellWhere = { link = "GruvboxRed" },
+ haskellBottom = { link = "GruvboxRedBold" },
+ haskellImportKeywords = { link = "GruvboxPurpleBold" },
+ haskellDeclKeyword = { link = "GruvboxOrange" },
+ haskellDecl = { link = "GruvboxOrange" },
+ haskellDeriving = { link = "GruvboxPurple" },
+ haskellAssocType = { link = "GruvboxAqua" },
+ haskellNumber = { link = "GruvboxAqua" },
+ haskellPragma = { link = "GruvboxRedBold" },
+ haskellTH = { link = "GruvboxAquaBold" },
+ haskellForeignKeywords = { link = "GruvboxGreen" },
+ haskellKeyword = { link = "GruvboxRed" },
+ haskellFloat = { link = "GruvboxAqua" },
+ haskellInfix = { link = "GruvboxPurple" },
+ haskellQuote = { link = "GruvboxGreenBold" },
+ haskellShebang = { link = "GruvboxYellowBold" },
+ haskellLiquid = { link = "GruvboxPurpleBold" },
+ haskellQuasiQuoted = { link = "GruvboxBlueBold" },
+ haskellRecursiveDo = { link = "GruvboxPurple" },
+ haskellQuotedType = { link = "GruvboxRed" },
+ haskellPreProc = { link = "GruvboxFg4" },
+ haskellTypeRoles = { link = "GruvboxRedBold" },
+ haskellTypeForall = { link = "GruvboxRed" },
+ haskellPatternKeyword = { link = "GruvboxBlue" },
+ jsonKeyword = { link = "GruvboxGreen" },
+ jsonQuote = { link = "GruvboxGreen" },
+ jsonBraces = { link = "GruvboxFg1" },
+ jsonString = { link = "GruvboxFg1" },
+ mailQuoted1 = { link = "GruvboxAqua" },
+ mailQuoted2 = { link = "GruvboxPurple" },
+ mailQuoted3 = { link = "GruvboxYellow" },
+ mailQuoted4 = { link = "GruvboxGreen" },
+ mailQuoted5 = { link = "GruvboxRed" },
+ mailQuoted6 = { link = "GruvboxOrange" },
+ mailSignature = { link = "Comment" },
+ csBraces = { link = "GruvboxFg1" },
+ csEndColon = { link = "GruvboxFg1" },
+ csLogicSymbols = { link = "GruvboxFg1" },
+ csParens = { link = "GruvboxFg3" },
+ csOpSymbols = { link = "GruvboxFg3" },
+ csInterpolationDelimiter = { link = "GruvboxFg3" },
+ csInterpolationAlignDel = { link = "GruvboxAquaBold" },
+ csInterpolationFormat = { link = "GruvboxAqua" },
+ csInterpolationFormatDel = { link = "GruvboxAquaBold" },
+ rustSigil = { link = "GruvboxOrange" },
+ rustEscape = { link = "GruvboxAqua" },
+ rustStringContinuation = { link = "GruvboxAqua" },
+ rustEnum = { link = "GruvboxAqua" },
+ rustStructure = { link = "GruvboxAqua" },
+ rustModPathSep = { link = "GruvboxFg2" },
+ rustCommentLineDoc = { link = "Comment" },
+ rustDefault = { link = "GruvboxAqua" },
+ ocamlOperator = { link = "GruvboxFg1" },
+ ocamlKeyChar = { link = "GruvboxOrange" },
+ ocamlArrow = { link = "GruvboxOrange" },
+ ocamlInfixOpKeyword = { link = "GruvboxRed" },
+ ocamlConstructor = { link = "GruvboxOrange" },
+ LspSagaCodeActionTitle = { link = "Title" },
+ LspSagaCodeActionBorder = { link = "GruvboxFg1" },
+ LspSagaCodeActionContent = { fg = colors.green, bold = config.bold },
+ LspSagaLspFinderBorder = { link = "GruvboxFg1" },
+ LspSagaAutoPreview = { link = "GruvboxOrange" },
+ TargetWord = { fg = colors.blue, bold = config.bold },
+ FinderSeparator = { link = "GruvboxAqua" },
+ LspSagaDefPreviewBorder = { link = "GruvboxBlue" },
+ LspSagaHoverBorder = { link = "GruvboxOrange" },
+ LspSagaRenameBorder = { link = "GruvboxBlue" },
+ LspSagaDiagnosticSource = { link = "GruvboxOrange" },
+ LspSagaDiagnosticBorder = { link = "GruvboxPurple" },
+ LspSagaDiagnosticHeader = { link = "GruvboxGreen" },
+ LspSagaSignatureHelpBorder = { link = "GruvboxGreen" },
+ SagaShadow = { link = "GruvboxBg0" },
+ DashboardShortCut = { link = "GruvboxOrange" },
+ DashboardHeader = { link = "GruvboxAqua" },
+ DashboardCenter = { link = "GruvboxYellow" },
+ DashboardFooter = { fg = colors.purple, italic = true },
+ MasonHighlight = { link = "GruvboxAqua" },
+ MasonHighlightBlock = { fg = colors.bg0, bg = colors.blue },
+ MasonHighlightBlockBold = { fg = colors.bg0, bg = colors.blue, bold = true },
+ MasonHighlightSecondary = { fg = colors.yellow },
+ MasonHighlightBlockSecondary = { fg = colors.bg0, bg = colors.yellow },
+ MasonHighlightBlockBoldSecondary = { fg = colors.bg0, bg = colors.yellow, bold = true },
+ MasonHeader = { link = "MasonHighlightBlockBoldSecondary" },
+ MasonHeaderSecondary = { link = "MasonHighlightBlockBold" },
+ MasonMuted = { fg = colors.fg4 },
+ MasonMutedBlock = { fg = colors.bg0, bg = colors.fg4 },
+ MasonMutedBlockBold = { fg = colors.bg0, bg = colors.fg4, bold = true },
+ LspInlayHint = { link = "comment" },
+ CarbonFile = { link = "GruvboxFg1" },
+ CarbonExe = { link = "GruvboxYellow" },
+ CarbonSymlink = { link = "GruvboxAqua" },
+ CarbonBrokenSymlink = { link = "GruvboxRed" },
+ CarbonIndicator = { link = "GruvboxGray" },
+ CarbonDanger = { link = "GruvboxRed" },
+ CarbonPending = { link = "GruvboxYellow" },
+ NoiceCursor = { link = "TermCursor" },
+ NotifyDEBUGBorder = { link = "GruvboxBlue" },
+ NotifyDEBUGIcon = { link = "GruvboxBlue" },
+ NotifyDEBUGTitle = { link = "GruvboxBlue" },
+ NotifyERRORBorder = { link = "GruvboxRed" },
+ NotifyERRORIcon = { link = "GruvboxRed" },
+ NotifyERRORTitle = { link = "GruvboxRed" },
+ NotifyINFOBorder = { link = "GruvboxAqua" },
+ NotifyINFOIcon = { link = "GruvboxAqua" },
+ NotifyINFOTitle = { link = "GruvboxAqua" },
+ NotifyTRACEBorder = { link = "GruvboxGreen" },
+ NotifyTRACEIcon = { link = "GruvboxGreen" },
+ NotifyTRACETitle = { link = "GruvboxGreen" },
+ NotifyWARNBorder = { link = "GruvboxYellow" },
+ NotifyWARNIcon = { link = "GruvboxYellow" },
+ NotifyWARNTitle = { link = "GruvboxYellow" },
+ IlluminatedWordText = { link = "LspReferenceText" },
+ IlluminatedWordRead = { link = "LspReferenceRead" },
+ IlluminatedWordWrite = { link = "LspReferenceWrite" },
+ TSRainbowRed = { fg = colors.red },
+ TSRainbowOrange = { fg = colors.orange },
+ TSRainbowYellow = { fg = colors.yellow },
+ TSRainbowGreen = { fg = colors.green },
+ TSRainbowBlue = { fg = colors.blue },
+ TSRainbowViolet = { fg = colors.purple },
+ TSRainbowCyan = { fg = colors.cyan },
+ DapBreakpointSymbol = { fg = colors.red, bg = colors.bg1 },
+ DapStoppedSymbol = { fg = colors.green, bg = colors.bg1 },
+ DapUIBreakpointsCurrentLine = { link = "GruvboxYellow" },
+ DapUIBreakpointsDisabledLine = { link = "GruvboxGray" },
+ DapUIBreakpointsInfo = { link = "GruvboxAqua" },
+ DapUIBreakpointsLine = { link = "GruvboxYellow" },
+ DapUIBreakpointsPath = { link = "GruvboxBlue" },
+ DapUICurrentFrameName = { link = "GruvboxPurple" },
+ DapUIDecoration = { link = "GruvboxPurple" },
+ DapUIEndofBuffer = { link = "GruvboxBg2" },
+ DapUIFloatBorder = { link = "GruvboxAqua" },
+ DapUILineNumber = { link = "GruvboxYellow" },
+ DapUIModifiedValue = { link = "GruvboxRed" },
+ DapUIPlayPause = { fg = colors.green, bg = colors.bg1 },
+ DapUIRestart = { fg = colors.green, bg = colors.bg1 },
+ DapUIScope = { link = "GruvboxBlue" },
+ DapUISource = { link = "GruvboxFg1" },
+ DapUIStepBack = { fg = colors.blue, bg = colors.bg1 },
+ DapUIStepInto = { fg = colors.blue, bg = colors.bg1 },
+ DapUIStepOut = { fg = colors.blue, bg = colors.bg1 },
+ DapUIStepOver = { fg = colors.blue, bg = colors.bg1 },
+ DapUIStop = { fg = colors.red, bg = colors.bg1 },
+ DapUIStoppedThread = { link = "GruvboxBlue" },
+ DapUIThread = { link = "GruvboxBlue" },
+ DapUIType = { link = "GruvboxOrange" },
+ DapUIUnavailable = { link = "GruvboxGray" },
+ DapUIWatchesEmpty = { link = "GruvboxGray" },
+ DapUIWatchesError = { link = "GruvboxRed" },
+ DapUIWatchesValue = { link = "GruvboxYellow" },
+ DapUIWinSelect = { link = "GruvboxYellow" },
+ ["@comment"] = { link = "Comment" },
+ ["@none"] = { bg = "NONE", fg = "NONE" },
+ ["@preproc"] = { link = "PreProc" },
+ ["@define"] = { link = "Define" },
+ ["@operator"] = { link = "Operator" },
+ ["@punctuation.delimiter"] = { link = "Delimiter" },
+ ["@punctuation.bracket"] = { link = "Delimiter" },
+ ["@punctuation.special"] = { link = "Delimiter" },
+ ["@string"] = { link = "String" },
+ ["@string.regex"] = { link = "String" },
+ ["@string.escape"] = { link = "SpecialChar" },
+ ["@string.special"] = { link = "SpecialChar" },
+ ["@character"] = { link = "Character" },
+ ["@character.special"] = { link = "SpecialChar" },
+ ["@boolean"] = { link = "Boolean" },
+ ["@number"] = { link = "Number" },
+ ["@float"] = { link = "Float" },
+ ["@function"] = { link = "Function" },
+ ["@function.builtin"] = { link = "Special" },
+ ["@function.call"] = { link = "Function" },
+ ["@function.macro"] = { link = "Macro" },
+ ["@method"] = { link = "Function" },
+ ["@method.call"] = { link = "Function" },
+ ["@constructor"] = { link = "Special" },
+ ["@parameter"] = { link = "Identifier" },
+ ["@keyword"] = { link = "Keyword" },
+ ["@keyword.function"] = { link = "Keyword" },
+ ["@keyword.operator"] = { link = "GruvboxRed" },
+ ["@keyword.return"] = { link = "Keyword" },
+ ["@conditional"] = { link = "Conditional" },
+ ["@repeat"] = { link = "Repeat" },
+ ["@debug"] = { link = "Debug" },
+ ["@label"] = { link = "Label" },
+ ["@include"] = { link = "Include" },
+ ["@exception"] = { link = "Exception" },
+ ["@type"] = { link = "Type" },
+ ["@type.builtin"] = { link = "Type" },
+ ["@type.definition"] = { link = "Typedef" },
+ ["@type.qualifier"] = { link = "Type" },
+ ["@storageclass"] = { link = "StorageClass" },
+ ["@attribute"] = { link = "PreProc" },
+ ["@field"] = { link = "Identifier" },
+ ["@property"] = { link = "Identifier" },
+ ["@variable"] = { link = "GruvboxFg1" },
+ ["@variable.builtin"] = { link = "Special" },
+ ["@constant"] = { link = "Constant" },
+ ["@constant.builtin"] = { link = "Special" },
+ ["@constant.macro"] = { link = "Define" },
+ ["@namespace"] = { link = "GruvboxFg1" },
+ ["@symbol"] = { link = "Identifier" },
+ ["@text"] = { link = "GruvboxFg1" },
+ ["@text.strong"] = { bold = config.bold },
+ ["@text.emphasis"] = { italic = config.italic.emphasis },
+ ["@text.underline"] = { underline = config.underline },
+ ["@text.strike"] = { strikethrough = config.strikethrough },
+ ["@text.title"] = { link = "Title" },
+ ["@text.literal"] = { link = "String" },
+ ["@text.uri"] = { link = "Underlined" },
+ ["@text.math"] = { link = "Special" },
+ ["@text.environment"] = { link = "Macro" },
+ ["@text.environment.name"] = { link = "Type" },
+ ["@text.reference"] = { link = "Constant" },
+ ["@text.todo"] = { link = "Todo" },
+ ["@text.note"] = { link = "SpecialComment" },
+ ["@text.note.comment"] = { fg = colors.purple, bold = config.bold },
+ ["@text.warning"] = { link = "WarningMsg" },
+ ["@text.danger"] = { link = "ErrorMsg" },
+ ["@text.danger.comment"] = { fg = colors.fg0, bg = colors.red, bold = config.bold },
+ ["@text.diff.add"] = { link = "diffAdded" },
+ ["@text.diff.delete"] = { link = "diffRemoved" },
+ ["@tag"] = { link = "Tag" },
+ ["@tag.attribute"] = { link = "Identifier" },
+ ["@tag.delimiter"] = { link = "Delimiter" },
+ ["@punctuation"] = { link = "Delimiter" },
+ ["@macro"] = { link = "Macro" },
+ ["@structure"] = { link = "Structure" },
+ ["@lsp.type.class"] = { link = "@type" },
+ ["@lsp.type.comment"] = {}, -- do not overwrite comments
+ ["@lsp.type.decorator"] = { link = "@macro" },
+ ["@lsp.type.enum"] = { link = "@type" },
+ ["@lsp.type.enumMember"] = { link = "@constant" },
+ ["@lsp.type.function"] = { link = "@function" },
+ ["@lsp.type.interface"] = { link = "@constructor" },
+ ["@lsp.type.macro"] = { link = "@macro" },
+ ["@lsp.type.method"] = { link = "@method" },
+ ["@lsp.type.namespace"] = { link = "@namespace" },
+ ["@lsp.type.parameter"] = { link = "@parameter" },
+ ["@lsp.type.property"] = { link = "@property" },
+ ["@lsp.type.struct"] = { link = "@type" },
+ ["@lsp.type.type"] = { link = "@type" },
+ ["@lsp.type.typeParameter"] = { link = "@type.definition" },
+ ["@lsp.type.variable"] = { link = "@variable" },
+ }
+
+ for group, hl in pairs(config.overrides) do
+ if groups[group] then
+ -- "link" should not mix with other configs (:h hi-link)
+ groups[group].link = nil
+ end
+
+ groups[group] = vim.tbl_extend("force", groups[group] or {}, hl)
+ end
+
+ return groups
+end
+
+---@param config GruvboxConfig?
+Gruvbox.setup = function(config)
+ Gruvbox.config = vim.tbl_deep_extend("force", Gruvbox.config, config or {})
+end
+
+--- main load function
+Gruvbox.load = function()
+ if vim.version().minor < 8 then
+ vim.notify_once("gruvbox.nvim: you must use neovim 0.8 or higher")
+ return
+ end
+
+ -- reset colors
+ if vim.g.colors_name then
+ vim.cmd.hi("clear")
+ end
+ vim.g.colors_name = "gruvbox"
+ vim.o.termguicolors = true
+
+ local groups = get_groups()
+
+ -- add highlights
+ for group, settings in pairs(groups) do
+ vim.api.nvim_set_hl(0, group, settings)
+ end
+end
+
+return Gruvbox
diff --git a/lua/gruvbox/groups.lua b/lua/gruvbox/groups.lua
deleted file mode 100644
index 9a2c55a..0000000
--- a/lua/gruvbox/groups.lua
+++ /dev/null
@@ -1,838 +0,0 @@
-local M = {}
-
--- setup Gruvbox groups
----@param config GruvboxConfig
-M.setup = function(config)
- local colors = require("gruvbox.palette").get_base_colors(config.palette_overrides, vim.o.background, config.contrast)
-
- if config.terminal_colors then
- local term_colors = {
- colors.bg0,
- colors.neutral_red,
- colors.neutral_green,
- colors.neutral_yellow,
- colors.neutral_blue,
- colors.neutral_purple,
- colors.neutral_aqua,
- colors.fg4,
- colors.gray,
- colors.red,
- colors.green,
- colors.yellow,
- colors.blue,
- colors.purple,
- colors.aqua,
- colors.fg1,
- }
- for index, value in ipairs(term_colors) do
- vim.g["terminal_color_" .. index - 1] = value
- end
- end
-
- local groups = {
- GruvboxFg0 = { fg = colors.fg0 },
- GruvboxFg1 = { fg = colors.fg1 },
- GruvboxFg2 = { fg = colors.fg2 },
- GruvboxFg3 = { fg = colors.fg3 },
- GruvboxFg4 = { fg = colors.fg4 },
- GruvboxGray = { fg = colors.gray },
- GruvboxBg0 = { fg = colors.bg0 },
- GruvboxBg1 = { fg = colors.bg1 },
- GruvboxBg2 = { fg = colors.bg2 },
- GruvboxBg3 = { fg = colors.bg3 },
- GruvboxBg4 = { fg = colors.bg4 },
- GruvboxRed = { fg = colors.red },
- GruvboxRedBold = { fg = colors.red, bold = config.bold },
- GruvboxGreen = { fg = colors.green },
- GruvboxGreenBold = { fg = colors.green, bold = config.bold },
- GruvboxYellow = { fg = colors.yellow },
- GruvboxYellowBold = { fg = colors.yellow, bold = config.bold },
- GruvboxBlue = { fg = colors.blue },
- GruvboxBlueBold = { fg = colors.blue, bold = config.bold },
- GruvboxPurple = { fg = colors.purple },
- GruvboxPurpleBold = { fg = colors.purple, bold = config.bold },
- GruvboxAqua = { fg = colors.aqua },
- GruvboxAquaBold = { fg = colors.aqua, bold = config.bold },
- GruvboxOrange = { fg = colors.orange },
- GruvboxOrangeBold = { fg = colors.orange, bold = config.bold },
- GruvboxRedSign = config.transparent_mode and { fg = colors.red, reverse = config.invert_signs }
- or { fg = colors.red, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxGreenSign = config.transparent_mode and { fg = colors.green, reverse = config.invert_signs }
- or { fg = colors.green, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxYellowSign = config.transparent_mode and { fg = colors.yellow, reverse = config.invert_signs }
- or { fg = colors.yellow, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxBlueSign = config.transparent_mode and { fg = colors.blue, reverse = config.invert_signs }
- or { fg = colors.blue, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxPurpleSign = config.transparent_mode and { fg = colors.purple, reverse = config.invert_signs }
- or { fg = colors.purple, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxAquaSign = config.transparent_mode and { fg = colors.aqua, reverse = config.invert_signs }
- or { fg = colors.aqua, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxOrangeSign = config.transparent_mode and { fg = colors.orange, reverse = config.invert_signs }
- or { fg = colors.orange, bg = colors.bg1, reverse = config.invert_signs },
- GruvboxRedUnderline = { undercurl = config.undercurl, sp = colors.red },
- GruvboxGreenUnderline = { undercurl = config.undercurl, sp = colors.green },
- GruvboxYellowUnderline = { undercurl = config.undercurl, sp = colors.yellow },
- GruvboxBlueUnderline = { undercurl = config.undercurl, sp = colors.blue },
- GruvboxPurpleUnderline = { undercurl = config.undercurl, sp = colors.purple },
- GruvboxAquaUnderline = { undercurl = config.undercurl, sp = colors.aqua },
- GruvboxOrangeUnderline = { undercurl = config.undercurl, sp = colors.orange },
- Normal = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg0 },
- NormalFloat = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg1 },
- NormalNC = config.dim_inactive and { fg = colors.fg0, bg = colors.bg1 } or { link = "Normal" },
- CursorLine = { bg = colors.bg1 },
- CursorColumn = { link = "CursorLine" },
- TabLineFill = { fg = colors.bg4, bg = colors.bg1, reverse = config.invert_tabline },
- TabLineSel = { fg = colors.green, bg = colors.bg1, reverse = config.invert_tabline },
- TabLine = { link = "TabLineFill" },
- MatchParen = { bg = colors.bg3, bold = config.bold },
- ColorColumn = { bg = colors.bg1 },
- Conceal = { fg = colors.blue },
- CursorLineNr = { fg = colors.yellow, bg = colors.bg1 },
- NonText = { link = "GruvboxBg2" },
- SpecialKey = { link = "GruvboxFg4" },
- Visual = { bg = colors.bg3, reverse = config.invert_selection },
- VisualNOS = { link = "Visual" },
- Search = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse },
- IncSearch = { fg = colors.orange, bg = colors.bg0, reverse = config.inverse },
- CurSearch = { link = "IncSearch" },
- QuickFixLine = { fg = colors.bg0, bg = colors.yellow, bold = config.bold },
- Underlined = { fg = colors.blue, underline = config.underline },
- StatusLine = { fg = colors.bg2, bg = colors.fg1, reverse = config.inverse },
- StatusLineNC = { fg = colors.bg1, bg = colors.fg4, reverse = config.inverse },
- WinBar = { fg = colors.fg4, bg = colors.bg0 },
- WinBarNC = { fg = colors.fg3, bg = colors.bg1 },
- WinSeparator = config.transparent_mode and { fg = colors.bg3, bg = nil } or { fg = colors.bg3, bg = colors.bg0 },
- WildMenu = { fg = colors.blue, bg = colors.bg2, bold = config.bold },
- Directory = { link = "GruvboxBlueBold" },
- Title = { link = "GruvboxGreenBold" },
- ErrorMsg = { fg = colors.bg0, bg = colors.red, bold = config.bold },
- MoreMsg = { link = "GruvboxYellowBold" },
- ModeMsg = { link = "GruvboxYellowBold" },
- Question = { link = "GruvboxOrangeBold" },
- WarningMsg = { link = "GruvboxRedBold" },
- LineNr = { fg = colors.bg4 },
- SignColumn = config.transparent_mode and { bg = nil } or { bg = colors.bg1 },
- Folded = { fg = colors.gray, bg = colors.bg1, italic = config.italic.folds },
- FoldColumn = config.transparent_mode and { fg = colors.gray, bg = nil } or { fg = colors.gray, bg = colors.bg1 },
- Cursor = { reverse = config.inverse },
- vCursor = { link = "Cursor" },
- iCursor = { link = "Cursor" },
- lCursor = { link = "Cursor" },
- Special = { link = "GruvboxOrange" },
- Comment = { fg = colors.gray, italic = config.italic.comments },
- Todo = { fg = colors.bg0, bg = colors.yellow, bold = config.bold, italic = config.italic.comments },
- Done = { fg = colors.orange, bold = config.bold, italic = config.italic.comments },
- Error = { fg = colors.red, bold = config.bold, reverse = config.inverse },
- Statement = { link = "GruvboxRed" },
- Conditional = { link = "GruvboxRed" },
- Repeat = { link = "GruvboxRed" },
- Label = { link = "GruvboxRed" },
- Exception = { link = "GruvboxRed" },
- Operator = { fg = colors.orange, italic = config.italic.operators },
- Keyword = { link = "GruvboxRed" },
- Identifier = { link = "GruvboxBlue" },
- Function = { link = "GruvboxGreenBold" },
- PreProc = { link = "GruvboxAqua" },
- Include = { link = "GruvboxAqua" },
- Define = { link = "GruvboxAqua" },
- Macro = { link = "GruvboxAqua" },
- PreCondit = { link = "GruvboxAqua" },
- Constant = { link = "GruvboxPurple" },
- Character = { link = "GruvboxPurple" },
- String = { fg = colors.green, italic = config.italic.strings },
- Boolean = { link = "GruvboxPurple" },
- Number = { link = "GruvboxPurple" },
- Float = { link = "GruvboxPurple" },
- Type = { link = "GruvboxYellow" },
- StorageClass = { link = "GruvboxOrange" },
- Structure = { link = "GruvboxAqua" },
- Typedef = { link = "GruvboxYellow" },
- Pmenu = { fg = colors.fg1, bg = colors.bg2 },
- PmenuSel = { fg = colors.bg2, bg = colors.blue, bold = config.bold },
- PmenuSbar = { bg = colors.bg2 },
- PmenuThumb = { bg = colors.bg4 },
- DiffDelete = { fg = colors.red, bg = colors.bg0, reverse = config.inverse },
- DiffAdd = { fg = colors.green, bg = colors.bg0, reverse = config.inverse },
- DiffChange = { fg = colors.aqua, bg = colors.bg0, reverse = config.inverse },
- DiffText = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse },
- SpellCap = { link = "GruvboxBlueUnderline" },
- SpellBad = { link = "GruvboxRedUnderline" },
- SpellLocal = { link = "GruvboxAquaUnderline" },
- SpellRare = { link = "GruvboxPurpleUnderline" },
- Whitespace = { fg = colors.bg2 },
- DiagnosticError = { link = "GruvboxRed" },
- DiagnosticSignError = { link = "GruvboxRedSign" },
- DiagnosticUnderlineError = { link = "GruvboxRedUnderline" },
- DiagnosticWarn = { link = "GruvboxYellow" },
- DiagnosticSignWarn = { link = "GruvboxYellowSign" },
- DiagnosticUnderlineWarn = { link = "GruvboxYellowUnderline" },
- DiagnosticInfo = { link = "GruvboxBlue" },
- DiagnosticSignInfo = { link = "GruvboxBlueSign" },
- DiagnosticUnderlineInfo = { link = "GruvboxBlueUnderline" },
- DiagnosticHint = { link = "GruvboxAqua" },
- DiagnosticSignHint = { link = "GruvboxAquaSign" },
- DiagnosticUnderlineHint = { link = "GruvboxAquaUnderline" },
- DiagnosticFloatingError = { link = "GruvboxRed" },
- DiagnosticFloatingWarn = { link = "GruvboxOrange" },
- DiagnosticFloatingInfo = { link = "GruvboxBlue" },
- DiagnosticFloatingHint = { link = "GruvboxAqua" },
- DiagnosticVirtualTextError = { link = "GruvboxRed" },
- DiagnosticVirtualTextWarn = { link = "GruvboxYellow" },
- DiagnosticVirtualTextInfo = { link = "GruvboxBlue" },
- DiagnosticVirtualTextHint = { link = "GruvboxAqua" },
- LspReferenceRead = { link = "GruvboxYellowBold" },
- LspReferenceText = { link = "GruvboxYellowBold" },
- LspReferenceWrite = { link = "GruvboxOrangeBold" },
- LspCodeLens = { link = "GruvboxGray" },
- LspSignatureActiveParameter = { link = "Search" },
- gitcommitSelectedFile = { link = "GruvboxGreen" },
- gitcommitDiscardedFile = { link = "GruvboxRed" },
- GitSignsAdd = { link = "GruvboxGreenSign" },
- GitSignsChange = { link = "GruvboxAquaSign" },
- GitSignsDelete = { link = "GruvboxRedSign" },
- NvimTreeSymlink = { fg = colors.neutral_aqua },
- NvimTreeRootFolder = { fg = colors.neutral_purple, bold = true },
- NvimTreeFolderIcon = { fg = colors.neutral_blue, bold = true },
- NvimTreeFileIcon = { fg = colors.light2 },
- NvimTreeExecFile = { fg = colors.neutral_green, bold = true },
- NvimTreeOpenedFile = { fg = colors.bright_red, bold = true },
- NvimTreeSpecialFile = { fg = colors.neutral_yellow, bold = true, underline = true },
- NvimTreeImageFile = { fg = colors.neutral_purple },
- NvimTreeIndentMarker = { fg = colors.dark3 },
- NvimTreeGitDirty = { fg = colors.neutral_yellow },
- NvimTreeGitStaged = { fg = colors.neutral_yellow },
- NvimTreeGitMerge = { fg = colors.neutral_purple },
- NvimTreeGitRenamed = { fg = colors.neutral_purple },
- NvimTreeGitNew = { fg = colors.neutral_yellow },
- NvimTreeGitDeleted = { fg = colors.neutral_red },
- NvimTreeWindowPicker = { bg = colors.faded_aqua },
- debugPC = { bg = colors.faded_blue },
- debugBreakpoint = { link = "GruvboxRedSign" },
- StartifyBracket = { link = "GruvboxFg3" },
- StartifyFile = { link = "GruvboxFg1" },
- StartifyNumber = { link = "GruvboxBlue" },
- StartifyPath = { link = "GruvboxGray" },
- StartifySlash = { link = "GruvboxGray" },
- StartifySection = { link = "GruvboxYellow" },
- StartifySpecial = { link = "GruvboxBg2" },
- StartifyHeader = { link = "GruvboxOrange" },
- StartifyFooter = { link = "GruvboxBg2" },
- StartifyVar = { link = "StartifyPath" },
- StartifySelect = { link = "Title" },
- DirvishPathTail = { link = "GruvboxAqua" },
- DirvishArg = { link = "GruvboxYellow" },
- netrwDir = { link = "GruvboxAqua" },
- netrwClassify = { link = "GruvboxAqua" },
- netrwLink = { link = "GruvboxGray" },
- netrwSymLink = { link = "GruvboxFg1" },
- netrwExe = { link = "GruvboxYellow" },
- netrwComment = { link = "GruvboxGray" },
- netrwList = { link = "GruvboxBlue" },
- netrwHelpCmd = { link = "GruvboxAqua" },
- netrwCmdSep = { link = "GruvboxFg3" },
- netrwVersion = { link = "GruvboxGreen" },
- NERDTreeDir = { link = "GruvboxAqua" },
- NERDTreeDirSlash = { link = "GruvboxAqua" },
- NERDTreeOpenable = { link = "GruvboxOrange" },
- NERDTreeClosable = { link = "GruvboxOrange" },
- NERDTreeFile = { link = "GruvboxFg1" },
- NERDTreeExecFile = { link = "GruvboxYellow" },
- NERDTreeUp = { link = "GruvboxGray" },
- NERDTreeCWD = { link = "GruvboxGreen" },
- NERDTreeHelp = { link = "GruvboxFg1" },
- NERDTreeToggleOn = { link = "GruvboxGreen" },
- NERDTreeToggleOff = { link = "GruvboxRed" },
- CocErrorSign = { link = "GruvboxRedSign" },
- CocWarningSign = { link = "GruvboxOrangeSign" },
- CocInfoSign = { link = "GruvboxBlueSign" },
- CocHintSign = { link = "GruvboxAquaSign" },
- CocErrorFloat = { link = "GruvboxRed" },
- CocWarningFloat = { link = "GruvboxOrange" },
- CocInfoFloat = { link = "GruvboxBlue" },
- CocHintFloat = { link = "GruvboxAqua" },
- CocDiagnosticsError = { link = "GruvboxRed" },
- CocDiagnosticsWarning = { link = "GruvboxOrange" },
- CocDiagnosticsInfo = { link = "GruvboxBlue" },
- CocDiagnosticsHint = { link = "GruvboxAqua" },
- CocSelectedText = { link = "GruvboxRed" },
- CocMenuSel = { link = "PmenuSel" },
- CocCodeLens = { link = "GruvboxGray" },
- CocErrorHighlight = { link = "GruvboxRedUnderline" },
- CocWarningHighlight = { link = "GruvboxOrangeUnderline" },
- CocInfoHighlight = { link = "GruvboxBlueUnderline" },
- CocHintHighlight = { link = "GruvboxAquaUnderline" },
- TelescopeNormal = { link = "GruvboxFg1" },
- TelescopeSelection = { link = "GruvboxOrangeBold" },
- TelescopeSelectionCaret = { link = "GruvboxRed" },
- TelescopeMultiSelection = { link = "GruvboxGray" },
- TelescopeBorder = { link = "TelescopeNormal" },
- TelescopePromptBorder = { link = "TelescopeNormal" },
- TelescopeResultsBorder = { link = "TelescopeNormal" },
- TelescopePreviewBorder = { link = "TelescopeNormal" },
- TelescopeMatching = { link = "GruvboxBlue" },
- TelescopePromptPrefix = { link = "GruvboxRed" },
- TelescopePrompt = { link = "TelescopeNormal" },
- CmpItemAbbr = { link = "GruvboxFg0" },
- CmpItemAbbrDeprecated = { link = "GruvboxFg1" },
- CmpItemAbbrMatch = { link = "GruvboxBlueBold" },
- CmpItemAbbrMatchFuzzy = { link = "GruvboxBlueUnderline" },
- CmpItemMenu = { link = "GruvboxGray" },
- CmpItemKindText = { link = "GruvboxOrange" },
- CmpItemKindVariable = { link = "GruvboxOrange" },
- CmpItemKindMethod = { link = "GruvboxBlue" },
- CmpItemKindFunction = { link = "GruvboxBlue" },
- CmpItemKindConstructor = { link = "GruvboxYellow" },
- CmpItemKindUnit = { link = "GruvboxBlue" },
- CmpItemKindField = { link = "GruvboxBlue" },
- CmpItemKindClass = { link = "GruvboxYellow" },
- CmpItemKindInterface = { link = "GruvboxYellow" },
- CmpItemKindModule = { link = "GruvboxBlue" },
- CmpItemKindProperty = { link = "GruvboxBlue" },
- CmpItemKindValue = { link = "GruvboxOrange" },
- CmpItemKindEnum = { link = "GruvboxYellow" },
- CmpItemKindOperator = { link = "GruvboxYellow" },
- CmpItemKindKeyword = { link = "GruvboxPurple" },
- CmpItemKindEvent = { link = "GruvboxPurple" },
- CmpItemKindReference = { link = "GruvboxPurple" },
- CmpItemKindColor = { link = "GruvboxPurple" },
- CmpItemKindSnippet = { link = "GruvboxGreen" },
- CmpItemKindFile = { link = "GruvboxBlue" },
- CmpItemKindFolder = { link = "GruvboxBlue" },
- CmpItemKindEnumMember = { link = "GruvboxAqua" },
- CmpItemKindConstant = { link = "GruvboxOrange" },
- CmpItemKindStruct = { link = "GruvboxYellow" },
- CmpItemKindTypeParameter = { link = "GruvboxYellow" },
- diffAdded = { link = "GruvboxGreen" },
- diffRemoved = { link = "GruvboxRed" },
- diffChanged = { link = "GruvboxAqua" },
- diffFile = { link = "GruvboxOrange" },
- diffNewFile = { link = "GruvboxYellow" },
- diffOldFile = { link = "GruvboxOrange" },
- diffLine = { link = "GruvboxBlue" },
- diffIndexLine = { link = "diffChanged" },
- NavicIconsFile = { link = "GruvboxBlue" },
- NavicIconsModule = { link = "GruvboxOrange" },
- NavicIconsNamespace = { link = "GruvboxBlue" },
- NavicIconsPackage = { link = "GruvboxAqua" },
- NavicIconsClass = { link = "GruvboxYellow" },
- NavicIconsMethod = { link = "GruvboxBlue" },
- NavicIconsProperty = { link = "GruvboxAqua" },
- NavicIconsField = { link = "GruvboxPurple" },
- NavicIconsConstructor = { link = "GruvboxBlue" },
- NavicIconsEnum = { link = "GruvboxPurple" },
- NavicIconsInterface = { link = "GruvboxGreen" },
- NavicIconsFunction = { link = "GruvboxBlue" },
- NavicIconsVariable = { link = "GruvboxPurple" },
- NavicIconsConstant = { link = "GruvboxOrange" },
- NavicIconsString = { link = "GruvboxGreen" },
- NavicIconsNumber = { link = "GruvboxOrange" },
- NavicIconsBoolean = { link = "GruvboxOrange" },
- NavicIconsArray = { link = "GruvboxOrange" },
- NavicIconsObject = { link = "GruvboxOrange" },
- NavicIconsKey = { link = "GruvboxAqua" },
- NavicIconsNull = { link = "GruvboxOrange" },
- NavicIconsEnumMember = { link = "GruvboxYellow" },
- NavicIconsStruct = { link = "GruvboxPurple" },
- NavicIconsEvent = { link = "GruvboxYellow" },
- NavicIconsOperator = { link = "GruvboxRed" },
- NavicIconsTypeParameter = { link = "GruvboxRed" },
- NavicText = { link = "GruvboxWhite" },
- NavicSeparator = { link = "GruvboxWhite" },
- htmlTag = { link = "GruvboxAquaBold" },
- htmlEndTag = { link = "GruvboxAquaBold" },
- htmlTagName = { link = "GruvboxBlue" },
- htmlArg = { link = "GruvboxOrange" },
- htmlTagN = { link = "GruvboxFg1" },
- htmlSpecialTagName = { link = "GruvboxBlue" },
- htmlLink = { fg = colors.fg4, underline = config.underline },
- htmlSpecialChar = { link = "GruvboxRed" },
- htmlBold = { fg = colors.fg0, bg = colors.bg0, bold = config.bold },
- htmlBoldUnderline = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, underline = config.underline },
- htmlBoldItalic = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, italic = true },
- htmlBoldUnderlineItalic = {
- fg = colors.fg0,
- bg = colors.bg0,
- bold = config.bold,
- italic = true,
- underline = config.underline,
- },
- htmlUnderline = { fg = colors.fg0, bg = colors.bg0, underline = config.underline },
- htmlUnderlineItalic = {
- fg = colors.fg0,
- bg = colors.bg0,
- italic = true,
- underline = config.underline,
- },
- htmlItalic = { fg = colors.fg0, bg = colors.bg0, italic = true },
- xmlTag = { link = "GruvboxAquaBold" },
- xmlEndTag = { link = "GruvboxAquaBold" },
- xmlTagName = { link = "GruvboxBlue" },
- xmlEqual = { link = "GruvboxBlue" },
- docbkKeyword = { link = "GruvboxAquaBold" },
- xmlDocTypeDecl = { link = "GruvboxGray" },
- xmlDocTypeKeyword = { link = "GruvboxPurple" },
- xmlCdataStart = { link = "GruvboxGray" },
- xmlCdataCdata = { link = "GruvboxPurple" },
- dtdFunction = { link = "GruvboxGray" },
- dtdTagName = { link = "GruvboxPurple" },
- xmlAttrib = { link = "GruvboxOrange" },
- xmlProcessingDelim = { link = "GruvboxGray" },
- dtdParamEntityPunct = { link = "GruvboxGray" },
- dtdParamEntityDPunct = { link = "GruvboxGray" },
- xmlAttribPunct = { link = "GruvboxGray" },
- xmlEntity = { link = "GruvboxRed" },
- xmlEntityPunct = { link = "GruvboxRed" },
- clojureKeyword = { link = "GruvboxBlue" },
- clojureCond = { link = "GruvboxOrange" },
- clojureSpecial = { link = "GruvboxOrange" },
- clojureDefine = { link = "GruvboxOrange" },
- clojureFunc = { link = "GruvboxYellow" },
- clojureRepeat = { link = "GruvboxYellow" },
- clojureCharacter = { link = "GruvboxAqua" },
- clojureStringEscape = { link = "GruvboxAqua" },
- clojureException = { link = "GruvboxRed" },
- clojureRegexp = { link = "GruvboxAqua" },
- clojureRegexpEscape = { link = "GruvboxAqua" },
- clojureRegexpCharClass = { fg = colors.fg3, bold = config.bold },
- clojureRegexpMod = { link = "clojureRegexpCharClass" },
- clojureRegexpQuantifier = { link = "clojureRegexpCharClass" },
- clojureParen = { link = "GruvboxFg3" },
- clojureAnonArg = { link = "GruvboxYellow" },
- clojureVariable = { link = "GruvboxBlue" },
- clojureMacro = { link = "GruvboxOrange" },
- clojureMeta = { link = "GruvboxYellow" },
- clojureDeref = { link = "GruvboxYellow" },
- clojureQuote = { link = "GruvboxYellow" },
- clojureUnquote = { link = "GruvboxYellow" },
- cOperator = { link = "GruvboxPurple" },
- cppOperator = { link = "GruvboxPurple" },
- cStructure = { link = "GruvboxOrange" },
- pythonBuiltin = { link = "GruvboxOrange" },
- pythonBuiltinObj = { link = "GruvboxOrange" },
- pythonBuiltinFunc = { link = "GruvboxOrange" },
- pythonFunction = { link = "GruvboxAqua" },
- pythonDecorator = { link = "GruvboxRed" },
- pythonInclude = { link = "GruvboxBlue" },
- pythonImport = { link = "GruvboxBlue" },
- pythonRun = { link = "GruvboxBlue" },
- pythonCoding = { link = "GruvboxBlue" },
- pythonOperator = { link = "GruvboxRed" },
- pythonException = { link = "GruvboxRed" },
- pythonExceptions = { link = "GruvboxPurple" },
- pythonBoolean = { link = "GruvboxPurple" },
- pythonDot = { link = "GruvboxFg3" },
- pythonConditional = { link = "GruvboxRed" },
- pythonRepeat = { link = "GruvboxRed" },
- pythonDottedName = { link = "GruvboxGreenBold" },
- cssBraces = { link = "GruvboxBlue" },
- cssFunctionName = { link = "GruvboxYellow" },
- cssIdentifier = { link = "GruvboxOrange" },
- cssClassName = { link = "GruvboxGreen" },
- cssColor = { link = "GruvboxBlue" },
- cssSelectorOp = { link = "GruvboxBlue" },
- cssSelectorOp2 = { link = "GruvboxBlue" },
- cssImportant = { link = "GruvboxGreen" },
- cssVendor = { link = "GruvboxFg1" },
- cssTextProp = { link = "GruvboxAqua" },
- cssAnimationProp = { link = "GruvboxAqua" },
- cssUIProp = { link = "GruvboxYellow" },
- cssTransformProp = { link = "GruvboxAqua" },
- cssTransitionProp = { link = "GruvboxAqua" },
- cssPrintProp = { link = "GruvboxAqua" },
- cssPositioningProp = { link = "GruvboxYellow" },
- cssBoxProp = { link = "GruvboxAqua" },
- cssFontDescriptorProp = { link = "GruvboxAqua" },
- cssFlexibleBoxProp = { link = "GruvboxAqua" },
- cssBorderOutlineProp = { link = "GruvboxAqua" },
- cssBackgroundProp = { link = "GruvboxAqua" },
- cssMarginProp = { link = "GruvboxAqua" },
- cssListProp = { link = "GruvboxAqua" },
- cssTableProp = { link = "GruvboxAqua" },
- cssFontProp = { link = "GruvboxAqua" },
- cssPaddingProp = { link = "GruvboxAqua" },
- cssDimensionProp = { link = "GruvboxAqua" },
- cssRenderProp = { link = "GruvboxAqua" },
- cssColorProp = { link = "GruvboxAqua" },
- cssGeneratedContentProp = { link = "GruvboxAqua" },
- javaScriptBraces = { link = "GruvboxFg1" },
- javaScriptFunction = { link = "GruvboxAqua" },
- javaScriptIdentifier = { link = "GruvboxRed" },
- javaScriptMember = { link = "GruvboxBlue" },
- javaScriptNumber = { link = "GruvboxPurple" },
- javaScriptNull = { link = "GruvboxPurple" },
- javaScriptParens = { link = "GruvboxFg3" },
- typescriptReserved = { link = "GruvboxAqua" },
- typescriptLabel = { link = "GruvboxAqua" },
- typescriptFuncKeyword = { link = "GruvboxAqua" },
- typescriptIdentifier = { link = "GruvboxOrange" },
- typescriptBraces = { link = "GruvboxFg1" },
- typescriptEndColons = { link = "GruvboxFg1" },
- typescriptDOMObjects = { link = "GruvboxFg1" },
- typescriptAjaxMethods = { link = "GruvboxFg1" },
- typescriptLogicSymbols = { link = "GruvboxFg1" },
- typescriptDocSeeTag = { link = "Comment" },
- typescriptDocParam = { link = "Comment" },
- typescriptDocTags = { link = "vimCommentTitle" },
- typescriptGlobalObjects = { link = "GruvboxFg1" },
- typescriptParens = { link = "GruvboxFg3" },
- typescriptOpSymbols = { link = "GruvboxFg3" },
- typescriptHtmlElemProperties = { link = "GruvboxFg1" },
- typescriptNull = { link = "GruvboxPurple" },
- typescriptInterpolationDelimiter = { link = "GruvboxAqua" },
- purescriptModuleKeyword = { link = "GruvboxAqua" },
- purescriptModuleName = { link = "GruvboxFg1" },
- purescriptWhere = { link = "GruvboxAqua" },
- purescriptDelimiter = { link = "GruvboxFg4" },
- purescriptType = { link = "GruvboxFg1" },
- purescriptImportKeyword = { link = "GruvboxAqua" },
- purescriptHidingKeyword = { link = "GruvboxAqua" },
- purescriptAsKeyword = { link = "GruvboxAqua" },
- purescriptStructure = { link = "GruvboxAqua" },
- purescriptOperator = { link = "GruvboxBlue" },
- purescriptTypeVar = { link = "GruvboxFg1" },
- purescriptConstructor = { link = "GruvboxFg1" },
- purescriptFunction = { link = "GruvboxFg1" },
- purescriptConditional = { link = "GruvboxOrange" },
- purescriptBacktick = { link = "GruvboxOrange" },
- coffeeExtendedOp = { link = "GruvboxFg3" },
- coffeeSpecialOp = { link = "GruvboxFg3" },
- coffeeCurly = { link = "GruvboxOrange" },
- coffeeParen = { link = "GruvboxFg3" },
- coffeeBracket = { link = "GruvboxOrange" },
- rubyStringDelimiter = { link = "GruvboxGreen" },
- rubyInterpolationDelimiter = { link = "GruvboxAqua" },
- rubyDefinedOperator = { link = "rubyKeyword" },
- objcTypeModifier = { link = "GruvboxRed" },
- objcDirective = { link = "GruvboxBlue" },
- goDirective = { link = "GruvboxAqua" },
- goConstants = { link = "GruvboxPurple" },
- goDeclaration = { link = "GruvboxRed" },
- goDeclType = { link = "GruvboxBlue" },
- goBuiltins = { link = "GruvboxOrange" },
- luaIn = { link = "GruvboxRed" },
- luaFunction = { link = "GruvboxAqua" },
- luaTable = { link = "GruvboxOrange" },
- moonSpecialOp = { link = "GruvboxFg3" },
- moonExtendedOp = { link = "GruvboxFg3" },
- moonFunction = { link = "GruvboxFg3" },
- moonObject = { link = "GruvboxYellow" },
- javaAnnotation = { link = "GruvboxBlue" },
- javaDocTags = { link = "GruvboxAqua" },
- javaCommentTitle = { link = "vimCommentTitle" },
- javaParen = { link = "GruvboxFg3" },
- javaParen1 = { link = "GruvboxFg3" },
- javaParen2 = { link = "GruvboxFg3" },
- javaParen3 = { link = "GruvboxFg3" },
- javaParen4 = { link = "GruvboxFg3" },
- javaParen5 = { link = "GruvboxFg3" },
- javaOperator = { link = "GruvboxOrange" },
- javaVarArg = { link = "GruvboxGreen" },
- elixirDocString = { link = "Comment" },
- elixirStringDelimiter = { link = "GruvboxGreen" },
- elixirInterpolationDelimiter = { link = "GruvboxAqua" },
- elixirModuleDeclaration = { link = "GruvboxYellow" },
- scalaNameDefinition = { link = "GruvboxFg1" },
- scalaCaseFollowing = { link = "GruvboxFg1" },
- scalaCapitalWord = { link = "GruvboxFg1" },
- scalaTypeExtension = { link = "GruvboxFg1" },
- scalaKeyword = { link = "GruvboxRed" },
- scalaKeywordModifier = { link = "GruvboxRed" },
- scalaSpecial = { link = "GruvboxAqua" },
- scalaOperator = { link = "GruvboxFg1" },
- scalaTypeDeclaration = { link = "GruvboxYellow" },
- scalaTypeTypePostDeclaration = { link = "GruvboxYellow" },
- scalaInstanceDeclaration = { link = "GruvboxFg1" },
- scalaInterpolation = { link = "GruvboxAqua" },
- markdownItalic = { fg = colors.fg3, italic = true },
- markdownBold = { fg = colors.fg3, bold = config.bold },
- markdownBoldItalic = { fg = colors.fg3, bold = config.bold, italic = true },
- markdownH1 = { link = "GruvboxGreenBold" },
- markdownH2 = { link = "GruvboxGreenBold" },
- markdownH3 = { link = "GruvboxYellowBold" },
- markdownH4 = { link = "GruvboxYellowBold" },
- markdownH5 = { link = "GruvboxYellow" },
- markdownH6 = { link = "GruvboxYellow" },
- markdownCode = { link = "GruvboxAqua" },
- markdownCodeBlock = { link = "GruvboxAqua" },
- markdownCodeDelimiter = { link = "GruvboxAqua" },
- markdownBlockquote = { link = "GruvboxGray" },
- markdownListMarker = { link = "GruvboxGray" },
- markdownOrderedListMarker = { link = "GruvboxGray" },
- markdownRule = { link = "GruvboxGray" },
- markdownHeadingRule = { link = "GruvboxGray" },
- markdownUrlDelimiter = { link = "GruvboxFg3" },
- markdownLinkDelimiter = { link = "GruvboxFg3" },
- markdownLinkTextDelimiter = { link = "GruvboxFg3" },
- markdownHeadingDelimiter = { link = "GruvboxOrange" },
- markdownUrl = { link = "GruvboxPurple" },
- markdownUrlTitleDelimiter = { link = "GruvboxGreen" },
- markdownLinkText = { fg = colors.gray, underline = config.underline },
- markdownIdDeclaration = { link = "markdownLinkText" },
- haskellType = { link = "GruvboxBlue" },
- haskellIdentifier = { link = "GruvboxAqua" },
- haskellSeparator = { link = "GruvboxFg4" },
- haskellDelimiter = { link = "GruvboxOrange" },
- haskellOperators = { link = "GruvboxPurple" },
- haskellBacktick = { link = "GruvboxOrange" },
- haskellStatement = { link = "GruvboxPurple" },
- haskellConditional = { link = "GruvboxPurple" },
- haskellLet = { link = "GruvboxRed" },
- haskellDefault = { link = "GruvboxRed" },
- haskellWhere = { link = "GruvboxRed" },
- haskellBottom = { link = "GruvboxRedBold" },
- haskellImportKeywords = { link = "GruvboxPurpleBold" },
- haskellDeclKeyword = { link = "GruvboxOrange" },
- haskellDecl = { link = "GruvboxOrange" },
- haskellDeriving = { link = "GruvboxPurple" },
- haskellAssocType = { link = "GruvboxAqua" },
- haskellNumber = { link = "GruvboxAqua" },
- haskellPragma = { link = "GruvboxRedBold" },
- haskellTH = { link = "GruvboxAquaBold" },
- haskellForeignKeywords = { link = "GruvboxGreen" },
- haskellKeyword = { link = "GruvboxRed" },
- haskellFloat = { link = "GruvboxAqua" },
- haskellInfix = { link = "GruvboxPurple" },
- haskellQuote = { link = "GruvboxGreenBold" },
- haskellShebang = { link = "GruvboxYellowBold" },
- haskellLiquid = { link = "GruvboxPurpleBold" },
- haskellQuasiQuoted = { link = "GruvboxBlueBold" },
- haskellRecursiveDo = { link = "GruvboxPurple" },
- haskellQuotedType = { link = "GruvboxRed" },
- haskellPreProc = { link = "GruvboxFg4" },
- haskellTypeRoles = { link = "GruvboxRedBold" },
- haskellTypeForall = { link = "GruvboxRed" },
- haskellPatternKeyword = { link = "GruvboxBlue" },
- jsonKeyword = { link = "GruvboxGreen" },
- jsonQuote = { link = "GruvboxGreen" },
- jsonBraces = { link = "GruvboxFg1" },
- jsonString = { link = "GruvboxFg1" },
- mailQuoted1 = { link = "GruvboxAqua" },
- mailQuoted2 = { link = "GruvboxPurple" },
- mailQuoted3 = { link = "GruvboxYellow" },
- mailQuoted4 = { link = "GruvboxGreen" },
- mailQuoted5 = { link = "GruvboxRed" },
- mailQuoted6 = { link = "GruvboxOrange" },
- mailSignature = { link = "Comment" },
- csBraces = { link = "GruvboxFg1" },
- csEndColon = { link = "GruvboxFg1" },
- csLogicSymbols = { link = "GruvboxFg1" },
- csParens = { link = "GruvboxFg3" },
- csOpSymbols = { link = "GruvboxFg3" },
- csInterpolationDelimiter = { link = "GruvboxFg3" },
- csInterpolationAlignDel = { link = "GruvboxAquaBold" },
- csInterpolationFormat = { link = "GruvboxAqua" },
- csInterpolationFormatDel = { link = "GruvboxAquaBold" },
- rustSigil = { link = "GruvboxOrange" },
- rustEscape = { link = "GruvboxAqua" },
- rustStringContinuation = { link = "GruvboxAqua" },
- rustEnum = { link = "GruvboxAqua" },
- rustStructure = { link = "GruvboxAqua" },
- rustModPathSep = { link = "GruvboxFg2" },
- rustCommentLineDoc = { link = "Comment" },
- rustDefault = { link = "GruvboxAqua" },
- ocamlOperator = { link = "GruvboxFg1" },
- ocamlKeyChar = { link = "GruvboxOrange" },
- ocamlArrow = { link = "GruvboxOrange" },
- ocamlInfixOpKeyword = { link = "GruvboxRed" },
- ocamlConstructor = { link = "GruvboxOrange" },
- LspSagaCodeActionTitle = { link = "Title" },
- LspSagaCodeActionBorder = { link = "GruvboxFg1" },
- LspSagaCodeActionContent = { fg = colors.green, bold = config.bold },
- LspSagaLspFinderBorder = { link = "GruvboxFg1" },
- LspSagaAutoPreview = { link = "GruvboxOrange" },
- TargetWord = { fg = colors.blue, bold = config.bold },
- FinderSeparator = { link = "GruvboxAqua" },
- LspSagaDefPreviewBorder = { link = "GruvboxBlue" },
- LspSagaHoverBorder = { link = "GruvboxOrange" },
- LspSagaRenameBorder = { link = "GruvboxBlue" },
- LspSagaDiagnosticSource = { link = "GruvboxOrange" },
- LspSagaDiagnosticBorder = { link = "GruvboxPurple" },
- LspSagaDiagnosticHeader = { link = "GruvboxGreen" },
- LspSagaSignatureHelpBorder = { link = "GruvboxGreen" },
- SagaShadow = { link = "GruvboxBg0" },
- DashboardShortCut = { link = "GruvboxOrange" },
- DashboardHeader = { link = "GruvboxAqua" },
- DashboardCenter = { link = "GruvboxYellow" },
- DashboardFooter = { fg = colors.purple, italic = true },
- MasonHighlight = { link = "GruvboxAqua" },
- MasonHighlightBlock = { fg = colors.bg0, bg = colors.blue },
- MasonHighlightBlockBold = { fg = colors.bg0, bg = colors.blue, bold = true },
- MasonHighlightSecondary = { fg = colors.yellow },
- MasonHighlightBlockSecondary = { fg = colors.bg0, bg = colors.yellow },
- MasonHighlightBlockBoldSecondary = { fg = colors.bg0, bg = colors.yellow, bold = true },
- MasonHeader = { link = "MasonHighlightBlockBoldSecondary" },
- MasonHeaderSecondary = { link = "MasonHighlightBlockBold" },
- MasonMuted = { fg = colors.fg4 },
- MasonMutedBlock = { fg = colors.bg0, bg = colors.fg4 },
- MasonMutedBlockBold = { fg = colors.bg0, bg = colors.fg4, bold = true },
- LspInlayHint = { link = "comment" },
- CarbonFile = { link = "GruvboxFg1" },
- CarbonExe = { link = "GruvboxYellow" },
- CarbonSymlink = { link = "GruvboxAqua" },
- CarbonBrokenSymlink = { link = "GruvboxRed" },
- CarbonIndicator = { link = "GruvboxGray" },
- CarbonDanger = { link = "GruvboxRed" },
- CarbonPending = { link = "GruvboxYellow" },
- NoiceCursor = { link = "TermCursor" },
- NotifyDEBUGBorder = { link = "GruvboxBlue" },
- NotifyDEBUGIcon = { link = "GruvboxBlue" },
- NotifyDEBUGTitle = { link = "GruvboxBlue" },
- NotifyERRORBorder = { link = "GruvboxRed" },
- NotifyERRORIcon = { link = "GruvboxRed" },
- NotifyERRORTitle = { link = "GruvboxRed" },
- NotifyINFOBorder = { link = "GruvboxAqua" },
- NotifyINFOIcon = { link = "GruvboxAqua" },
- NotifyINFOTitle = { link = "GruvboxAqua" },
- NotifyTRACEBorder = { link = "GruvboxGreen" },
- NotifyTRACEIcon = { link = "GruvboxGreen" },
- NotifyTRACETitle = { link = "GruvboxGreen" },
- NotifyWARNBorder = { link = "GruvboxYellow" },
- NotifyWARNIcon = { link = "GruvboxYellow" },
- NotifyWARNTitle = { link = "GruvboxYellow" },
- IlluminatedWordText = { link = "LspReferenceText" },
- IlluminatedWordRead = { link = "LspReferenceRead" },
- IlluminatedWordWrite = { link = "LspReferenceWrite" },
- TSRainbowRed = { fg = colors.red },
- TSRainbowOrange = { fg = colors.orange },
- TSRainbowYellow = { fg = colors.yellow },
- TSRainbowGreen = { fg = colors.green },
- TSRainbowBlue = { fg = colors.blue },
- TSRainbowViolet = { fg = colors.purple },
- TSRainbowCyan = { fg = colors.cyan },
- DapBreakpointSymbol = { fg = colors.red, bg = colors.bg1 },
- DapStoppedSymbol = { fg = colors.green, bg = colors.bg1 },
- DapUIBreakpointsCurrentLine = { link = "GruvboxYellow" },
- DapUIBreakpointsDisabledLine = { link = "GruvboxGray" },
- DapUIBreakpointsInfo = { link = "GruvboxAqua" },
- DapUIBreakpointsLine = { link = "GruvboxYellow" },
- DapUIBreakpointsPath = { link = "GruvboxBlue" },
- DapUICurrentFrameName = { link = "GruvboxPurple" },
- DapUIDecoration = { link = "GruvboxPurple" },
- DapUIEndofBuffer = { link = "GruvboxBg2" },
- DapUIFloatBorder = { link = "GruvboxAqua" },
- DapUILineNumber = { link = "GruvboxYellow" },
- DapUIModifiedValue = { link = "GruvboxRed" },
- DapUIPlayPause = { fg = colors.green, bg = colors.bg1 },
- DapUIRestart = { fg = colors.green, bg = colors.bg1 },
- DapUIScope = { link = "GruvboxBlue" },
- DapUISource = { link = "GruvboxFg1" },
- DapUIStepBack = { fg = colors.blue, bg = colors.bg1 },
- DapUIStepInto = { fg = colors.blue, bg = colors.bg1 },
- DapUIStepOut = { fg = colors.blue, bg = colors.bg1 },
- DapUIStepOver = { fg = colors.blue, bg = colors.bg1 },
- DapUIStop = { fg = colors.red, bg = colors.bg1 },
- DapUIStoppedThread = { link = "GruvboxBlue" },
- DapUIThread = { link = "GruvboxBlue" },
- DapUIType = { link = "GruvboxOrange" },
- DapUIUnavailable = { link = "GruvboxGray" },
- DapUIWatchesEmpty = { link = "GruvboxGray" },
- DapUIWatchesError = { link = "GruvboxRed" },
- DapUIWatchesValue = { link = "GruvboxYellow" },
- DapUIWinSelect = { link = "GruvboxYellow" },
- ["@comment"] = { link = "Comment" },
- ["@none"] = { bg = "NONE", fg = "NONE" },
- ["@preproc"] = { link = "PreProc" },
- ["@define"] = { link = "Define" },
- ["@operator"] = { link = "Operator" },
- ["@punctuation.delimiter"] = { link = "Delimiter" },
- ["@punctuation.bracket"] = { link = "Delimiter" },
- ["@punctuation.special"] = { link = "Delimiter" },
- ["@string"] = { link = "String" },
- ["@string.regex"] = { link = "String" },
- ["@string.escape"] = { link = "SpecialChar" },
- ["@string.special"] = { link = "SpecialChar" },
- ["@character"] = { link = "Character" },
- ["@character.special"] = { link = "SpecialChar" },
- ["@boolean"] = { link = "Boolean" },
- ["@number"] = { link = "Number" },
- ["@float"] = { link = "Float" },
- ["@function"] = { link = "Function" },
- ["@function.builtin"] = { link = "Special" },
- ["@function.call"] = { link = "Function" },
- ["@function.macro"] = { link = "Macro" },
- ["@method"] = { link = "Function" },
- ["@method.call"] = { link = "Function" },
- ["@constructor"] = { link = "Special" },
- ["@parameter"] = { link = "Identifier" },
- ["@keyword"] = { link = "Keyword" },
- ["@keyword.function"] = { link = "Keyword" },
- ["@keyword.operator"] = { link = "GruvboxRed" },
- ["@keyword.return"] = { link = "Keyword" },
- ["@conditional"] = { link = "Conditional" },
- ["@repeat"] = { link = "Repeat" },
- ["@debug"] = { link = "Debug" },
- ["@label"] = { link = "Label" },
- ["@include"] = { link = "Include" },
- ["@exception"] = { link = "Exception" },
- ["@type"] = { link = "Type" },
- ["@type.builtin"] = { link = "Type" },
- ["@type.definition"] = { link = "Typedef" },
- ["@type.qualifier"] = { link = "Type" },
- ["@storageclass"] = { link = "StorageClass" },
- ["@attribute"] = { link = "PreProc" },
- ["@field"] = { link = "Identifier" },
- ["@property"] = { link = "Identifier" },
- ["@variable"] = { link = "GruvboxFg1" },
- ["@variable.builtin"] = { link = "Special" },
- ["@constant"] = { link = "Constant" },
- ["@constant.builtin"] = { link = "Special" },
- ["@constant.macro"] = { link = "Define" },
- ["@namespace"] = { link = "GruvboxFg1" },
- ["@symbol"] = { link = "Identifier" },
- ["@text"] = { link = "GruvboxFg1" },
- ["@text.strong"] = { bold = config.bold },
- ["@text.emphasis"] = { italic = config.italic.emphasis },
- ["@text.underline"] = { underline = config.underline },
- ["@text.strike"] = { strikethrough = config.strikethrough },
- ["@text.title"] = { link = "Title" },
- ["@text.literal"] = { link = "String" },
- ["@text.uri"] = { link = "Underlined" },
- ["@text.math"] = { link = "Special" },
- ["@text.environment"] = { link = "Macro" },
- ["@text.environment.name"] = { link = "Type" },
- ["@text.reference"] = { link = "Constant" },
- ["@text.todo"] = { link = "Todo" },
- ["@text.note"] = { link = "SpecialComment" },
- ["@text.note.comment"] = { fg = colors.purple, bold = config.bold },
- ["@text.warning"] = { link = "WarningMsg" },
- ["@text.danger"] = { link = "ErrorMsg" },
- ["@text.danger.comment"] = { fg = colors.fg0, bg = colors.red, bold = config.bold },
- ["@text.diff.add"] = { link = "diffAdded" },
- ["@text.diff.delete"] = { link = "diffRemoved" },
- ["@tag"] = { link = "Tag" },
- ["@tag.attribute"] = { link = "Identifier" },
- ["@tag.delimiter"] = { link = "Delimiter" },
- ["@punctuation"] = { link = "Delimiter" },
- ["@macro"] = { link = "Macro" },
- ["@structure"] = { link = "Structure" },
- ["@lsp.type.class"] = { link = "@type" },
- ["@lsp.type.comment"] = {}, -- do not overwrite comments
- ["@lsp.type.decorator"] = { link = "@macro" },
- ["@lsp.type.enum"] = { link = "@type" },
- ["@lsp.type.enumMember"] = { link = "@constant" },
- ["@lsp.type.function"] = { link = "@function" },
- ["@lsp.type.interface"] = { link = "@constructor" },
- ["@lsp.type.macro"] = { link = "@macro" },
- ["@lsp.type.method"] = { link = "@method" },
- ["@lsp.type.namespace"] = { link = "@namespace" },
- ["@lsp.type.parameter"] = { link = "@parameter" },
- ["@lsp.type.property"] = { link = "@property" },
- ["@lsp.type.struct"] = { link = "@type" },
- ["@lsp.type.type"] = { link = "@type" },
- ["@lsp.type.typeParameter"] = { link = "@type.definition" },
- ["@lsp.type.variable"] = { link = "@variable" },
- }
-
- for group, hl in pairs(config.overrides) do
- if groups[group] then
- -- "link" should not mix with other configs (:h hi-link)
- groups[group].link = nil
- end
-
- groups[group] = vim.tbl_extend("force", groups[group] or {}, hl)
- end
-
- return groups
-end
-
-return M
diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua
deleted file mode 100644
index e3aef5e..0000000
--- a/lua/gruvbox/init.lua
+++ /dev/null
@@ -1,97 +0,0 @@
----@class Gruvbox
----@field config GruvboxConfig
-local Gruvbox = {}
-
----@alias Contrast "hard" | "soft" | ""
-
----@class ItalicConfig
----@field strings boolean
----@field comments boolean
----@field operators boolean
----@field folds boolean
----@field emphasis boolean
-
----@class HighlightDefinition
----@field fg string?
----@field bg string?
----@field sp string?
----@field blend integer?
----@field bold boolean?
----@field standout boolean?
----@field underline boolean?
----@field undercurl boolean?
----@field underdouble boolean?
----@field underdotted boolean?
----@field strikethrough boolean?
----@field italic boolean?
----@field reverse boolean?
----@field nocombine boolean?
-
----@class GruvboxConfig
----@field terminal_colors boolean?
----@field undercurl boolean?
----@field underline boolean?
----@field bold boolean?
----@field italic ItalicConfig?
----@field strikethrough boolean?
----@field contrast Contrast?
----@field invert_selection boolean?
----@field invert_signs boolean?
----@field invert_tabline boolean?
----@field invert_intend_guides boolean?
----@field inverse boolean?
----@field overrides table?
----@field palette_overrides table?
-Gruvbox.config = {
- terminal_colors = true,
- undercurl = true,
- underline = true,
- bold = true,
- italic = {
- strings = true,
- emphasis = true,
- comments = true,
- operators = false,
- folds = true,
- },
- strikethrough = true,
- invert_selection = false,
- invert_signs = false,
- invert_tabline = false,
- invert_intend_guides = false,
- inverse = true,
- contrast = "",
- palette_overrides = {},
- overrides = {},
- dim_inactive = false,
- transparent_mode = false,
-}
-
----@param config GruvboxConfig?
-function Gruvbox.setup(config)
- Gruvbox.config = vim.tbl_deep_extend("force", Gruvbox.config, config or {})
-end
-
---- main load function
-Gruvbox.load = function()
- if vim.version().minor < 8 then
- vim.notify_once("gruvbox.nvim: you must use neovim 0.8 or higher")
- return
- end
-
- -- reset colors
- if vim.g.colors_name then
- vim.cmd.hi("clear")
- end
- vim.g.colors_name = "gruvbox"
- vim.o.termguicolors = true
-
- local groups = require("gruvbox.groups").setup(Gruvbox.config)
-
- -- add highlights
- for group, settings in pairs(groups) do
- vim.api.nvim_set_hl(0, group, settings)
- end
-end
-
-return Gruvbox
diff --git a/lua/gruvbox/palette.lua b/lua/gruvbox/palette.lua
deleted file mode 100644
index 8270c0f..0000000
--- a/lua/gruvbox/palette.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-local M = {}
-
--- main gruvbox colors
----@class GruvboxColors
-local colors = {
- dark0_hard = "#1d2021",
- dark0 = "#282828",
- dark0_soft = "#32302f",
- dark1 = "#3c3836",
- dark2 = "#504945",
- dark3 = "#665c54",
- dark4 = "#7c6f64",
- light0_hard = "#f9f5d7",
- light0 = "#fbf1c7",
- light0_soft = "#f2e5bc",
- light1 = "#ebdbb2",
- light2 = "#d5c4a1",
- light3 = "#bdae93",
- light4 = "#a89984",
- bright_red = "#fb4934",
- bright_green = "#b8bb26",
- bright_yellow = "#fabd2f",
- bright_blue = "#83a598",
- bright_purple = "#d3869b",
- bright_aqua = "#8ec07c",
- bright_orange = "#fe8019",
- neutral_red = "#cc241d",
- neutral_green = "#98971a",
- neutral_yellow = "#d79921",
- neutral_blue = "#458588",
- neutral_purple = "#b16286",
- neutral_aqua = "#689d6a",
- neutral_orange = "#d65d0e",
- faded_red = "#9d0006",
- faded_green = "#79740e",
- faded_yellow = "#b57614",
- faded_blue = "#076678",
- faded_purple = "#8f3f71",
- faded_aqua = "#427b58",
- faded_orange = "#af3a03",
- gray = "#928374",
-}
-
--- get a hex list of gruvbox colors based on config, bg and contrast
----@param color_overrides GruvboxColors
----@param bg? string
----@param contrast Contrast
-M.get_base_colors = function(color_overrides, bg, contrast)
- local p = colors
-
- for color, hex in pairs(color_overrides) do
- p[color] = hex
- end
-
- if bg == nil then
- bg = vim.o.background
- end
-
- local color_groups = {
- dark = {
- bg0 = p.dark0,
- bg1 = p.dark1,
- bg2 = p.dark2,
- bg3 = p.dark3,
- bg4 = p.dark4,
- fg0 = p.light0,
- fg1 = p.light1,
- fg2 = p.light2,
- fg3 = p.light3,
- fg4 = p.light4,
- red = p.bright_red,
- green = p.bright_green,
- yellow = p.bright_yellow,
- blue = p.bright_blue,
- purple = p.bright_purple,
- aqua = p.bright_aqua,
- orange = p.bright_orange,
- neutral_red = p.neutral_red,
- neutral_green = p.neutral_green,
- neutral_yellow = p.neutral_yellow,
- neutral_blue = p.neutral_blue,
- neutral_purple = p.neutral_purple,
- neutral_aqua = p.neutral_aqua,
- gray = p.gray,
- },
- light = {
- bg0 = p.light0,
- bg1 = p.light1,
- bg2 = p.light2,
- bg3 = p.light3,
- bg4 = p.light4,
- fg0 = p.dark0,
- fg1 = p.dark1,
- fg2 = p.dark2,
- fg3 = p.dark3,
- fg4 = p.dark4,
- red = p.faded_red,
- green = p.faded_green,
- yellow = p.faded_yellow,
- blue = p.faded_blue,
- purple = p.faded_purple,
- aqua = p.faded_aqua,
- orange = p.faded_orange,
- neutral_red = p.neutral_red,
- neutral_green = p.neutral_green,
- neutral_yellow = p.neutral_yellow,
- neutral_blue = p.neutral_blue,
- neutral_purple = p.neutral_purple,
- neutral_aqua = p.neutral_aqua,
- gray = p.gray,
- },
- }
-
- if contrast ~= nil and contrast ~= "" then
- color_groups[bg].bg0 = p[bg .. string.format("0_%s", contrast)]
- end
-
- return color_groups[bg]
-end
-
-return M
diff --git a/tests/gruvbox/gruvbox_spec.lua b/tests/gruvbox/gruvbox_spec.lua
index 387a034..e4db89f 100644
--- a/tests/gruvbox/gruvbox_spec.lua
+++ b/tests/gruvbox/gruvbox_spec.lua
@@ -137,10 +137,8 @@ describe("tests", function()
it("does not set terminal colors when terminal_colors is false", function()
clear_term_colors()
- print("vim.g color before =>", vim.g.terminal_color_0, type(vim.g.terminal_color_0))
gruvbox.setup({ terminal_colors = false })
gruvbox.load()
- print("vim.g color after =>", vim.g.terminal_color_0, type(vim.g.terminal_color_0))
assert.is_nil(vim.g.terminal_color_0)
end)
@@ -148,7 +146,16 @@ describe("tests", function()
clear_term_colors()
gruvbox.setup({ terminal_colors = true })
gruvbox.load()
- local colors = require("gruvbox.palette").get_base_colors({}, "dark", "")
- assert.are.same(vim.g.terminal_color_0, colors.bg0)
+
+ -- dark bg
+ local colors = require("gruvbox").palette
+ vim.opt.background = "dark"
+ assert.are.same(vim.g.terminal_color_0, colors.dark0)
+
+ -- light bg
+ clear_term_colors()
+ gruvbox.load()
+ vim.opt.background = "light"
+ assert.are.same(vim.g.terminal_color_0, colors.light0)
end)
end)
--
cgit v1.2.3
From d3b86c23e0fbbcd338900241ca55f3cef1da6111 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ellison=20Lea=CC=83o?=
Date: Sat, 30 Sep 2023 18:27:19 -0300
Subject: fix: diff highlights for diffview.nvim, neogit, fugitive
ref: https://github.com/ellisonleao/gruvbox.nvim/discussions/239
---
README.md | 16 ++++++++++++++--
lua/gruvbox.lua | 58 ++++++++++++++++++++++++++++++++++++++++++++++-----------
2 files changed, 61 insertions(+), 13 deletions(-)
diff --git a/README.md b/README.md
index 460934b..1bfe01d 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
-A port of [gruvbox community](https://github.com/gruvbox-community/gruvbox) theme to lua with [treesitter](https://github.com/nvim-treesitter/nvim-treesitter) support!
+A port of [gruvbox community](https://github.com/gruvbox-community/gruvbox) theme to lua with [treesitter](https://github.com/nvim-treesitter/nvim-treesitter) and [semantic highlights](https://neovim.io/doc/user/lsp.html#lsp-semantic-highlight) support!
@@ -110,6 +110,18 @@ require("gruvbox").setup({
vim.cmd("colorscheme gruvbox")
```
+It also works with treesitter groups and lsp semantic highlight tokens
+
+```lua
+require("gruvbox").setup({
+ overrides = {
+ ["@lsp.type.method"] = { bg = "#ff9900" },
+ ["@comment.lua"] = { bg = "#000000" },
+ }
+})
+vim.cmd("colorscheme gruvbox")
+```
+
Please note that the override values must follow the attributes from the highlight group map, such as:
- **fg** - foreground color
@@ -117,4 +129,4 @@ Please note that the override values must follow the attributes from the highlig
- **bold** - true or false for bold font
- **italic** - true or false for italic font
-Other values can be seen in `:h synIDattr`
+Other values can be seen in [`synIDattr`]()
diff --git a/lua/gruvbox.lua b/lua/gruvbox.lua
index 68eb889..c35e6ba 100644
--- a/lua/gruvbox.lua
+++ b/lua/gruvbox.lua
@@ -106,19 +106,38 @@ Gruvbox.palette = {
faded_purple = "#8f3f71",
faded_aqua = "#427b58",
faded_orange = "#af3a03",
+ dark_red_hard = "#792329",
+ dark_red = "#722529",
+ dark_red_soft = "#7b2c2f",
+ light_red_hard = "#fc9690",
+ light_red = "#fc9487",
+ light_red_soft = "#f78b7f",
+ dark_green_hard = "#5a633a",
+ dark_green = "#62693e",
+ dark_green_soft = "#686d43",
+ light_green_hard = "#d3d6a5",
+ light_green = "#d5d39b",
+ light_green_soft = "#cecb94",
+ dark_aqua_hard = "#3e4934",
+ dark_aqua = "#49503b",
+ dark_aqua_soft = "#525742",
+ light_aqua_hard = "#e6e9c1",
+ light_aqua = "#e8e5b5",
+ light_aqua_soft = "#e1dbac",
gray = "#928374",
}
-- get a hex list of gruvbox colors based on current bg and constrast config
local function get_colors()
local p = Gruvbox.palette
+ local config = Gruvbox.config
- for color, hex in pairs(Gruvbox.config.palette_overrides) do
+ for color, hex in pairs(config.palette_overrides) do
p[color] = hex
end
local bg = vim.o.background
- local contrast = Gruvbox.config.contrast
+ local contrast = config.contrast
local color_groups = {
dark = {
@@ -145,6 +164,9 @@ local function get_colors()
neutral_blue = p.neutral_blue,
neutral_purple = p.neutral_purple,
neutral_aqua = p.neutral_aqua,
+ dark_red = p.dark_red,
+ dark_green = p.dark_green,
+ dark_aqua = p.dark_aqua,
gray = p.gray,
},
light = {
@@ -171,12 +193,18 @@ local function get_colors()
neutral_blue = p.neutral_blue,
neutral_purple = p.neutral_purple,
neutral_aqua = p.neutral_aqua,
+ dark_red = p.light_red,
+ dark_green = p.light_green,
+ dark_aqua = p.light_aqua,
gray = p.gray,
},
}
if contrast ~= nil and contrast ~= "" then
- color_groups[bg].bg0 = p[bg .. string.format("0_%s", contrast)]
+ color_groups[bg].bg0 = p[bg .. "0_" .. contrast]
+ color_groups[bg].dark_red = p[bg .. "_red_" .. contrast]
+ color_groups[bg].dark_green = p[bg .. "_green_" .. contrast]
+ color_groups[bg].dark_aqua = p[bg .. "_aqua_" .. contrast]
end
return color_groups[bg]
@@ -186,7 +214,7 @@ local function get_groups()
local colors = get_colors()
local config = Gruvbox.config
- if Gruvbox.config.terminal_colors then
+ if config.terminal_colors then
local term_colors = {
colors.bg0,
colors.neutral_red,
@@ -332,10 +360,10 @@ local function get_groups()
PmenuSel = { fg = colors.bg2, bg = colors.blue, bold = config.bold },
PmenuSbar = { bg = colors.bg2 },
PmenuThumb = { bg = colors.bg4 },
- DiffDelete = { fg = colors.red, bg = colors.bg0, reverse = config.inverse },
- DiffAdd = { fg = colors.green, bg = colors.bg0, reverse = config.inverse },
- DiffChange = { fg = colors.aqua, bg = colors.bg0, reverse = config.inverse },
- DiffText = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse },
+ DiffDelete = { bg = colors.dark_red },
+ DiffAdd = { bg = colors.dark_green },
+ DiffChange = { bg = colors.dark_aqua },
+ DiffText = { bg = colors.yellow },
SpellCap = { link = "GruvboxBlueUnderline" },
SpellBad = { link = "GruvboxRedUnderline" },
SpellLocal = { link = "GruvboxAquaUnderline" },
@@ -361,6 +389,7 @@ local function get_groups()
DiagnosticVirtualTextWarn = { link = "GruvboxYellow" },
DiagnosticVirtualTextInfo = { link = "GruvboxBlue" },
DiagnosticVirtualTextHint = { link = "GruvboxAqua" },
+ DiagnosticOk = { link = "GruvboxGreenSign" },
LspReferenceRead = { link = "GruvboxYellowBold" },
LspReferenceText = { link = "GruvboxYellowBold" },
LspReferenceWrite = { link = "GruvboxOrangeBold" },
@@ -483,9 +512,9 @@ local function get_groups()
CmpItemKindConstant = { link = "GruvboxOrange" },
CmpItemKindStruct = { link = "GruvboxYellow" },
CmpItemKindTypeParameter = { link = "GruvboxYellow" },
- diffAdded = { link = "GruvboxGreen" },
- diffRemoved = { link = "GruvboxRed" },
- diffChanged = { link = "GruvboxAqua" },
+ diffAdded = { link = "DiffAdd" },
+ diffRemoved = { link = "DiffDelete" },
+ diffChanged = { link = "DiffChange" },
diffFile = { link = "GruvboxOrange" },
diffNewFile = { link = "GruvboxYellow" },
diffOldFile = { link = "GruvboxOrange" },
@@ -910,6 +939,13 @@ local function get_groups()
DapUIWatchesError = { link = "GruvboxRed" },
DapUIWatchesValue = { link = "GruvboxYellow" },
DapUIWinSelect = { link = "GruvboxYellow" },
+ NeogitDiffDelete = { link = "DiffDelete" },
+ NeogitDiffAdd = { link = "DiffAdd" },
+ NeogitHunkHeader = { link = "WinBar" },
+ NeogitHunkHeaderHighlight = { link = "WinBarNC" },
+ DiffviewStatusModified = { link = "GruvboxGreenBold" },
+ DiffviewFilePanelInsertions = { link = "GruvboxGreenBold" },
+ DiffviewFilePanelDeletions = { link = "GruvboxRedBold" },
["@comment"] = { link = "Comment" },
["@none"] = { bg = "NONE", fg = "NONE" },
["@preproc"] = { link = "PreProc" },
--
cgit v1.2.3