aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/gruvbox/base.lua179
-rw-r--r--lua/gruvbox/languages.lua10
-rw-r--r--lua/gruvbox/plugins.lua22
-rw-r--r--lua/gruvbox/settings.lua28
-rw-r--r--lua/gruvbox/utils.lua9
5 files changed, 121 insertions, 127 deletions
diff --git a/lua/gruvbox/base.lua b/lua/gruvbox/base.lua
index 8016a7b..96cf40e 100644
--- a/lua/gruvbox/base.lua
+++ b/lua/gruvbox/base.lua
@@ -7,6 +7,33 @@ if vim.fn.exists("syntax_on") then
vim.cmd("syntax reset")
end
+-- gruvbox settings handler
+local settings = {
+ contrast_dark = "medium",
+ contrast_light = "medium",
+ bold = true,
+ italic = true,
+ undercurl = true,
+ underline = true,
+ inverse = true,
+ improved_strings = false,
+ improved_warnings = false,
+ invert_signs = false,
+ invert_selection = false,
+ invert_tabline = false,
+ italicize_comments = true,
+ italicize_strings = false,
+ invert_intend_guides = false,
+}
+
+-- setting default values
+for k, val in pairs(settings) do
+ local key = "gruvbox_" .. k
+ if vim.g[key] == nil then
+ vim.g[key] = val
+ end
+end
+
-- options (dark mode by default)
local bg0 = colors.dark0
local bg1 = colors.dark1
@@ -153,13 +180,13 @@ local base_group = {
GruvboxOrange = { fg = orange },
GruvboxOrangeBold = { fg = orange, bold = vim.g.gruvbox_bold },
- GruvboxRedSign = { fg = red, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
- GruvboxGreenSign = { fg = green, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
- GruvboxYellowSign = { fg = yellow, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
- GruvboxBlueSign = { fg = blue, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
- GruvboxPurpleSign = { fg = purple, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
- GruvboxAquaSign = { fg = aqua, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
- GruvboxOrangeSign = { fg = orange, bg = sign_column, inverse = vim.g.gruvbox_invert_signs },
+ GruvboxRedSign = { fg = red, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
+ GruvboxGreenSign = { fg = green, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
+ GruvboxYellowSign = { fg = yellow, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
+ GruvboxBlueSign = { fg = blue, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
+ GruvboxPurpleSign = { fg = purple, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
+ GruvboxAquaSign = { fg = aqua, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
+ GruvboxOrangeSign = { fg = orange, bg = sign_column, reverse = vim.g.gruvbox_invert_signs },
GruvboxRedUnderline = { undercurl = vim.g.gruvbox_undercurl, sp = red },
GruvboxGreenUnderline = { undercurl = vim.g.gruvbox_undercurl, sp = green },
@@ -171,109 +198,109 @@ local base_group = {
ColorColumn = { bg = color_column },
Conceal = { fg = blue },
- Cursor = { inverse = vim.g.gruvbox_inverse },
- lCursor = "Cursor",
- iCursor = "Cursor",
- vCursor = "Cursor",
- CursorIM = "Cursor",
+ Cursor = { reverse = vim.g.gruvbox_inverse },
+ lCursor = { link = "Cursor" },
+ iCursor = { link = "Cursor" },
+ vCursor = { link = "Cursor" },
+ CursorIM = { link = "Cursor" },
CursorLine = { bg = cursor_line },
- CursorColumn = "CursorLine",
- Directory = "GruvboxGreenBold",
- DiffAdd = { fg = green, bg = bg0, inverse = vim.g.gruvbox_inverse },
- DiffChange = { fg = aqua, bg = bg0, inverse = vim.g.gruvbox_inverse },
- DiffDelete = { fg = red, bg = bg0, inverse = vim.g.gruvbox_inverse },
- DiffText = { fg = yellow, bg = bg0, inverse = vim.g.gruvbox_inverse },
+ CursorColumn = { link = "CursorLine" },
+ Directory = { link = "GruvboxGreenBold" },
+ DiffAdd = { fg = green, bg = bg0, reverse = vim.g.gruvbox_inverse },
+ DiffChange = { fg = aqua, bg = bg0, reverse = vim.g.gruvbox_inverse },
+ DiffDelete = { fg = red, bg = bg0, reverse = vim.g.gruvbox_inverse },
+ DiffText = { fg = yellow, bg = bg0, reverse = vim.g.gruvbox_inverse },
ErrorMsg = { fg = bg0, bg = red, bold = vim.g.gruvbox_bold },
VertSplit = { fg = bg3, bg = vert_split },
Folded = { fg = gray, bg = bg1, italic = vim.g.gruvbox_italic },
FoldColumn = { fg = gray, bg = bg1 },
SignColumn = { bg = sign_column },
- IncSearch = { fg = hls_cursor, bg = bg0, inverse = vim.g.gruvbox_inverse },
+ IncSearch = { fg = hls_cursor, bg = bg0, reverse = vim.g.gruvbox_inverse },
LineNr = { fg = bg4, bg = number_column },
CursorLineNr = { fg = yellow, bg = bg1 },
MatchParen = { bg = bg3, bold = vim.g.gruvbox_bold },
- ModeMsg = "GruvboxYellowBold",
- MoreMsg = "GruvboxYellowBold",
- NonText = "GruvboxBg2",
+ ModeMsg = { link = "GruvboxYellowBold" },
+ MoreMsg = { link = "GruvboxYellowBold" },
+ NonText = { link = "GruvboxBg2" },
Normal = { fg = fg1, bg = bg0 },
Pmenu = { fg = fg1, bg = bg2 },
PmenuSel = { fg = bg2, bg = blue, bold = vim.g.gruvbox_bold },
PmenuSbar = { bg = bg2 },
PmenuThumb = { bg = bg4 },
- Question = "GruvboxOrangeBold",
+ Question = { link = "GruvboxOrangeBold" },
QuickFixLine = { bg = bg0, bold = vim.g.gruvbox_bold },
- Search = { fg = hls_highlight, bg = bg0, inverse = vim.g.gruvbox_inverse },
- SpecialKey = "GruvboxFg4",
- SpellRare = "GruvboxPurpleUnderline",
- SpellBad = "GruvboxRedUnderline",
- SpellLocal = "GruvboxAquaUnderline",
+ Search = { fg = hls_highlight, bg = bg0, reverse = vim.g.gruvbox_inverse },
+ SpecialKey = { link = "GruvboxFg4" },
+ SpellRare = { link = "GruvboxPurpleUnderline" },
+ SpellBad = { link = "GruvboxRedUnderline" },
+ SpellLocal = { link = "GruvboxAquaUnderline" },
SpellCap = vim.g.gruvbox_improved_warnings and {
fg = green,
bold = vim.g.gruvbox_bold,
italic = vim.g.gruvbox_italic,
- } or "GruvboxBlueUnderline",
- StatusLine = { fg = bg2, bg = fg1, inverse = vim.g.gruvbox_inverse },
- StatusLineNC = { fg = bg1, bg = fg4, inverse = vim.g.gruvbox_inverse },
- TabLineFill = { fg = bg4, bg = bg1, inverse = vim.g.gruvbox_invert_tabline },
- TabLine = "TabLineFill",
- TabLineSel = { fg = tabline_sel, bg = bg1, inverse = vim.g.gruvbox_invert_tabline },
- Title = "GruvboxGreenBold",
- Visual = { bg = bg3, inverse = vim.g.gruvbox_invert_selection },
- VisualNOS = "Visual",
- WarningMsg = "GruvboxRedBold",
+ } or { link = "GruvboxBlueUnderline" },
+ StatusLine = { fg = bg2, bg = fg1, reverse = vim.g.gruvbox_inverse },
+ StatusLineNC = { fg = bg1, bg = fg4, reverse = vim.g.gruvbox_inverse },
+ TabLineFill = { fg = bg4, bg = bg1, reverse = vim.g.gruvbox_invert_tabline },
+ TabLine = { link = "TabLineFill" },
+ TabLineSel = { fg = tabline_sel, bg = bg1, reverse = vim.g.gruvbox_invert_tabline },
+ Title = { link = "GruvboxGreenBold" },
+ Visual = { bg = bg3, reverse = vim.g.gruvbox_invert_selection },
+ VisualNOS = { link = "Visual" },
+ WarningMsg = { link = "GruvboxRedBold" },
WildMenu = { fg = blue, bg = bg2, bold = vim.g.gruvbox_bold },
- Constant = "GruvboxPurple",
+ Constant = { link = "GruvboxPurple" },
Special = { fg = special_string_fg, bg = special_string_bg, italic = vim.g.gruvbox_improved_strings },
String = {
fg = improved_strings_fg,
bg = improved_strings_bg,
italic = vim.g.gruvbox_italicize_strings,
},
- Character = "GruvboxPurple",
- Number = "GruvboxPurple",
- Boolean = "GruvboxPurple",
- Float = "GruvboxPurple",
- Identifier = "GruvboxBlue",
- Function = "GruvboxGreenBold",
- Statement = "GruvboxRed",
- Conditional = "GruvboxRed",
- Repeat = "GruvboxRed",
- Label = "GruvboxRed",
- Exception = "GruvboxRed",
- Keyword = "GruvboxRed",
- Operator = "GruvboxFg1",
- PreProc = "GruvboxAqua",
- Include = "GruvboxAqua",
- Define = "GruvboxAqua",
- Macro = "GruvboxAqua",
- PreCondit = "GruvboxAqua",
- Type = "GruvboxYellow",
- StorageClass = "GruvboxOrange",
- Structure = "GruvboxAqua",
- Typedef = "GruvboxYellow",
- SpecialChar = "GruvboxRed",
- Tag = "GruvboxAquaBold",
- Delimiter = "GruvboxFg3",
+ Character = { link = "GruvboxPurple" },
+ Number = { link = "GruvboxPurple" },
+ Boolean = { link = "GruvboxPurple" },
+ Float = { link = "GruvboxPurple" },
+ Identifier = { link = "GruvboxBlue" },
+ Function = { link = "GruvboxGreenBold" },
+ Statement = { link = "GruvboxRed" },
+ Conditional = { link = "GruvboxRed" },
+ Repeat = { link = "GruvboxRed" },
+ Label = { link = "GruvboxRed" },
+ Exception = { link = "GruvboxRed" },
+ Keyword = { link = "GruvboxRed" },
+ Operator = { link = "GruvboxFg1" },
+ PreProc = { link = "GruvboxAqua" },
+ Include = { link = "GruvboxAqua" },
+ Define = { link = "GruvboxAqua" },
+ Macro = { link = "GruvboxAqua" },
+ PreCondit = { link = "GruvboxAqua" },
+ Type = { link = "GruvboxYellow" },
+ StorageClass = { link = "GruvboxOrange" },
+ Structure = { link = "GruvboxAqua" },
+ Typedef = { link = "GruvboxYellow" },
+ SpecialChar = { link = "GruvboxRed" },
+ Tag = { link = "GruvboxAquaBold" },
+ Delimiter = { link = "GruvboxFg3" },
Comment = { fg = gray, italic = vim.g.gruvbox_italic_comments },
- Debug = "GruvboxRed",
+ Debug = { link = "GruvboxRed" },
Underlined = { fg = blue, underline = vim.g.gruvbox_underline },
Bold = { bold = vim.g.gruvbox_bold },
Italic = { italic = vim.g.gruvbox_italic },
Ignore = {},
- Error = { fg = red, bold = vim.g.gruvbox_bold, inverse = vim.g.gruvbox_inverse },
+ Error = { fg = red, bold = vim.g.gruvbox_bold, reverse = vim.g.gruvbox_inverse },
Todo = { fg = fg0, bold = vim.g.gruvbox_bold, italic = vim.g.gruvbox_italic },
- diffAdded = "GruvboxGreen",
- diffRemoved = "GruvboxRed",
- diffChanged = "GruvboxAqua",
- diffFile = "GruvboxOrange",
- diffNewFile = "GruvboxYellow",
- diffLine = "GruvboxBlue",
+ diffAdded = { link = "GruvboxGreen" },
+ diffRemoved = { link = "GruvboxRed" },
+ diffChanged = { link = "GruvboxAqua" },
+ diffFile = { link = "GruvboxOrange" },
+ diffNewFile = { link = "GruvboxYellow" },
+ diffLine = { link = "GruvboxBlue" },
-- signature
- SignatureMarkText = "GruvboxBlueSign",
- SignatureMarkerText = "GruvboxPurpleSign",
+ SignatureMarkText = { link = "GruvboxBlueSign" },
+ SignatureMarkerText = { link = "GruvboxPurpleSign" },
-- gitcommit
- gitcommitSelectedFile = "GruvboxGreen",
- gitcommitDiscardedFile = "GruvboxRed",
+ gitcommitSelectedFile = { link = "GruvboxGreen" },
+ gitcommitDiscardedFile = { link = "GruvboxRed" },
-- checkhealth
healthError = { fg = bg0, bg = red },
healthSuccess = { fg = bg0, bg = green },
diff --git a/lua/gruvbox/languages.lua b/lua/gruvbox/languages.lua
index 97cad80..eb1c840 100644
--- a/lua/gruvbox/languages.lua
+++ b/lua/gruvbox/languages.lua
@@ -76,11 +76,11 @@ local markdown = {
italic = vim.g.gruvbox_italic,
},
markdownH1 = base.GruvboxGreenBold,
- markdownH2 = "markdownH1",
+ markdownH2 = { link = "markdownH1" },
markdownH3 = base.GruvboxYellowBold,
- markdownH4 = "markdownH3",
+ markdownH4 = { link = "markdownH3" },
markdownH5 = base.GruvboxYellow,
- markdownH6 = "markdownH5",
+ markdownH6 = { link = "markdownH5" },
markdownCode = base.GruvboxAqua,
markdownCodeBlock = base.GruvboxAqua,
markdownCodeDelimiter = base.GruvboxAqua,
@@ -96,7 +96,7 @@ local markdown = {
markdownUrl = base.GruvboxPurple,
markdownUrlTitleDelimiter = base.GruvboxGreen,
markdownLinkText = { fg = base.GruvboxGray.fg, underline = vim.g.gruvbox_underline },
- markdownIdDeclaration = "markdownLinkText",
+ markdownIdDeclaration = { link = "markdownLinkText" },
}
local haskell = {
@@ -144,7 +144,7 @@ local html = {
htmlTagN = base.GruvboxFg1,
htmlSpecialTagName = base.GruvboxBlue,
htmlLink = { fg = colors.fg4, underline = vim.g.gruvbox_underline },
- htmlSpecialChar = "GruvboxRed",
+ htmlSpecialChar = { link = "GruvboxRed" },
htmlBold = { fg = colors.fg0, bg = colors.bg0, bold = vim.g.gruvbox_bold },
htmlBoldUnderline = {
fg = colors.fg0,
diff --git a/lua/gruvbox/plugins.lua b/lua/gruvbox/plugins.lua
index cd95cb8..553c4fd 100644
--- a/lua/gruvbox/plugins.lua
+++ b/lua/gruvbox/plugins.lua
@@ -38,7 +38,7 @@ local plugins = {
TSFuncBuiltin = base.Special,
TSFuncMacro = base.Macro,
TSParameter = base.Identifier,
- TSParameterReference = "TSParameter",
+ TSParameterReference = { link = "TSParameter" },
TSMethod = base.Function,
TSField = base.Identifier,
TSProperty = base.Identifier,
@@ -58,7 +58,7 @@ local plugins = {
TSTypeBuiltin = base.Type,
TSInclude = base.Include,
TSVariableBuiltin = base.Special,
- TSText = "TSNone",
+ TSText = { link = "TSNone" },
TSStrong = { bold = vim.g.gruvbox_bold },
TSEmphasis = { italic = vim.g.gruvbox_italicize_strings },
TSUnderline = { underline = vim.g.gruvbox_underline },
@@ -72,13 +72,13 @@ local plugins = {
TelescopeSlectionCaret = base.GruvboxRed,
TelescopeMultiSelection = base.GruvboxGray,
TelescopeNormal = base.GruvboxFg1,
- TelescopeBorder = "TelescopeNormal",
- TelescopePromptBorder = "TelescopeNormal",
- TelescopeResultsBorder = "TelescopeNormal",
- TelescopePreviewBorder = "TelescopeNormal",
+ TelescopeBorder = { link = "TelescopeNormal" },
+ TelescopePromptBorder = { link = "TelescopeNormal" },
+ TelescopeResultsBorder = { link = "TelescopeNormal" },
+ TelescopePreviewBorder = { link = "TelescopeNormal" },
TelescopeMatching = base.GruvboxBlue,
TelescopePromptPrefix = base.GruvboxRed,
- TelescopePrompt = "TelescopeNormal",
+ TelescopePrompt = { link = "TelescopeNormal" },
-- lspsaga.nvim
LspSagaDiagnosticBorder = base.NormalNC,
LspSagaDiagnosticHeader = base.GruvboxRed,
@@ -122,7 +122,7 @@ local plugins = {
StartifySpecial = base.GruvboxBg2,
StartifyHeader = base.GruvboxOrange,
StartifyFooter = base.GruvboxBg2,
- StartifyVar = "StartifyPath",
+ StartifyVar = { link = "StartifyPath" },
StartifySelect = base.Title,
-- vim-signify
SignifySignAdd = base.GruvboxGreenSign,
@@ -185,9 +185,9 @@ local plugins = {
BufTabLineActive = base.PmenuSel,
BufTabLineHidden = base.TabLine,
BufTabLineFill = base.TabLineFill,
- BufTabLineModifiedCurrent = "BufTabLineCurrent",
- BufTabLineModifiedActive = "BufTabLineActive",
- BufTabLineModifiedHidden = "BufTabLineHidden",
+ BufTabLineModifiedCurrent = { link = "BufTabLineCurrent" },
+ BufTabLineModifiedActive = { link = "BufTabLineActive" },
+ BufTabLineModifiedHidden = { link = "BufTabLineHidden" },
-- ctrlP
CtrlPMatch = base.Identifier,
CtrlPNoEntries = base.Error,
diff --git a/lua/gruvbox/settings.lua b/lua/gruvbox/settings.lua
deleted file mode 100644
index c72b8c6..0000000
--- a/lua/gruvbox/settings.lua
+++ /dev/null
@@ -1,28 +0,0 @@
--- gruvbox settings handler
-local settings = {
- contrast_dark = "medium",
- contrast_light = "medium",
- bold = true,
- italic = true,
- undercurl = true,
- underline = true,
- inverse = true,
- improved_strings = false,
- improved_warnings = false,
- invert_signs = false,
- invert_selection = false,
- invert_tabline = false,
- italicize_comments = true,
- italicize_strings = false,
- invert_intend_guides = false,
-}
-
--- setting default values
-for k, val in pairs(settings) do
- local key = "gruvbox_" .. k
- if vim.g[key] == nil then
- vim.g[key] = val
- end
-end
-
-return settings
diff --git a/lua/gruvbox/utils.lua b/lua/gruvbox/utils.lua
index 8138899..01aeffb 100644
--- a/lua/gruvbox/utils.lua
+++ b/lua/gruvbox/utils.lua
@@ -1,7 +1,6 @@
-- util functions
local M = {}
local hl = vim.api.nvim_set_hl
-local link = vim.highlight.link
-- check if vim.g.gruvbox_* color exists in current palette, return default color
-- otherwise
@@ -30,12 +29,8 @@ M.merge = function(tbls)
end
M.add_highlights = function(hls)
- for k, v in pairs(hls) do
- if type(v) == "table" then
- hl(0, k, v)
- else
- link(k, v, true)
- end
+ for group, settings in pairs(hls) do
+ hl(0, group, settings)
end
end