diff options
| -rw-r--r-- | lua/gruvbox/base.lua | 179 | ||||
| -rw-r--r-- | lua/gruvbox/languages.lua | 10 | ||||
| -rw-r--r-- | lua/gruvbox/plugins.lua | 22 | ||||
| -rw-r--r-- | lua/gruvbox/settings.lua | 28 | ||||
| -rw-r--r-- | lua/gruvbox/utils.lua | 9 |
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 |
