From a034fdca2a52e31296684d7e10f131a0c3e8e606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Tue, 23 Feb 2021 01:15:03 -0300 Subject: initial changes on moving to lush.nvim --- README.md | 17 +- colors/gruvbox.vim | 7 +- lua/gruvbox.lua | 841 ------------------------------------------ lua/gruvbox/palette.lua | 41 -- lua/lush_template/gruvbox.lua | 396 ++++++++++++++++++++ 5 files changed, 410 insertions(+), 892 deletions(-) delete mode 100644 lua/gruvbox.lua delete mode 100644 lua/gruvbox/palette.lua create mode 100644 lua/lush_template/gruvbox.lua diff --git a/README.md b/README.md index 8410ed5..fee2cf7 100644 --- a/README.md +++ b/README.md @@ -9,26 +9,28 @@ Please note that this plugin is under active development right now, so the statu Using `vim-plug` ``` -Plug 'tjdevries/colorbuddy.nvim' # required +Plug 'rktjmp/lush.nvim' # required Plug 'npxbr/gruvbox.nvim' ``` Using `packer` ``` -use {"npxbr/gruvbox.nvim", requires = {"tjdevries/colorbuddy.vim"}} +use {"npxbr/gruvbox.nvim", requires = {"rktjmp/lush.nvim"}} ``` # Usage Inside `init.vim` -```lua -lua require("colorbuddy").colorscheme("gruvbox") - --- or +```vimscript +set background=dark +set colorscheme=gruvbox +``` -lua require("colorbuddy").colorscheme("gruvbox", "light") -- for light mode +```lua +vim.o.background = "dark" +vim.o.colorscheme = "gruvbox" ``` # Configuration @@ -39,6 +41,5 @@ all `g:gruvbox_` configs are the same [as the original one](https://github.com/m - [vim-signify](https://github.com/mhinz/vim-signify) - [vim-startify](https://github.com/mhinz/vim-startify) -- [galaxyline.nvim](https://github.com/glepnir/galaxyline.nvim) More to be added.. diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim index 0ba5756..8bce9bd 100644 --- a/colors/gruvbox.vim +++ b/colors/gruvbox.vim @@ -1,2 +1,5 @@ -lua package.loaded["gruvbox"] = nil -lua require("gruvbox") +set background=dark +let g:colors_name="gruvbox" +" reloading colors +lua package.loaded["gruvbox.lush_template"] = nil +lua require("lush")(require("gruvbox.lush_template")) diff --git a/lua/gruvbox.lua b/lua/gruvbox.lua deleted file mode 100644 index 764e8ca..0000000 --- a/lua/gruvbox.lua +++ /dev/null @@ -1,841 +0,0 @@ -local Color, colors, Group, groups, styles = require("colorbuddy").setup() -local palette = require("gruvbox.palette") - -for k, item in pairs(palette) do - Color.new(k, item) -end - --- options (dark mode by default) -local bg0 = colors.dark0 -local bg1 = colors.dark1 -local bg2 = colors.dark2 -local bg3 = colors.dark3 -local bg4 = colors.dark4 - -local fg0 = colors.light0 -local fg1 = colors.light1 -local fg2 = colors.light2 -local fg3 = colors.light3 -local fg4 = colors.light4 - -local red = colors.bright_red -local green = colors.bright_green -local yellow = colors.bright_yellow -local blue = colors.bright_blue -local purple = colors.bright_purple -local aqua = colors.bright_aqua -local orange = colors.bright_orange -local sign_column = bg1 - --- global settings -local settings = { - contrast_dark = "medium", - contrart_light = "medium", - bold = true, - italic = true, - undercurl = true, - underline = true, - improved_strings = false, - improved_warnings = false, - invert_signs = false, - invert_selection = true, - invert_tabline = false, - italicize_comments = true, - italicize_strings = 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 - --- handle light/dark contrast settings -local bg = vim.o.background -local contrast = vim.g["gruvbox_contrast_" .. bg] -if contrast == "hard" then - bg0 = colors[bg .. "0_hard"] -elseif contrast == "soft" then - bg0 = colors[bg .. "0_soft"] -end - --- swap colors if light mode -if bg == "light" then - bg0 = colors.light0 - bg1 = colors.light1 - bg2 = colors.light2 - bg3 = colors.light3 - bg4 = colors.light4 - - fg0 = colors.dark0 - fg1 = colors.dark1 - fg2 = colors.dark2 - fg3 = colors.dark3 - fg4 = colors.dark4 - - red = colors.faded_red - green = colors.faded_green - yellow = colors.faded_yellow - blue = colors.faded_blue - purple = colors.faded_purple - aqua = colors.faded_aqua - orange = colors.faded_orange -end - -local hls_cursor = orange -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_cursor] -end - -local hls_highlight = yellow -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_highlight] -end - -local number_column -if vim.g.gruvbox_number_column ~= nil then - number_column = colors[vim.g.gruvbox_number_column] -end - -local color_column = bg1 -if vim.g.gruvbox_color_column ~= nil then - color_column = colors[vim.g.gruvbox_color_column] -end - -local vert_split = bg0 -if vim.g.gruvbox_vert_split ~= nil then - vert_split = colors[vim.g.gruvbox_vert_split] -end - -local invert_signs -if vim.g.gruvbox_invert_signs then - invert_signs = styles.inverse -end - -local invert_selection = styles.inverse -if not vim.g.gruvbox_invert_selection then - invert_selection = nil -end - -local invert_tabline -if vim.g.gruvbox_invert_tabline then - invert_tabline = styles.inverse -end - -local tabline_sel = green -if vim.g.gruvbox_tabline_sel then - tabline_sel = colors[vim.g.gruvbox_tabline_sel] -end - -local italic_comments = styles.italic -if not vim.g.gruvbox_italicize_comments then - italic_comments = nil -end - -local italic_strings -if vim.g.gruvbox_italicize_strings then - italic_strings = styles.italic -end - --- foregrounds -Group.new("GruvboxGray", colors.gray) -Group.new("GruvboxFg0", fg0) -Group.new("GruvboxFg1", fg1) -Group.new("GruvboxFg2", fg2) -Group.new("GruvboxFg3", fg3) -Group.new("GruvboxFg4", fg4) -Group.new("GruvboxGray", colors.gray) - --- backgrounds -Group.new("GruvboxBg0", bg0) -Group.new("GruvboxBg1", bg1) -Group.new("GruvboxBg2", bg2) -Group.new("GruvboxBg3", bg3) -Group.new("GruvboxBg4", bg4) - --- color groups -Group.new("GruvboxAqua", aqua) -Group.new("GruvboxAquaBold", aqua, nil, styles.bold) -Group.new("GruvboxBlue", blue) -Group.new("GruvboxBlueBold", blue, nil, styles.bold) -Group.new("GruvboxGreen", green) -Group.new("GruvboxGreenBold", green, nil, styles.bold) -Group.new("GruvboxOrange", orange) -Group.new("GruvboxOrangeBold", orange, nil, styles.bold) -Group.new("GruvboxPurple", purple) -Group.new("GruvboxPurpleBold", purple, nil, styles.bold) -Group.new("GruvboxRed", red) -Group.new("GruvboxRedBold", red, nil, styles.bold) -Group.new("GruvboxYellow", yellow) -Group.new("GruvboxYellowBold", yellow, nil, styles.bold) - --- signs -Group.new("GruvboxAquaSign", aqua, sign_column, invert_signs) -Group.new("GruvboxBlueSign", blue, sign_column, invert_signs) -Group.new("GruvboxGreenSign", green, sign_column, invert_signs) -Group.new("GruvboxOrangeSign", orange, sign_column, invert_signs) -Group.new("GruvboxPurpleSign", purple, sign_column, invert_signs) -Group.new("GruvboxRedSign", red, sign_column, invert_signs) -Group.new("GruvboxYellowSign", yellow, sign_column, invert_signs) - --- underlines -Group.new("GruvboxAquaUnderline", nil, nil, styles.undercurl, red) -Group.new("GruvboxBlueUnderline", nil, nil, styles.undercurl, blue) -Group.new("GruvboxGreenUnderline", nil, nil, styles.undercurl, green) -Group.new("GruvboxOrangeUnderline", nil, nil, styles.undercurl, orange) -Group.new("GruvboxPurpleUnderline", nil, nil, styles.undercurl, purple) -Group.new("GruvboxRedUnderline", nil, nil, styles.undercurl, red) -Group.new("GruvboxYellowUnderline", nil, nil, styles.undercurl, yellow) - --- base highlight groups -Group.new("Normal", fg0, bg0) -Group.new("CursorLine", nil, bg1) -Group.new("CursorColumn", groups.CursorLine, groups.CursorLine, groups.CursorLine) -Group.new("TabLineFill", bg4, bg1, invert_tabline) -Group.new("TabLineSel", tabline_sel, bg1, invert_tabline) -Group.new("TabLine", groups.TabLineFill, groups.TabLineFill, groups.TabLineFill) -Group.new("MatchParen", nil, bg3, styles.bold) -Group.new("ColorColumn", nil, color_column) -Group.new("Conceal", blue, nil) -Group.new("CursorLineNr", yellow, bg1) -Group.new("NonText", groups.GruvboxBg2, groups.GruvboxBg2, groups.GruvboxBg2) -Group.new("SpecialKey", groups.GruvboxFg4, groups.GruvboxFg4, groups.GruvboxFg4) -Group.new("Visual", nil, bg3, invert_selection) -Group.new("VisualNOS", groups.Visual, groups.Visual, groups.Visual) -Group.new("Search", hls_highlight, bg0, styles.inverse) -Group.new("IncSearch", hls_cursor, bg0, styles.inverse) -Group.new("QuickFixLine", bg0, yellow, styles.bold) -Group.new("Underlined", blue, nil, styles.underline) -Group.new("StatusLine", bg2, fg1, styles.inverse) -Group.new("StatusLineNC", bg1, fg4, styles.inverse) -Group.new("VertSplit", bg3, vert_split) -Group.new("WildMenu", blue, bg2, styles.bold) -Group.new("Directory", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) -Group.new("Title", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) -Group.new("ErrorMsg", bg0, red, styles.bold) -Group.new("MoreMsg", groups.GruvboxYellowBold, groups.GruvboxYellowBold, - groups.GruvboxYellowBold) -Group.new("ModeMsg", groups.GruvboxYellowBold, groups.GruvboxYellowBold, - groups.GruvboxYellowBold) -Group.new("Question", groups.GruvboxOrangeBold, groups.GruvboxOrangeBold, - groups.GruvboxOrangeBold) -Group.new("WarningMsg", groups.GruvboxRedBold, groups.GruvboxRedBold, - groups.GruvboxRedBold) -Group.new("LineNr", bg4, number_column) -Group.new("SignColumn", nil, sign_column) -Group.new("Folded", colors.gray, bg1, styles.italic) -Group.new("FoldColumn", colors.gray, groups.GruvboxBg1) -Group.new("Cursor", nil, nil, styles.inverse) -Group.new("iCursor", groups.Cursor, groups.Cursor, groups.Cursor) -Group.new("lCursor", groups.Cursor, groups.Cursor, groups.Cursor) -Group.new("vCursor", groups.Cursor, groups.Cursor, groups.Cursor) - --- Syntax highlight -if vim.g.gruvbox_improved_strings then - Group.new("Special", orange, bg1, italic_strings) - Group.new("String", fg1, bg1, italic_strings) -else - Group.new("Special", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange) - Group.new("String", green, nil, italic_strings) -end - -Group.new("Delimiter", fg0) -Group.new("Comment", colors.gray, nil, italic_comments) -Group.new("Todo", fg0, nil, styles.bold + styles.italic) -Group.new("Error", red, nil, styles.bold + styles.inverse) -Group.new("Statement", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("Conditional", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("Repeat", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("Label", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("Exception", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("Operator", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("Keyword", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("Identifier", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("Function", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) -Group.new("PreProc", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("Include", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("Define", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("Macro", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("PreCondit", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("Constant", groups.GruvboxPurple, groups.GruvboxPurple, groups.GruvboxPurple) -Group.new("Character", groups.GruvboxPurple, groups.GruvboxPurple, groups.GruvboxPurple) -Group.new("Boolean", groups.GruvboxPurple, groups.GruvboxPurple, groups.GruvboxPurple) -Group.new("Number", groups.GruvboxPurple, groups.GruvboxPurple, groups.GruvboxPurple) -Group.new("Float", groups.GruvboxPurple, groups.GruvboxPurple, groups.GruvboxPurple) -Group.new("Type", groups.GruvboxYellow, groups.GruvboxYellow, groups.GruvboxYellow) -Group.new("StorageClass", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("Structure", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("Typedef", groups.GruvboxYellow, groups.GruvboxYellow, groups.GruvboxYellow) - --- Completion menu -Group.new("Pmenu", fg1, bg2) -Group.new("PmenuSel", bg2, blue, styles.bold) -Group.new("PmenuSbar", nil, bg2) -Group.new("PmenuThumb", nil, bg4) - --- Diffs -Group.new("DiffDelete", red, bg1, invert_signs) -Group.new("DiffAdd", green, bg1, invert_signs) -Group.new("DiffChange", aqua, bg1, invert_signs) -Group.new("DiffText", yellow, bg1, invert_signs) - --- Spelling -if vim.fn.has("spell") == 1 then - Group.new("SpellBad", groups.GruvboxRedUnderline, groups.GruvboxRedUnderline, - groups.GruvboxRedUnderline) - Group.new("SpellLocal", groups.GruvboxAquaUnderline, groups.GruvboxAquaUnderline, - groups.GruvboxAquaUnderline) - Group.new("SpellRare", groups.GruvboxPurpleUnderline, groups.GruvboxPurpleUnderline, - groups.GruvboxPurpleUnderline) - - if vim.g.gruvbox_improved_warnings then - Group.new("SpellCap", green, nil, styles.bold + styles.underline) - else - Group.new("SpellRare", groups.GruvboxBlueUnderline, groups.GruvboxBlueUnderline, - groups.GruvboxBlueUnderline) - end -end - --- Filetype specific - --- HTML -Group.new("htmlTag", groups.GruvboxAquaBold, groups.GruvboxAquaBold, - groups.GruvboxAquaBold) -Group.new("htmlEndTag", groups.GruvboxAquaBold, groups.GruvboxAquaBold, - groups.GruvboxAquaBold) -Group.new("htmlTagName", groups.GruvboxBlueBold, groups.GruvboxBlueBold, - groups.GruvboxBlueBold) -Group.new("htmlArg", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange, groups.GruvboxOrange) -Group.new("htmlScriptTag", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("htmlTagN", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("htmlSpecialTagName", groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue) -Group.new("htmlLink", fg4, nil, styles.underline) -Group.new("htmlSpecialChar", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("htmlBold", fg0, bg0, styles.bold) -Group.new("htmlBoldUnderline", fg0, bg0, styles.bold + styles.underline) -Group.new("htmlBoldItalic", fg0, bg0, styles.bold + styles.italic) -Group.new("htmlBoldUnderlineItalic", fg0, bg0, - styles.bold + styles.underline + styles.italic) -Group.new("htmlUnderline", fg0, bg0, styles.underline) -Group.new("htmlUnderlineItalic", fg0, bg0, styles.underline + styles.italic) -Group.new("htmlItalic", fg0, bg0, styles.italic) -Group.new("htmlH1", groups.String, groups.String, groups.String) - --- XML -Group.new("xmlTag", groups.GruvboxAquaBold, groups.GruvboxAquaBold, - groups.GruvboxAquaBold) -Group.new("xmlEndTag", groups.GruvboxAquaBold, groups.GruvboxAquaBold, - groups.GruvboxAquaBold) -Group.new("xmlTagName", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("xmlEqual", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("docbkKeyword", groups.GruvboxAquaBold, groups.GruvboxAquaBold, - groups.GruvboxAquaBold) -Group.new("xmlDocTypeDecl", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("xmlDocTypeKeyword", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("xmlCdataStart", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("xmlCdataCdata", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("dtdFunction", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("dtdTagName", groups.GruvboxPurple, groups.GruvboxPurple, groups.GruvboxPurple) -Group.new("xmlAttrib", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange) -Group.new("xmlProcessingDelim", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("dtdParamEntityPunct", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("dtdParamEntityDPunct", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("xmlAttribPunct", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("xmlEntity", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("xmlEntityPunct", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) - --- VimL -Group.new("vimCommentTitle", fg4, nil, styles.bold + italic_comments) -Group.new("vimNotation", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("vimBracket", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange) -Group.new("vimMapModKey", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("vimFuncSID", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("vimSetSep", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("vimSep", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("vimContinue", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) - --- Python -Group.new("pythonBuiltin", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("pythonBuiltinObj", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("pythonBuiltinFunc", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("pythonFunction", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("pythonDecorator", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("pythonInclude", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("pythonImport", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("pythonRun", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("pythonCoding", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("pythonOperator", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("pythonException", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("pythonExceptions", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("pythonBoolean", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("pythonDot", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("pythonConditional", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("pythonRepeat", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("pythonDottedName", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) - --- CSS -Group.new("cssBraces", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("cssFunctionName", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow) -Group.new("cssIdentifier", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("cssClassName", groups.GruvboxGreen, groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen, groups.GruvboxGreen) -Group.new("cssColor", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("cssSelectorOp", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("cssSelectorOp2", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("cssImportant", groups.GruvboxGreen, groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen, groups.GruvboxGreen) -Group.new("cssVendor", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("cssTextProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssAnimationProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssUIProp", groups.GruvboxYellow, groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow, groups.GruvboxYellow) -Group.new("cssTransformProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssTransitionProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("cssPrintProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssPositioningProp", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow) -Group.new("cssBoxProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssFontDescriptorProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("cssFlexibleBoxProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("cssBorderOutlineProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("cssBackgroundProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("cssMarginProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssListProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssTableProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssFontProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssPaddingProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssDimensionProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssRenderProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssColorProp", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("cssGeneratedContentProp", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) - --- JavaScript - -Group.new("javaScriptBraces", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("javaScriptFunction", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("javaScriptIdentifier", groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed) -Group.new("javaScriptMember", groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("javaScriptNumber", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("javaScriptNull", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("javaScriptParens", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) - --- TypeScript -Group.new("typeScriptReserved", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("typeScriptLabel", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("typeScriptFuncKeyword", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("typeScriptIdentifier", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("typeScriptBraces", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("typeScriptEndColons", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("typeScriptDOMObjects", groups.GruvboxFg1, groups.GruvboxFg1, - groups.GruvboxFg1) -Group.new("typeScriptAjaxMethods", groups.GruvboxFg1, groups.GruvboxFg1, - groups.GruvboxFg1) -Group.new("typeScriptLogicSymbols", groups.GruvboxFg1, groups.GruvboxFg1, - groups.GruvboxFg1) -Group.new("typeScriptDocSeeTag", groups.Comment) -Group.new("typeScriptDocParam", groups.Comment) -Group.new("typeScriptDocTags", groups.vimCommentTitle) -Group.new("typeScriptGlobalObjects", groups.GruvboxFg1, groups.GruvboxFg1, - groups.GruvboxFg1) -Group.new("typeScriptParens", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("typeScriptOpSymbols", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("typeScriptHtmlElemProperties", groups.GruvboxFg1, groups.GruvboxFg1, - groups.GruvboxFg1) -Group.new("typeScriptNull", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("typeScriptInterpolationDelimiter", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) - --- Ruby -Group.new("rubyStringDelimiter", groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen) -Group.new("rubyInterpolationDelimiter", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) - --- Go -Group.new("goDirective", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("goConstants", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("goDeclaration", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("goDeclType", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("goBuiltins", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange) - --- Lua -Group.new("luaIn", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed, groups.GruvboxRed) -Group.new("luaFunction", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("luaTable", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange, groups.GruvboxOrange) - --- Java -Group.new("javaAnnotation", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("javaDocTags", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("javaCommentTitle", groups.vimCommentTitle, groups.vimCommentTitle, - groups.vimCommentTitle) -Group.new("javaParen", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("javaParen1", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("javaParen2", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("javaParen3", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("javaParen4", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("javaParen5", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("javaOperator", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("javaVarArg", groups.GruvboxGreen, groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen, groups.GruvboxGreen) - --- Elixir -Group.new("elixirDocString", groups.Comment, groups.Comment, groups.Comment) -Group.new("elixirStringDelimiter", groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen) -Group.new("elixirInterpolationDelimiter", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("elixirModuleDeclaration", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow) - --- Markdown -Group.new("markdownItalic", fg3, nil, styles.italic) -Group.new("markdownLinkText", colors.gray, nil, styles.underline) -Group.new("markdownH1", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) -Group.new("markdownH2", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) -Group.new("markdownH3", groups.GruvboxYellowBold, groups.GruvboxYellowBold, - groups.GruvboxYellowBold) -Group.new("markdownH4", groups.GruvboxYellowBold, groups.GruvboxYellowBold, - groups.GruvboxYellowBold) -Group.new("markdownH5", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow, groups.GruvboxYellow, groups.GruvboxYellow) -Group.new("markdownH6", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow, groups.GruvboxYellow, groups.GruvboxYellow) -Group.new("markdownCode", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("markdownCodeBlock", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("markdownCodeDelimiter", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("markdownBlockquote", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("markdownListMarker", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("markdownOrderedListMarker", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("markdownRule", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray, groups.GruvboxGray) -Group.new("markdownHeadingRule", groups.GruvboxGray, groups.GruvboxGray, - groups.GruvboxGray) -Group.new("markdownUrlDelimiter", groups.GruvboxFg3, groups.GruvboxFg3, - groups.GruvboxFg3) -Group.new("markdownLinkDelimiter", groups.GruvboxFg3, groups.GruvboxFg3, - groups.GruvboxFg3) -Group.new("markdownLinkTextDelimiter", groups.GruvboxFg3, groups.GruvboxFg3, - groups.GruvboxFg3) -Group.new("markdownHeadingDelimiter", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("markdownUrl", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("markdownUrlTitleDelimiter", groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen) -Group.new("markdownIdDeclaration", groups.markdownLinkText, groups.markdownLinkText, - groups.markdownLinkText) - --- Haskell -Group.new("haskellType", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("haskellIdentifier", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("haskellSeparator", groups.GruvboxFg4, groups.GruvboxFg4, groups.GruvboxFg4) -Group.new("haskellDelimiter", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("haskellOperators", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) - -Group.new("haskellBacktick", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("haskellStatement", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("haskellConditional", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) - -Group.new("haskellLet", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("haskellDefault", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("haskellWhere", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("haskellBottom", groups.GruvboxRedBold, groups.GruvboxRedBold, - groups.GruvboxRedBold) -Group.new("haskellImportKeywords", groups.GruvboxPurpleBold, groups.GruvboxPurpleBold, - groups.GruvboxPurpleBold) -Group.new("haskellDeclKeyword", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("haskellDecl", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("haskellDeriving", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("haskellAssocType", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) - -Group.new("haskellNumber", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("haskellPragma", groups.GruvboxRedBold, groups.GruvboxRedBold, - groups.GruvboxRedBold) - -Group.new("haskellTH", groups.GruvboxAquaBold, groups.GruvboxAquaBold, - groups.GruvboxAquaBold) -Group.new("haskellForeignKeywords", groups.GruvboxGreen, groups.GruvboxGreen, - groups.GruvboxGreen) -Group.new("haskellKeyword", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("haskellFloat", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("haskellInfix", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("haskellQuote", groups.GruvboxGreenBold, groups.GruvboxGreenBold, - groups.GruvboxGreenBold) -Group.new("haskellShebang", groups.GruvboxYellowBold, groups.GruvboxYellowBold, - groups.GruvboxYellowBold) -Group.new("haskellLiquid", groups.GruvboxPurpleBold, groups.GruvboxPurpleBold, - groups.GruvboxPurpleBold) -Group.new("haskellQuasiQuoted", groups.GruvboxBlueBold, groups.GruvboxBlueBold, - groups.GruvboxBlueBold) -Group.new("haskellRecursiveDo", groups.GruvboxPurple, groups.GruvboxPurple, - groups.GruvboxPurple) -Group.new("haskellQuotedType", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("haskellPreProc", groups.GruvboxFg4, groups.GruvboxFg4, groups.GruvboxFg4) -Group.new("haskellTypeRoles", groups.GruvboxRedBold, groups.GruvboxRedBold, - groups.GruvboxRedBold) -Group.new("haskellTypeForall", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("haskellPatternKeyword", groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue) - --- JSON -Group.new("jsonKeyword", groups.GruvboxGreen, groups.GruvboxGreen, groups.GruvboxGreen) -Group.new("jsonQuote", groups.GruvboxGreen, groups.GruvboxGreen, groups.GruvboxGreen) -Group.new("jsonBraces", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("jsonString", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) - --- Rust -Group.new("rustSigil", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange) -Group.new("rustEscape", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("rustStringContinuation", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("rustEnum", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("rustStructure", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("rustModPathSep", groups.GruvboxFg2, groups.GruvboxFg2, groups.GruvboxFg2) -Group.new("rustCommentLineDoc", groups.Comment, groups.Comment, groups.Comment) -Group.new("rustDefault", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) - --- Ocaml -Group.new("ocamlOperator", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("ocamlKeyChar", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("ocamlArrow", groups.GruvboxOrange, groups.GruvboxOrange, groups.GruvboxOrange) -Group.new("ocamlInfixOpKeyword", groups.GruvboxRed, groups.GruvboxRed, groups.GruvboxRed) -Group.new("ocamlConstructor", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) - --- Plugin specific - --- vim-signify -Group.new("SignifySignAdd", groups.GruvboxGreenSign, groups.GruvboxGreenSign, - groups.GruvboxGreenSign) -Group.new("SignifySignChange", groups.GruvboxAquaSign, groups.GruvboxAquaSign, - groups.GruvboxAquaSign) -Group.new("SignifySignDelete", groups.GruvboxRedSign, groups.GruvboxRedSign, - groups.GruvboxRedSign) - --- vim-startify -Group.new("StartifyBracket", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("StartifyFile", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("StartifyNumber", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("StartifyPath", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("StartifySlash", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("StartifySection", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow) -Group.new("StartifySpecial", groups.GruvboxBg2, groups.GruvboxBg2, groups.GruvboxBg2) -Group.new("StartifyHeader", groups.GruvboxOrange, groups.GruvboxOrange, - groups.GruvboxOrange) -Group.new("StartifyFooter", groups.GruvboxBg2, groups.GruvboxBg2, groups.GruvboxBg2) - --- netrw -Group.new("netrwDir", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("netrwClassify", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("netrwLink", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("netrwSymLink", groups.GruvboxFg1, groups.GruvboxFg1, groups.GruvboxFg1) -Group.new("netrwExe", groups.GruvboxYellow, groups.GruvboxYellow, groups.GruvboxYellow) -Group.new("netrwComment", groups.GruvboxGray, groups.GruvboxGray, groups.GruvboxGray) -Group.new("netrwList", groups.GruvboxBlue, groups.GruvboxBlue, groups.GruvboxBlue) -Group.new("netrwHelpCmd", groups.GruvboxAqua, groups.GruvboxAqua, groups.GruvboxAqua) -Group.new("netrwCmdSep", groups.GruvboxFg3, groups.GruvboxFg3, groups.GruvboxFg3) -Group.new("netrwVersion", groups.GruvboxGreen, groups.GruvboxGreen, groups.GruvboxGreen) - --- LSP -Group.new("LspDiagnosticsDefaultError", groups.GruvboxRed, groups.GruvboxRed, - groups.GruvboxRed) -Group.new("LspDiagnosticsSignError", groups.GruvboxRedSign, groups.GruvboxRedSign, - groups.GruvboxRedSign) -Group.new("LspDiagnosticsUnderlineError", groups.GruvboxRedUnderline, - groups.GruvboxRedUnderline, groups.GruvboxRedUnderline) - -Group.new("LspDiagnosticsDefaultWarning", groups.GruvboxYellow, groups.GruvboxYellow, - groups.GruvboxYellow) -Group.new("LspDiagnosticsSignWarning", groups.GruvboxYellowSign, - groups.GruvboxYellowSign, groups.GruvboxYellowSign) -Group.new("LspDiagnosticsUnderlineWarning", groups.GruvboxYellowUnderline, - groups.GruvboxYellowUnderline, groups.GruvboxYellowUnderline) - -Group.new("LspDiagnosticsDefaultInformation", groups.GruvboxBlue, groups.GruvboxBlue, - groups.GruvboxBlue) -Group.new("LspDiagnosticsSignInformation", groups.GruvboxBlueSign, - groups.GruvboxBlueSign, groups.GruvboxBlueSign) -Group.new("LspDiagnosticsUnderlineInformation", groups.GruvboxBlueUnderline, - groups.GruvboxBlueUnderline, groups.GruvboxBlueUnderline) - -Group.new("LspDiagnosticsDefaultHint", groups.GruvboxAqua, groups.GruvboxAqua, - groups.GruvboxAqua) -Group.new("LspDiagnosticsSignHint", groups.GruvboxAquaSign, groups.GruvboxAquaSign, - groups.GruvboxAquaSign) -Group.new("LspDiagnosticsUnderlineHint", groups.GruvboxAquaUnderline, - groups.GruvboxAquaUnderline, groups.GruvboxAquaUnderline) - --- Galaxyline default providers -Group.new("GalaxyGitBranch", fg0, colors.faded_aqua, nil) -Group.new("GalaxyGitBranchSeparator", yellow, bg0, nil) -Group.new("GalaxyDiffAdd", groups.DiffAdd, nil, styles.bold) -Group.new("GalaxyDiffModified", groups.DiffChange, nil, styles.bold) -Group.new("GalaxyDiffRemove", groups.DiffDelete, nil, styles.bold) -Group.new("GalaxyScrollbar", green, bg0, nil) -Group.new("GalaxyLinePercent", fg0, bg0, nil) -Group.new("GalaxyFileTypeName", fg0, bg0, styles.bold) -Group.new("GalaxyFileName", blue, bg0, styles.bold) -Group.new("GalaxyFileIcon", groups.GalaxyFileName, groups.GalaxyFileName, - groups.GalaxyFileName) -Group.new("GalaxyFileSize", groups.GalaxyFileName, groups.GalaxyFileName, - groups.GalaxyFileName) -Group.new("GalaxyFileEncode", groups.GalaxyFileName, groups.GalaxyFileName, - groups.GalaxyFileName) -Group.new("GalaxyFileFormat", groups.GalaxyFileName, groups.GalaxyFileName, - groups.GalaxyFileName) -Group.new("GalaxyDiagnosticError", groups.LspDiagnosticsDefaultError, - groups.LspDiagnosticsDefaultError, groups.LspDiagnosticsDefaultError) -Group.new("GalaxyDiagnosticWarn", groups.LspDiagnosticsDefaultWarning, - groups.LspDiagnosticsDefaultWarning, groups.LspDiagnosticsDefaultWarning) -Group.new("GalaxyDiagnosticHint", groups.LspDiagnosticsDefaultHint, - groups.LspDiagnosticsDefaultHint, groups.LspDiagnosticsDefaultHint) -Group.new("GalaxyDiagnosticInformation", groups.LspDiagnosticsDefaultInformation, - groups.LspDiagnosticsDefaultInformation, - groups.LspDiagnosticsDefaultInformation) - --- Treesitter -Group.new("TSNone", nil, nil, nil) -Group.new("TSStrong", nil, nil, styles.bold) -Group.new("TSUnderline", nil, nil, styles.underline) -Group.new("TSEmphasis", nil, nil, styles.italic) -Group.new("TSPunctDelimiter", groups.Delimiter, groups.Delimiter, groups.Delimiter) -Group.new("TSPunctBracket", groups.Delimiter, groups.Delimiter, groups.Delimiter) -Group.new("TSPunctSpecial", groups.Delimiter, groups.Delimiter, groups.Delimiter) -Group.new("TSConstant", groups.Constant, groups.Constant, groups.Constant) -Group.new("TSConstBuiltin", groups.Special, groups.Special, groups.Special) -Group.new("TSConstMacro", groups.Define, groups.Define, groups.Define) -Group.new("TSString", groups.String, groups.String, groups.String) -Group.new("TSStringRegex", groups.String, groups.String, groups.String) -Group.new("TSStringEscape", groups.SpecialChar, groups.SpecialChar, groups.SpecialChar) -Group.new("TSCharacter", groups.Character, groups.Character, groups.Character) -Group.new("TSNumber", groups.Number, groups.Number, groups.Number) -Group.new("TSBoolean", groups.Boolean, groups.Boolean, groups.Boolean) -Group.new("TSFloat", groups.Float, groups.Float, groups.Float) -Group.new("TSFunction", groups.Function, groups.Function, groups.Function) -Group.new("TSFuncBuiltin", groups.Special, groups.Special, groups.Special) -Group.new("TSFuncMacro", groups.Macro, groups.Macro, groups.Macro) -Group.new("TSParameter", groups.Identifier, groups.Identifier, groups.Identifier) -Group.new("TSParameterReference", groups.TSParameter, groups.TSParameter, - groups.TSParameter) -Group.new("TSMethod", groups.Function, groups.Function, groups.Function) -Group.new("TSField", groups.Identifier, groups.Identifier, groups.Identifier) -Group.new("TSProperty", groups.Identifier, groups.Identifier, groups.Identifier) -Group.new("TSConstructor", groups.Special, groups.Special, groups.Special) -Group.new("TSAnnotation", groups.PreProc, groups.PreProc, groups.PreProc) -Group.new("TSNamespace", groups.Include, groups.Include, groups.Include) -Group.new("TSConditional", groups.Conditional, groups.Conditional, groups.Conditional) -Group.new("TSRepeat", groups.Repeat, groups.Repeat, groups.Repeat, groups.Repeat) -Group.new("TSLabel", groups.Label, groups.Label, groups.Label) -Group.new("TSOperator", groups.Operator, groups.Operator, groups.Operator) -Group.new("TSKeyword", groups.Keyword, groups.Keyword, groups.Keyword) -Group.new("TSKeywordFunction", groups.Keyword, groups.Keyword, groups.Keyword) -Group.new("TSKeywordOperator", groups.TSOperator, groups.TSOperator, groups.TSOperator) -Group.new("TSException", groups.Exception, groups.Exception, groups.Exception) -Group.new("TSType", groups.Type, groups.Type, groups.Type) -Group.new("TSTypeBuiltin", groups.Type, groups.Type, groups.Type) -Group.new("TSInclude", groups.Include, groups.Include, groups.Include) -Group.new("TSVariableBuiltin", groups.Special, groups.Special, groups.Special) -Group.new("TSText", groups.TSNone, groups.TSNone, groups.TSNone) -Group.new("TSTitle", groups.Title, groups.Title, groups.Title) -Group.new("TSLiteral", groups.String, groups.String, groups.String) -Group.new("TSURI", groups.Underlined, groups.Underlined, groups.Underlined) -Group.new("TSTag", groups.Label, groups.Label, groups.Label) -Group.new("TSTagDelimiter", groups.Delimiter, groups.Delimiter, groups.Delimiter) diff --git a/lua/gruvbox/palette.lua b/lua/gruvbox/palette.lua deleted file mode 100644 index acd2677..0000000 --- a/lua/gruvbox/palette.lua +++ /dev/null @@ -1,41 +0,0 @@ --- gruvbox color palette -local 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", -} - -return palette diff --git a/lua/lush_template/gruvbox.lua b/lua/lush_template/gruvbox.lua new file mode 100644 index 0000000..f303b25 --- /dev/null +++ b/lua/lush_template/gruvbox.lua @@ -0,0 +1,396 @@ +local lush = require("lush") +local hsl = lush.hsl +-- gruvbox palette +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", +} +-- options (dark mode by default) +local bg0 = colors.dark0 +local bg1 = colors.dark1 +local bg2 = colors.dark2 +local bg3 = colors.dark3 +local bg4 = colors.dark4 + +local fg0 = colors.light0 +local fg1 = colors.light1 +local fg2 = colors.light2 +local fg3 = colors.light3 +local fg4 = colors.light4 + +local red = colors.bright_red +local green = colors.bright_green +local yellow = colors.bright_yellow +local blue = colors.bright_blue +local purple = colors.bright_purple +local aqua = colors.bright_aqua +local orange = colors.bright_orange +local sign_column = bg1 +local gray = colors.gray + +-- global settings +local settings = { + contrast_dark = "medium", + contrart_light = "medium", + bold = true, + italic = true, + undercurl = true, + underline = true, + improved_strings = false, + improved_warnings = false, + invert_signs = false, + invert_selection = true, + invert_tabline = false, + italicize_comments = true, + italicize_strings = false, +} + +local styles = { + italic = "italic", + inverse = "inverse", + bold = "bold", + undercurl = "undercurl", + underline = "underline", +} + +-- 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 + +-- handle light/dark contrast settings +local bg = vim.o.background +local contrast = vim.g["gruvbox_contrast_" .. bg] +if contrast == "hard" then + bg0 = colors[bg .. "0_hard"] +elseif contrast == "soft" then + bg0 = colors[bg .. "0_soft"] +end + +-- swap colors if light mode +if bg == "light" then + bg0 = colors.light0 + bg1 = colors.light1 + bg2 = colors.light2 + bg3 = colors.light3 + bg4 = colors.light4 + fg0 = colors.dark0 + fg1 = colors.dark1 + fg2 = colors.dark2 + fg3 = colors.dark3 + fg4 = colors.dark4 + red = colors.faded_red + green = colors.faded_green + yellow = colors.faded_yellow + blue = colors.faded_blue + purple = colors.faded_purple + aqua = colors.faded_aqua + orange = colors.faded_orange +end + +local hls_cursor = orange +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_cursor] +end + +local hls_highlight = yellow +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_highlight] +end + +local number_column +if vim.g.gruvbox_number_column ~= nil then + number_column = hsl(colors[vim.g.gruvbox_number_column]) +end + +local color_column = bg1 +if vim.g.gruvbox_color_column ~= nil then + color_column = colors[vim.g.gruvbox_color_column] +end + +local vert_split = bg0 +if vim.g.gruvbox_vert_split ~= nil then + vert_split = colors[vim.g.gruvbox_vert_split] +end + +local invert_signs +if vim.g.gruvbox_invert_signs then + invert_signs = styles.inverse +end + +local invert_selection = styles.inverse +if not vim.g.gruvbox_invert_selection then + invert_selection = nil +end + +local invert_tabline +if vim.g.gruvbox_invert_tabline then + invert_tabline = styles.inverse +end + +local tabline_sel = green +if vim.g.gruvbox_tabline_sel then + tabline_sel = colors[vim.g.gruvbox_tabline_sel] +end + +local italic_comments = settings.italic +if not vim.g.gruvbox_italicize_comments then + italic_comments = nil +end + +local italic_strings +if vim.g.gruvbox_italicize_strings then + italic_strings = styles.italic +end + +local special = {fg = hsl(orange), bg = hsl(bg1), gui = italic_strings} +local special_string = {fg = hsl(fg1), bg = hsl(bg1), italic_strings} +if not vim.g.gruvbox_improved_strings then + special = {fg = hsl(orange)} + special_string = {fg = hsl(green), gui = italic_strings} +end + +local theme = lush(function() + return { + -- EndOfBuffer { }, + -- TermCursor { }, + -- TermCursorNC { }, + -- Substitute { }, + -- MsgArea { }, + -- MsgSeparator { }, + -- Whitespace { }, + -- Base groups + ColorColumn {bg = hsl(bg1)}, + Conceal {bg = hsl(blue)}, + Cursor {gui = styles.inverse}, + lCursor {Cursor}, + CursorIM {Cursor}, + CursorColumn {bg = bg1}, + CursorLine {CursorColumn}, + Directory {fg = hsl(green), gui = styles.bold}, + DiffAdd {fg = hsl(green), bg = hsl(bg1), gui = invert_signs}, + DiffChange {fg = hsl(aqua), bg = hsl(bg1), gui = invert_signs}, + DiffDelete {fg = hsl(red), bg = hsl(bg1), gui = invert_signs}, + DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, + ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, + VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, + Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, + FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, + SignColumn {bg = hsl(sign_column)}, + IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, + LineNr {fg = hsl(bg4), bg = number_column}, + CursorLineNr {fg = hsl(yellow), bg = hsl(bg1)}, + MatchParen {bg = hsl(bg3), gui = styles.bold}, + ModeMsg {fg = hsl(yellow), gui = styles.bold}, + MoreMsg {fg = hsl(yellow), gui = styles.bold}, + NonText {fg = hsl(bg2)}, + Normal {fg = hsl(fg0), bg = hsl(bg0)}, + NormalFloat {Normal}, + NormalNC {Normal}, + Pmenu {fg = hsl(fg1), bg = hsl(bg2)}, + PmenuSel {fg = hsl(bg2), bg = hsl(blue), gui = styles.bold}, + PmenuSbar {bg = hsl(bg2)}, + PmenuThumb {bg = hsl(bg4)}, + Question {fg = hsl(orange), gui = styles.bold}, + QuickFixLine {fg = hsl(fg0), bg = hsl(yellow), gui = styles.bold}, + Search {fg = hsl(hls_highlight), bg = hsl(bg0), gui = styles.inverse}, + SpecialKey {fg = hsl(fg4)}, + SpellRare {gui = styles.undercurl, sep = hsl(purple)}, + SpellBad {fg = hsl(red), gui = styles.underline}, + StatusLine {fg = hsl(bg2), bg = hsl(fg1), gui = styles.inverse}, + StatusLineNC {fg = hsl(bg1), bg = hsl(fg4), gui = styles.inverse}, + TabLine {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, + TabLineFill {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, + TabLineSel {fg = hsl(tabline_sel), bg = hsl(bg1), gui = invert_tabline}, + Title {fg = hsl(green), gui = styles.bold}, + Visual {bg = hsl(bg3), gui = invert_selection}, + VisualNOS {bg = hsl(bg3), gui = invert_selection}, + WarningMsg {fg = hsl(red), gui = styles.bold}, + WildMenu {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, + Constant {fg = hsl(purple)}, + String {unpack(special_string)}, + Character {fg = hsl(purple)}, + Number {Character}, + Boolean {Character}, + Float {Character}, + Identifier {fg = hsl(blue)}, + Function {fg = hsl(green), gui = styles.bold}, + Statement {fg = hsl(red)}, + Conditional {fg = hsl(red)}, + Repeat {fg = hsl(red)}, + Label {fg = hsl(red)}, + Keyword {fg = hsl(red)}, + Exception {fg = hsl(red)}, + Operator {fg = hsl(fg1)}, + PreProc {fg = hsl(aqua)}, + Include {fg = hsl(aqua)}, + Define {fg = hsl(aqua)}, + Macro {fg = hsl(aqua)}, + PreCondit {fg = hsl(aqua)}, + Type {fg = hsl(yellow)}, + StorageClass {fg = hsl(orange)}, + Structure {fg = hsl(aqua)}, + Typedef {fg = hsl(yellow)}, + Special {unpack(special)}, + SpecialChar {fg = hsl(red)}, + Tag {fg = hsl(aqua), gui = styles.bold}, + Delimiter {fg = hsl(fg0)}, + SpecialComment {fg = hsl(gray), gui = styles.italic}, + Debug {fg = hsl(red)}, + Underlined {gui = styles.underline}, + Bold {gui = styles.bold}, + Italic {gui = styles.italic}, + Ignore {}, + Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles + Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, + + -- LSP + LspDiagnosticsError {Error}, + LspDiagnosticsErrorSign {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, + LspDiagnosticsErrorFloating {LspDiagnosticsError}, + LspDiagnosticsWarning {fg = hsl(yellow)}, + LspDiagnosticsWarningSign { + LspDiagnosticsWarning, + bg = hsl(sign_column), + gui = styles.undercurl, + sp = hsl(yellow), + }, + LspDiagnosticsWarningFloating {LspDiagnosticsWarning}, + LspDiagnosticsInformation {fg = hsl(blue)}, + LspDiagnosticsInformationSign { + LspDiagnosticsInformation, + bg = hsl(sign_column), + gui = invert_signs, + }, + LspDiagnosticsInformationFloating {LspDiagnosticsInformation}, + LspDiagnosticsHint {fg = hsl(aqua)}, + LspDiagnosticsHintSign { + LspDiagnosticsHint, + bg = hsl(sign_column), + gui = invert_signs, + }, + LspDiagnosticsHintFloating {LspDiagnosticsHint}, + + -- Treesitter + TSNone {}, + TSError {Error}, + TSPunctDelimiter {Delimiter}, + TSPunctBracket {Delimiter}, + TSPunctSpecial {Delimiter}, + TSConstant {Constant}, + TSConstBuiltin {Special}, + TSConstMacro {Define}, + TSString {String}, + TSStringRegex {String}, + TSStringEscape {SpecialChar}, + TSCharacter {Character}, + TSNumber {Number}, + TSBoolean {Boolean}, + TSFloat {Float}, + TSFunction {Function}, + TSFuncBuiltin {Special}, + TSFuncMacro {Macro}, + TSParameter {Identifier}, + TSParameterReference {TSParameter}, + TSMethod {Function}, + TSField {Identifier}, + TSProperty {Identifier}, + TSConstructor {Special}, + TSConditional {Conditional}, + TSRepeat {Repeat}, + TSLabel {Label}, + TSOperator {Operator}, + TSKeyword {Keyword}, + TSKeywordFunction {Keyword}, + TSException {Exception}, + TSType {Type}, + TSTypeBuiltin {Type}, + TSNamespace {Include}, + TSInclude {Include}, + TSAnnotation {PreProc}, + TSText {TSNone}, + TSStrong {gui = styles.bold}, + TSEmphasis {gui = styles.italic}, + TSUnderline {gui = styles.underline}, + TSTitle {Title}, + TSLiteral {String}, + TSURI {Underlined}, + TSVariable {Special}, + TSVariableBuiltin {Special}, + + -- netrw + netrwDir {fg = hsl(aqua)}, + netrwClassify {netrwDir}, + netrwLink {fg = hsl(gray)}, + netrwSymLink {fg = hsl(fg1)}, + netrwExe {fg = hsl(yellow)}, + netrwComment {netrwLink}, + netrwList {fg = hsl(blue)}, + netrwHelpCmd {netrwDir}, + netrwCmdSep {fg = hsl(fg3)}, + netrwVersion {fg = hsl(green)}, + + -- vim-startify + StartifyBracket {fg = hsl(fg3)}, + StartifyFile {fg = hsl(fg1)}, + StartifyNumber {fg = hsl(blue)}, + StartifyPath {fg = hsl(gray)}, + StartifySlash {StartifyPath}, + StartifySection {fg = hsl(yellow)}, + StartifySpecial {fg = hsl(bg2)}, + StartifyHeader {fg = hsl(orange)}, + StartifyFooter {fg = hsl(bg2)}, + + -- vim-signify + SignifySignAdd {fg = hsl(green), bg = hsl(sign_column), gui = invert_signs}, + SignifySignChange {fg = hsl(aqua), bg = hsl(sign_column), gui = invert_signs}, + SignifySignDelete {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, + + -- lua + luaIn {fg = hsl(red)}, + luaFunction {fg = hsl(aqua)}, + luaTable {fg = hsl(orange)}, + + } +end) + +return theme + +-- vi:nowrap -- cgit v1.2.3 From 939a21c94bf1d1efbdf527ac9c0b312d606679cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Tue, 23 Feb 2021 11:42:55 -0300 Subject: adding more highlight groups --- colors/gruvbox.vim | 4 +- lua/lush_template/gruvbox.lua | 396 ------------------ lua/theme/init.lua | 910 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 912 insertions(+), 398 deletions(-) delete mode 100644 lua/lush_template/gruvbox.lua create mode 100644 lua/theme/init.lua diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim index 8bce9bd..b052493 100644 --- a/colors/gruvbox.vim +++ b/colors/gruvbox.vim @@ -1,5 +1,5 @@ set background=dark let g:colors_name="gruvbox" " reloading colors -lua package.loaded["gruvbox.lush_template"] = nil -lua require("lush")(require("gruvbox.lush_template")) +lua package.loaded["gruvbox.theme"] = nil +lua require("lush")(require("gruvbox.theme")) diff --git a/lua/lush_template/gruvbox.lua b/lua/lush_template/gruvbox.lua deleted file mode 100644 index f303b25..0000000 --- a/lua/lush_template/gruvbox.lua +++ /dev/null @@ -1,396 +0,0 @@ -local lush = require("lush") -local hsl = lush.hsl --- gruvbox palette -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", -} --- options (dark mode by default) -local bg0 = colors.dark0 -local bg1 = colors.dark1 -local bg2 = colors.dark2 -local bg3 = colors.dark3 -local bg4 = colors.dark4 - -local fg0 = colors.light0 -local fg1 = colors.light1 -local fg2 = colors.light2 -local fg3 = colors.light3 -local fg4 = colors.light4 - -local red = colors.bright_red -local green = colors.bright_green -local yellow = colors.bright_yellow -local blue = colors.bright_blue -local purple = colors.bright_purple -local aqua = colors.bright_aqua -local orange = colors.bright_orange -local sign_column = bg1 -local gray = colors.gray - --- global settings -local settings = { - contrast_dark = "medium", - contrart_light = "medium", - bold = true, - italic = true, - undercurl = true, - underline = true, - improved_strings = false, - improved_warnings = false, - invert_signs = false, - invert_selection = true, - invert_tabline = false, - italicize_comments = true, - italicize_strings = false, -} - -local styles = { - italic = "italic", - inverse = "inverse", - bold = "bold", - undercurl = "undercurl", - underline = "underline", -} - --- 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 - --- handle light/dark contrast settings -local bg = vim.o.background -local contrast = vim.g["gruvbox_contrast_" .. bg] -if contrast == "hard" then - bg0 = colors[bg .. "0_hard"] -elseif contrast == "soft" then - bg0 = colors[bg .. "0_soft"] -end - --- swap colors if light mode -if bg == "light" then - bg0 = colors.light0 - bg1 = colors.light1 - bg2 = colors.light2 - bg3 = colors.light3 - bg4 = colors.light4 - fg0 = colors.dark0 - fg1 = colors.dark1 - fg2 = colors.dark2 - fg3 = colors.dark3 - fg4 = colors.dark4 - red = colors.faded_red - green = colors.faded_green - yellow = colors.faded_yellow - blue = colors.faded_blue - purple = colors.faded_purple - aqua = colors.faded_aqua - orange = colors.faded_orange -end - -local hls_cursor = orange -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_cursor] -end - -local hls_highlight = yellow -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_highlight] -end - -local number_column -if vim.g.gruvbox_number_column ~= nil then - number_column = hsl(colors[vim.g.gruvbox_number_column]) -end - -local color_column = bg1 -if vim.g.gruvbox_color_column ~= nil then - color_column = colors[vim.g.gruvbox_color_column] -end - -local vert_split = bg0 -if vim.g.gruvbox_vert_split ~= nil then - vert_split = colors[vim.g.gruvbox_vert_split] -end - -local invert_signs -if vim.g.gruvbox_invert_signs then - invert_signs = styles.inverse -end - -local invert_selection = styles.inverse -if not vim.g.gruvbox_invert_selection then - invert_selection = nil -end - -local invert_tabline -if vim.g.gruvbox_invert_tabline then - invert_tabline = styles.inverse -end - -local tabline_sel = green -if vim.g.gruvbox_tabline_sel then - tabline_sel = colors[vim.g.gruvbox_tabline_sel] -end - -local italic_comments = settings.italic -if not vim.g.gruvbox_italicize_comments then - italic_comments = nil -end - -local italic_strings -if vim.g.gruvbox_italicize_strings then - italic_strings = styles.italic -end - -local special = {fg = hsl(orange), bg = hsl(bg1), gui = italic_strings} -local special_string = {fg = hsl(fg1), bg = hsl(bg1), italic_strings} -if not vim.g.gruvbox_improved_strings then - special = {fg = hsl(orange)} - special_string = {fg = hsl(green), gui = italic_strings} -end - -local theme = lush(function() - return { - -- EndOfBuffer { }, - -- TermCursor { }, - -- TermCursorNC { }, - -- Substitute { }, - -- MsgArea { }, - -- MsgSeparator { }, - -- Whitespace { }, - -- Base groups - ColorColumn {bg = hsl(bg1)}, - Conceal {bg = hsl(blue)}, - Cursor {gui = styles.inverse}, - lCursor {Cursor}, - CursorIM {Cursor}, - CursorColumn {bg = bg1}, - CursorLine {CursorColumn}, - Directory {fg = hsl(green), gui = styles.bold}, - DiffAdd {fg = hsl(green), bg = hsl(bg1), gui = invert_signs}, - DiffChange {fg = hsl(aqua), bg = hsl(bg1), gui = invert_signs}, - DiffDelete {fg = hsl(red), bg = hsl(bg1), gui = invert_signs}, - DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, - ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, - VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, - Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, - FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, - SignColumn {bg = hsl(sign_column)}, - IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, - LineNr {fg = hsl(bg4), bg = number_column}, - CursorLineNr {fg = hsl(yellow), bg = hsl(bg1)}, - MatchParen {bg = hsl(bg3), gui = styles.bold}, - ModeMsg {fg = hsl(yellow), gui = styles.bold}, - MoreMsg {fg = hsl(yellow), gui = styles.bold}, - NonText {fg = hsl(bg2)}, - Normal {fg = hsl(fg0), bg = hsl(bg0)}, - NormalFloat {Normal}, - NormalNC {Normal}, - Pmenu {fg = hsl(fg1), bg = hsl(bg2)}, - PmenuSel {fg = hsl(bg2), bg = hsl(blue), gui = styles.bold}, - PmenuSbar {bg = hsl(bg2)}, - PmenuThumb {bg = hsl(bg4)}, - Question {fg = hsl(orange), gui = styles.bold}, - QuickFixLine {fg = hsl(fg0), bg = hsl(yellow), gui = styles.bold}, - Search {fg = hsl(hls_highlight), bg = hsl(bg0), gui = styles.inverse}, - SpecialKey {fg = hsl(fg4)}, - SpellRare {gui = styles.undercurl, sep = hsl(purple)}, - SpellBad {fg = hsl(red), gui = styles.underline}, - StatusLine {fg = hsl(bg2), bg = hsl(fg1), gui = styles.inverse}, - StatusLineNC {fg = hsl(bg1), bg = hsl(fg4), gui = styles.inverse}, - TabLine {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, - TabLineFill {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, - TabLineSel {fg = hsl(tabline_sel), bg = hsl(bg1), gui = invert_tabline}, - Title {fg = hsl(green), gui = styles.bold}, - Visual {bg = hsl(bg3), gui = invert_selection}, - VisualNOS {bg = hsl(bg3), gui = invert_selection}, - WarningMsg {fg = hsl(red), gui = styles.bold}, - WildMenu {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, - Constant {fg = hsl(purple)}, - String {unpack(special_string)}, - Character {fg = hsl(purple)}, - Number {Character}, - Boolean {Character}, - Float {Character}, - Identifier {fg = hsl(blue)}, - Function {fg = hsl(green), gui = styles.bold}, - Statement {fg = hsl(red)}, - Conditional {fg = hsl(red)}, - Repeat {fg = hsl(red)}, - Label {fg = hsl(red)}, - Keyword {fg = hsl(red)}, - Exception {fg = hsl(red)}, - Operator {fg = hsl(fg1)}, - PreProc {fg = hsl(aqua)}, - Include {fg = hsl(aqua)}, - Define {fg = hsl(aqua)}, - Macro {fg = hsl(aqua)}, - PreCondit {fg = hsl(aqua)}, - Type {fg = hsl(yellow)}, - StorageClass {fg = hsl(orange)}, - Structure {fg = hsl(aqua)}, - Typedef {fg = hsl(yellow)}, - Special {unpack(special)}, - SpecialChar {fg = hsl(red)}, - Tag {fg = hsl(aqua), gui = styles.bold}, - Delimiter {fg = hsl(fg0)}, - SpecialComment {fg = hsl(gray), gui = styles.italic}, - Debug {fg = hsl(red)}, - Underlined {gui = styles.underline}, - Bold {gui = styles.bold}, - Italic {gui = styles.italic}, - Ignore {}, - Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles - Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, - - -- LSP - LspDiagnosticsError {Error}, - LspDiagnosticsErrorSign {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, - LspDiagnosticsErrorFloating {LspDiagnosticsError}, - LspDiagnosticsWarning {fg = hsl(yellow)}, - LspDiagnosticsWarningSign { - LspDiagnosticsWarning, - bg = hsl(sign_column), - gui = styles.undercurl, - sp = hsl(yellow), - }, - LspDiagnosticsWarningFloating {LspDiagnosticsWarning}, - LspDiagnosticsInformation {fg = hsl(blue)}, - LspDiagnosticsInformationSign { - LspDiagnosticsInformation, - bg = hsl(sign_column), - gui = invert_signs, - }, - LspDiagnosticsInformationFloating {LspDiagnosticsInformation}, - LspDiagnosticsHint {fg = hsl(aqua)}, - LspDiagnosticsHintSign { - LspDiagnosticsHint, - bg = hsl(sign_column), - gui = invert_signs, - }, - LspDiagnosticsHintFloating {LspDiagnosticsHint}, - - -- Treesitter - TSNone {}, - TSError {Error}, - TSPunctDelimiter {Delimiter}, - TSPunctBracket {Delimiter}, - TSPunctSpecial {Delimiter}, - TSConstant {Constant}, - TSConstBuiltin {Special}, - TSConstMacro {Define}, - TSString {String}, - TSStringRegex {String}, - TSStringEscape {SpecialChar}, - TSCharacter {Character}, - TSNumber {Number}, - TSBoolean {Boolean}, - TSFloat {Float}, - TSFunction {Function}, - TSFuncBuiltin {Special}, - TSFuncMacro {Macro}, - TSParameter {Identifier}, - TSParameterReference {TSParameter}, - TSMethod {Function}, - TSField {Identifier}, - TSProperty {Identifier}, - TSConstructor {Special}, - TSConditional {Conditional}, - TSRepeat {Repeat}, - TSLabel {Label}, - TSOperator {Operator}, - TSKeyword {Keyword}, - TSKeywordFunction {Keyword}, - TSException {Exception}, - TSType {Type}, - TSTypeBuiltin {Type}, - TSNamespace {Include}, - TSInclude {Include}, - TSAnnotation {PreProc}, - TSText {TSNone}, - TSStrong {gui = styles.bold}, - TSEmphasis {gui = styles.italic}, - TSUnderline {gui = styles.underline}, - TSTitle {Title}, - TSLiteral {String}, - TSURI {Underlined}, - TSVariable {Special}, - TSVariableBuiltin {Special}, - - -- netrw - netrwDir {fg = hsl(aqua)}, - netrwClassify {netrwDir}, - netrwLink {fg = hsl(gray)}, - netrwSymLink {fg = hsl(fg1)}, - netrwExe {fg = hsl(yellow)}, - netrwComment {netrwLink}, - netrwList {fg = hsl(blue)}, - netrwHelpCmd {netrwDir}, - netrwCmdSep {fg = hsl(fg3)}, - netrwVersion {fg = hsl(green)}, - - -- vim-startify - StartifyBracket {fg = hsl(fg3)}, - StartifyFile {fg = hsl(fg1)}, - StartifyNumber {fg = hsl(blue)}, - StartifyPath {fg = hsl(gray)}, - StartifySlash {StartifyPath}, - StartifySection {fg = hsl(yellow)}, - StartifySpecial {fg = hsl(bg2)}, - StartifyHeader {fg = hsl(orange)}, - StartifyFooter {fg = hsl(bg2)}, - - -- vim-signify - SignifySignAdd {fg = hsl(green), bg = hsl(sign_column), gui = invert_signs}, - SignifySignChange {fg = hsl(aqua), bg = hsl(sign_column), gui = invert_signs}, - SignifySignDelete {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, - - -- lua - luaIn {fg = hsl(red)}, - luaFunction {fg = hsl(aqua)}, - luaTable {fg = hsl(orange)}, - - } -end) - -return theme - --- vi:nowrap diff --git a/lua/theme/init.lua b/lua/theme/init.lua new file mode 100644 index 0000000..b14e022 --- /dev/null +++ b/lua/theme/init.lua @@ -0,0 +1,910 @@ +local lush = require("lush") +local hsl = lush.hsl +-- gruvbox palette +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", +} +-- options (dark mode by default) +local bg0 = colors.dark0 +local bg1 = colors.dark1 +local bg2 = colors.dark2 +local bg3 = colors.dark3 +local bg4 = colors.dark4 + +local fg0 = colors.light0 +local fg1 = colors.light1 +local fg2 = colors.light2 +local fg3 = colors.light3 +local fg4 = colors.light4 + +local red = colors.bright_red +local green = colors.bright_green +local yellow = colors.bright_yellow +local blue = colors.bright_blue +local purple = colors.bright_purple +local aqua = colors.bright_aqua +local orange = colors.bright_orange +local sign_column = bg1 +local gray = colors.gray + +-- global settings +local settings = { + contrast_dark = "medium", + contrart_light = "medium", + bold = true, + italic = true, + undercurl = true, + underline = true, + improved_strings = false, + improved_warnings = false, + invert_signs = false, + invert_selection = true, + invert_tabline = false, + italicize_comments = true, + italicize_strings = false, +} + +local styles = { + italic = "italic", + inverse = "inverse", + bold = "bold", + undercurl = "undercurl", + underline = "underline", +} + +-- 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 + +-- handle light/dark contrast settings +local bg = vim.o.background +local contrast = vim.g["gruvbox_contrast_" .. bg] +if contrast == "hard" then + bg0 = colors[bg .. "0_hard"] +elseif contrast == "soft" then + bg0 = colors[bg .. "0_soft"] +end + +-- swap colors if light mode +if bg == "light" then + bg0 = colors.light0 + bg1 = colors.light1 + bg2 = colors.light2 + bg3 = colors.light3 + bg4 = colors.light4 + fg0 = colors.dark0 + fg1 = colors.dark1 + fg2 = colors.dark2 + fg3 = colors.dark3 + fg4 = colors.dark4 + red = colors.faded_red + green = colors.faded_green + yellow = colors.faded_yellow + blue = colors.faded_blue + purple = colors.faded_purple + aqua = colors.faded_aqua + orange = colors.faded_orange +end + +local hls_cursor = orange +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_cursor] +end + +local hls_highlight = yellow +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_highlight] +end + +local number_column +if vim.g.gruvbox_number_column ~= nil then + number_column = hsl(colors[vim.g.gruvbox_number_column]) +end + +local color_column = bg1 +if vim.g.gruvbox_color_column ~= nil then + color_column = colors[vim.g.gruvbox_color_column] +end + +local vert_split = bg0 +if vim.g.gruvbox_vert_split ~= nil then + vert_split = colors[vim.g.gruvbox_vert_split] +end + +local invert_signs +if vim.g.gruvbox_invert_signs then + invert_signs = styles.inverse +end + +local invert_selection = styles.inverse +if not vim.g.gruvbox_invert_selection then + invert_selection = nil +end + +local invert_tabline +if vim.g.gruvbox_invert_tabline then + invert_tabline = styles.inverse +end + +local tabline_sel = green +if vim.g.gruvbox_tabline_sel then + tabline_sel = colors[vim.g.gruvbox_tabline_sel] +end + +local italic_comments = settings.italic +if not vim.g.gruvbox_italicize_comments then + italic_comments = nil +end + +local italic_strings +if vim.g.gruvbox_italicize_strings then + italic_strings = styles.italic +end + +local special = {fg = hsl(orange), bg = hsl(bg1), gui = italic_strings} +local special_string = {fg = hsl(fg1), bg = hsl(bg1), italic_strings} +if not vim.g.gruvbox_improved_strings then + special = {fg = hsl(orange)} + special_string = {fg = hsl(green), gui = italic_strings} +end + +local theme = lush(function() + return { + -- EndOfBuffer { }, + -- TermCursor { }, + -- TermCursorNC { }, + -- Substitute { }, + -- MsgArea { }, + -- MsgSeparator { }, + -- Whitespace { }, + -- Base groups + ColorColumn {bg = hsl(color_column)}, + Conceal {bg = hsl(blue)}, + Cursor {gui = styles.inverse}, + lCursor {Cursor}, + CursorIM {Cursor}, + CursorColumn {bg = bg1}, + CursorLine {CursorColumn}, + Directory {fg = hsl(green), gui = styles.bold}, + DiffAdd {fg = hsl(green), bg = hsl(bg1), gui = invert_signs}, + DiffChange {fg = hsl(aqua), bg = hsl(bg1), gui = invert_signs}, + DiffDelete {fg = hsl(red), bg = hsl(bg1), gui = invert_signs}, + DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, + ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, + VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, + Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, + FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, + SignColumn {bg = hsl(sign_column)}, + IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, + LineNr {fg = hsl(bg4), bg = number_column}, + CursorLineNr {fg = hsl(yellow), bg = hsl(bg1)}, + MatchParen {bg = hsl(bg3), gui = styles.bold}, + ModeMsg {fg = hsl(yellow), gui = styles.bold}, + MoreMsg {fg = hsl(yellow), gui = styles.bold}, + NonText {fg = hsl(bg2)}, + Normal {fg = hsl(fg1), bg = hsl(bg0)}, + NormalFloat {Normal}, + NormalNC {Normal}, + Pmenu {fg = hsl(fg1), bg = hsl(bg2)}, + PmenuSel {fg = hsl(bg2), bg = hsl(blue), gui = styles.bold}, + PmenuSbar {bg = hsl(bg2)}, + PmenuThumb {bg = hsl(bg4)}, + Question {fg = hsl(orange), gui = styles.bold}, + QuickFixLine {fg = hsl(fg0), bg = hsl(yellow), gui = styles.bold}, + Search {fg = hsl(hls_highlight), bg = hsl(bg0), gui = styles.inverse}, + SpecialKey {fg = hsl(fg4)}, + SpellRare {gui = styles.undercurl, sep = hsl(purple)}, + SpellBad {fg = hsl(red), gui = styles.underline}, + StatusLine {fg = hsl(bg2), bg = hsl(fg1), gui = styles.inverse}, + StatusLineNC {fg = hsl(bg1), bg = hsl(fg4), gui = styles.inverse}, + TabLine {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, + TabLineFill {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, + TabLineSel {fg = hsl(tabline_sel), bg = hsl(bg1), gui = invert_tabline}, + Title {fg = hsl(green), gui = styles.bold}, + Visual {bg = hsl(bg3), gui = invert_selection}, + VisualNOS {bg = hsl(bg3), gui = invert_selection}, + WarningMsg {fg = hsl(red), gui = styles.bold}, + WildMenu {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, + Constant {fg = hsl(purple)}, + String {unpack(special_string)}, + Character {fg = hsl(purple)}, + Number {Character}, + Boolean {Character}, + Float {Character}, + Identifier {fg = hsl(blue)}, + Function {fg = hsl(green), gui = styles.bold}, + Statement {fg = hsl(red)}, + Conditional {fg = hsl(red)}, + Repeat {fg = hsl(red)}, + Label {fg = hsl(red)}, + Keyword {fg = hsl(red)}, + Exception {fg = hsl(red)}, + Operator {fg = hsl(fg1)}, + PreProc {fg = hsl(aqua)}, + Include {fg = hsl(aqua)}, + Define {fg = hsl(aqua)}, + Macro {fg = hsl(aqua)}, + PreCondit {fg = hsl(aqua)}, + Type {fg = hsl(yellow)}, + StorageClass {fg = hsl(orange)}, + Structure {fg = hsl(aqua)}, + Typedef {fg = hsl(yellow)}, + Special {unpack(special)}, + SpecialChar {fg = hsl(red)}, + Tag {fg = hsl(aqua), gui = styles.bold}, + Delimiter {fg = hsl(fg0)}, + SpecialComment {fg = hsl(gray), gui = styles.italic}, + Debug {fg = hsl(red)}, + Underlined {gui = styles.underline}, + Bold {gui = styles.bold}, + Italic {gui = styles.italic}, + Ignore {}, + Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles + Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, + + -- LSP + LspDiagnosticsError {Error}, + LspDiagnosticsErrorSign {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, + LspDiagnosticsErrorFloating {LspDiagnosticsError}, + LspDiagnosticsWarning {fg = hsl(yellow)}, + LspDiagnosticsWarningSign { + LspDiagnosticsWarning, + bg = hsl(sign_column), + gui = styles.undercurl, + sp = hsl(yellow), + }, + LspDiagnosticsWarningFloating {LspDiagnosticsWarning}, + LspDiagnosticsInformation {fg = hsl(blue)}, + LspDiagnosticsInformationSign { + LspDiagnosticsInformation, + bg = hsl(sign_column), + gui = invert_signs, + }, + LspDiagnosticsInformationFloating {LspDiagnosticsInformation}, + LspDiagnosticsHint {fg = hsl(aqua)}, + LspDiagnosticsHintSign { + LspDiagnosticsHint, + bg = hsl(sign_column), + gui = invert_signs, + }, + LspDiagnosticsHintFloating {LspDiagnosticsHint}, + + -- Treesitter + TSNone {}, + TSError {Error}, + TSPunctDelimiter {Delimiter}, + TSPunctBracket {Delimiter}, + TSPunctSpecial {Delimiter}, + TSConstant {Constant}, + TSConstBuiltin {Special}, + TSConstMacro {Define}, + TSString {String}, + TSStringRegex {String}, + TSStringEscape {SpecialChar}, + TSCharacter {Character}, + TSNumber {Number}, + TSBoolean {Boolean}, + TSFloat {Float}, + TSFunction {Function}, + TSFuncBuiltin {Special}, + TSFuncMacro {Macro}, + TSParameter {Identifier}, + TSParameterReference {TSParameter}, + TSMethod {Function}, + TSField {Identifier}, + TSProperty {Identifier}, + TSConstructor {Special}, + TSConditional {Conditional}, + TSRepeat {Repeat}, + TSLabel {Label}, + TSOperator {Operator}, + TSKeyword {Keyword}, + TSKeywordFunction {Keyword}, + TSException {Exception}, + TSType {Type}, + TSTypeBuiltin {Type}, + TSNamespace {Include}, + TSInclude {Include}, + TSAnnotation {PreProc}, + TSText {TSNone}, + TSStrong {gui = styles.bold}, + TSEmphasis {gui = styles.italic}, + TSUnderline {gui = styles.underline}, + TSTitle {Title}, + TSLiteral {String}, + TSURI {Underlined}, + TSVariable {Special}, + TSVariableBuiltin {Special}, + + -- netrw + netrwDir {fg = hsl(aqua)}, + netrwClassify {netrwDir}, + netrwLink {fg = hsl(gray)}, + netrwSymLink {fg = hsl(fg1)}, + netrwExe {fg = hsl(yellow)}, + netrwComment {netrwLink}, + netrwList {fg = hsl(blue)}, + netrwHelpCmd {netrwDir}, + netrwCmdSep {fg = hsl(fg3)}, + netrwVersion {fg = hsl(green)}, + + -- vim-startify + StartifyBracket {fg = hsl(fg3)}, + StartifyFile {fg = hsl(fg1)}, + StartifyNumber {fg = hsl(blue)}, + StartifyPath {fg = hsl(gray)}, + StartifySlash {StartifyPath}, + StartifySection {fg = hsl(yellow)}, + StartifySpecial {fg = hsl(bg2)}, + StartifyHeader {fg = hsl(orange)}, + StartifyFooter {fg = hsl(bg2)}, + + -- vim-signify + SignifySignAdd {fg = hsl(green), bg = hsl(sign_column), gui = invert_signs}, + SignifySignChange {fg = hsl(aqua), bg = hsl(sign_column), gui = invert_signs}, + SignifySignDelete {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, + + -- lua + luaIn {fg = hsl(red)}, + luaFunction {fg = hsl(aqua)}, + luaTable {fg = hsl(orange)}, + + -- golang + goDirective {fg = hsl(aqua)}, + goConstants {fg = hsl(purple)}, + goDeclaration {fg = hsl(red)}, + goDeclType {fg = hsl(blue)}, + goBuiltins {fg = hsl(orange)}, + + -- java + javaAnnotation {fg = hsl(blue)}, + javaDocTags {fg = hsl(aqua)}, + javaCommentTitle {SpecialComment}, + javaParen {fg = hsl(fg3)}, + javaParen1 {fg = hsl(fg3)}, + javaParen2 {fg = hsl(fg3)}, + javaParen3 {fg = hsl(fg3)}, + javaParen4 {fg = hsl(fg3)}, + javaParen5 {fg = hsl(fg3)}, + javaOperator {fg = hsl(orange)}, + + -- xml + xmlTag {fg = hsl(aqua), gui = styles.bold}, + xmlEndTag {fg = hsl(aqua), gui = styles.bold}, + xmlTagName {fg = hsl(blue)}, + xmlEqual {fg = hsl(blue)}, + docbkKeyword {fg = hsl(aqua), gui = styles.bold}, + xmlDocTypeDecl {fg = hsl(gray)}, + xmlDocTypeKeyword {fg = hsl(purple)}, + xmlCdataStart {fg = hsl(gray)}, + xmlCdataCdata {fg = hsl(purple)}, + dtdFunction {fg = hsl(gray)}, + dtdTagName {fg = hsl(purple)}, + xmlAttrib {fg = hsl(orange)}, + xmlProcessingDelim {fg = hsl(gray)}, + dtdParamEntityPunct {fg = hsl(gray)}, + dtdParamEntityDPunct {fg = hsl(gray)}, + xmlAttribPunct {fg = hsl(gray)}, + xmlEntity {fg = hsl(red)}, + xmlEntityPunct {fg = hsl(red)}, + + -- viml + vimNotation {fg = hsl(orange)}, + vimBracket {fg = hsl(orange)}, + vimMapModKey {fg = hsl(orange)}, + vimFuncSID {fg = hsl(fg3)}, + vimSetSep {fg = hsl(fg3)}, + vimSep {fg = hsl(fg3)}, + vimContinue {fg = hsl(fg3)}, + + -- c + cOperator {fg = hsl(purple)}, + cppOperator {fg = hsl(purple)}, + cStructure {fg = hsl(orange)}, + + -- python + pythonBuiltin {fg = hsl(orange)}, + pythonBuiltinObj {fg = hsl(orange)}, + pythonBuiltinFunc {fg = hsl(orange)}, + pythonFunction {fg = hsl(aqua)}, + pythonDecorator {fg = hsl(red)}, + pythonInclude {fg = hsl(blue)}, + pythonImport {fg = hsl(blue)}, + pythonRun {fg = hsl(blue)}, + pythonCoding {fg = hsl(blue)}, + pythonOperator {fg = hsl(red)}, + pythonException {fg = hsl(red)}, + pythonExceptions {fg = hsl(purple)}, + pythonBoolean {fg = hsl(purple)}, + pythonDot {fg = hsl(fg3)}, + pythonConditional {fg = hsl(red)}, + pythonRepeat {fg = hsl(red)}, + pythonDottedName {fg = hsl(green), gui = styles.bold}, + + -- clojure + clojureRegexpCharClass {fg = hsl(fg3), gui = styles.bold}, + clojureKeyword {fg = hsl(blue)}, + clojureCond {fg = hsl(orange)}, + clojureSpecial {fg = hsl(orange)}, + clojureDefine {fg = hsl(orange)}, + + clojureFunc {fg = hsl(yellow)}, + clojureRepeat {fg = hsl(yellow)}, + clojureCharacter {fg = hsl(aqua)}, + clojureStringEscape {fg = hsl(aqua)}, + clojureException {fg = hsl(red)}, + + clojureRegexp {fg = hsl(aqua)}, + clojureRegexpEscape {fg = hsl(aqua)}, + clojureRegexpMod {clojureRegexpCharClass}, + clojureRegexpQuantifier {clojureRegexpCharClass}, + + clojureParen {fg = hsl(fg3)}, + clojureAnonArg {fg = hsl(yellow)}, + clojureVariable {fg = hsl(blue)}, + clojureMacro {fg = hsl(orange)}, + + clojureMeta {fg = hsl(yellow)}, + clojureDeref {fg = hsl(yellow)}, + clojureQuote {fg = hsl(yellow)}, + clojureUnquote {fg = hsl(yellow)}, + + -- html + htmlTag {fg = hsl(aqua), gui = styles.bold}, + htmlEndTag {fg = hsl(aqua), gui = styles.bold}, + htmlTagName {fg = hsl(blue)}, + htmlArg {fg = hsl(orange)}, + htmlScriptTag {fg = hsl(purple)}, + htmlTagN {fg = hsl(fg1)}, + htmlSpecialTagName {fg = hsl(blue)}, + htmlSpecialChar {fg = hsl(red)}, + htmlLink {fg = hsl(fg4), gui = styles.underline}, + htmlBold {fg = hsl(fg1), gui = styles.bold}, + htmlBoldUnderline {fg = hsl(fg1), gui = styles.bold .. "," .. styles.underline}, + htmlBoldItalic {fg = hsl(fg1), gui = styles.bold .. "," .. styles.italic}, + htmlBoldUnderlineItalic { + fg = hsl(fg1), + gui = styles.bold .. "," .. styles.underline .. "," .. styles.italic, + }, + htmlItalic {fg = hsl(fg1), gui = styles.italic}, + + -- special diffs + diffAdded {fg = hsl(green)}, + diffRemoved {fg = hsl(red)}, + diffChanged {fg = hsl(aqua)}, + diffFile {fg = hsl(orange)}, + diffNewFile {fg = hsl(yellow)}, + diffLine {fg = hsl(blue)}, + + -- css + cssBraces {fg = hsl(blue)}, + cssFunctionName {fg = hsl(yellow)}, + cssIdentifier {fg = hsl(orange)}, + cssClassName {fg = hsl(green)}, + cssColor {fg = hsl(blue)}, + cssSelectorOp {fg = hsl(blue)}, + cssSelectorOp2 {fg = hsl(blue)}, + cssImportant {fg = hsl(green)}, + cssVendor {fg = hsl(fg1)}, + cssTextProp {fg = hsl(aqua)}, + cssAnimationProp {fg = hsl(aqua)}, + cssUIProp {fg = hsl(yellow)}, + cssTransformProp {fg = hsl(aqua)}, + cssTransitionProp {fg = hsl(aqua)}, + cssPrintProp {fg = hsl(aqua)}, + cssPositioningProp {fg = hsl(yellow)}, + cssBoxProp {fg = hsl(aqua)}, + cssFontDescriptorProp {fg = hsl(aqua)}, + cssFlexibleBoxProp {fg = hsl(aqua)}, + cssBorderOutlineProp {fg = hsl(aqua)}, + cssBackgroundProp {fg = hsl(aqua)}, + cssMarginProp {fg = hsl(aqua)}, + cssListProp {fg = hsl(aqua)}, + cssTableProp {fg = hsl(aqua)}, + cssFontProp {fg = hsl(aqua)}, + cssPaddingProp {fg = hsl(aqua)}, + cssDimensionProp {fg = hsl(aqua)}, + cssRenderProp {fg = hsl(aqua)}, + cssColorProp {fg = hsl(aqua)}, + cssGeneratedContentProp {fg = hsl(aqua)}, + + -- js + javaScriptBraces {fg = hsl(fg1)}, + javaScriptFunction {fg = hsl(aqua)}, + javaScriptIdentifier {fg = hsl(red)}, + javaScriptMember {fg = hsl(blue)}, + javaScriptNumber {fg = hsl(purple)}, + javaScriptNull {fg = hsl(purple)}, + javaScriptParens {fg = hsl(fg3)}, + javascriptImport {fg = hsl(aqua)}, + javascriptExport {fg = hsl(aqua)}, + javascriptClassKeyword {fg = hsl(aqua)}, + javascriptClassExtends {fg = hsl(aqua)}, + javascriptDefault {fg = hsl(aqua)}, + javascriptClassName {fg = hsl(yellow)}, + javascriptClassSuperName {fg = hsl(yellow)}, + javascriptGlobal {fg = hsl(yellow)}, + javascriptEndColons {fg = hsl(fg1)}, + javascriptFuncArg {fg = hsl(fg1)}, + javascriptGlobalMethod {fg = hsl(fg1)}, + javascriptNodeGlobal {fg = hsl(fg1)}, + javascriptBOMWindowProp {fg = hsl(fg1)}, + javascriptArrayMethod {fg = hsl(fg1)}, + javascriptArrayStaticMethod {fg = hsl(fg1)}, + javascriptCacheMethod {fg = hsl(fg1)}, + javascriptDateMethod {fg = hsl(fg1)}, + javascriptMathStaticMethod {fg = hsl(fg1)}, + javascriptProp {fg = hsl(fg1)}, + javascriptURLUtilsProp {fg = hsl(fg1)}, + javascriptBOMNavigatorProp {fg = hsl(fg1)}, + javascriptDOMDocMethod {fg = hsl(fg1)}, + javascriptDOMDocProp {fg = hsl(fg1)}, + javascriptBOMLocationMethod {fg = hsl(fg1)}, + javascriptBOMWindowMethod {fg = hsl(fg1)}, + javascriptStringMethod {fg = hsl(fg1)}, + javascriptVariable {fg = hsl(orange)}, + javascriptClassSuper {fg = hsl(orange)}, + javascriptFuncKeyword {fg = hsl(aqua)}, + javascriptAsyncFunc {fg = hsl(aqua)}, + javascriptClassStatic {fg = hsl(orange)}, + javascriptOperator {fg = hsl(red)}, + javascriptForOperator {fg = hsl(red)}, + javascriptYield {fg = hsl(red)}, + javascriptExceptions {fg = hsl(red)}, + javascriptMessage {fg = hsl(red)}, + javascriptTemplateSB {fg = hsl(aqua)}, + javascriptTemplateSubstitution {fg = hsl(fg1)}, + javascriptLabel {fg = hsl(fg1)}, + javascriptObjectLabel {fg = hsl(fg1)}, + javascriptPropertyName {fg = hsl(fg1)}, + javascriptLogicSymbols {fg = hsl(fg1)}, + javascriptArrowFunc {fg = hsl(yellow)}, + javascriptDocParamName {fg = hsl(fg4)}, + javascriptDocTags {fg = hsl(fg4)}, + javascriptDocNotation {fg = hsl(fg4)}, + javascriptDocParamType {fg = hsl(fg4)}, + javascriptDocNamedParamType {fg = hsl(fg4)}, + javascriptBrackets {fg = hsl(fg1)}, + javascriptDOMElemAttrs {fg = hsl(fg1)}, + javascriptDOMEventMethod {fg = hsl(fg1)}, + javascriptDOMNodeMethod {fg = hsl(fg1)}, + javascriptDOMStorageMethod {fg = hsl(fg1)}, + javascriptHeadersMethod {fg = hsl(fg1)}, + javascriptAsyncFuncKeyword {fg = hsl(red)}, + javascriptAwaitFuncKeyword {fg = hsl(red)}, + jsClassKeyword {fg = hsl(aqua)}, + jsExtendsKeyword {fg = hsl(aqua)}, + jsExportDefault {fg = hsl(aqua)}, + jsTemplateBraces {fg = hsl(aqua)}, + jsGlobalNodeObjects {fg = hsl(blue)}, + jsGlobalObjects {fg = hsl(blue)}, + jsObjectKey {fg = hsl(green), gui = styles.bold}, + jsFunction {fg = hsl(aqua)}, + jsFuncCall {fg = hsl(blue)}, + jsFuncParens {fg = hsl(fg3)}, + jsParens {fg = hsl(fg3)}, + jsNull {fg = hsl(purple)}, + jsUndefined {fg = hsl(purple)}, + jsClassDefinition {fg = hsl(yellow)}, + jsOperatorKeyword {fg = hsl(red)}, + + -- typescript + typescriptReserved {fg = hsl(aqua)}, + typescriptLabel {fg = hsl(aqua)}, + typescriptFuncKeyword {fg = hsl(aqua)}, + typescriptIdentifier {fg = hsl(orange)}, + typescriptBraces {fg = hsl(fg1)}, + typescriptEndColons {fg = hsl(fg1)}, + typescriptDOMObjects {fg = hsl(fg1)}, + typescriptAjaxMethods {fg = hsl(fg1)}, + typescriptLogicSymbols {fg = hsl(fg1)}, + typescriptDocSeeTag {SpecialComment}, + typescriptDocParam {SpecialComment}, + typescriptDocTags {SpecialComment}, + typescriptGlobalObjects {fg = hsl(fg1)}, + typescriptParens {fg = hsl(fg3)}, + typescriptOpSymbols {fg = hsl(fg3)}, + typescriptHtmlElemProperties {fg = hsl(fg1)}, + typescriptNull {fg = hsl(purple)}, + typescriptInterpolationDelimiter {fg = hsl(aqua)}, + + -- jsx + jsxTagName {fg = hsl(aqua)}, + jsxComponentName {fg = hsl(green)}, + jsxCloseString {fg = hsl(fg4)}, + jsxAttrib {fg = hsl(yellow)}, + jsxEqual {fg = hsl(aqua)}, + + -- purescript + purescriptModuleKeyword {fg = hsl(aqua)}, + purescriptModuleName {fg = hsl(fg1)}, + purescriptWhere {fg = hsl(aqua)}, + purescriptDelimiter {fg = hsl(fg4)}, + purescriptType {fg = hsl(fg1)}, + purescriptImportKeyword {fg = hsl(aqua)}, + purescriptHidingKeyword {fg = hsl(aqua)}, + purescriptAsKeyword {fg = hsl(aqua)}, + purescriptStructure {fg = hsl(aqua)}, + purescriptOperator {fg = hsl(blue)}, + purescriptTypeVar {fg = hsl(fg1)}, + purescriptConstructor {fg = hsl(fg1)}, + purescriptFunction {fg = hsl(fg1)}, + purescriptConditional {fg = hsl(orange)}, + purescriptBacktick {fg = hsl(orange)}, + + -- coffeescript + coffeeExtendedOp {fg = hsl(fg3)}, + coffeeSpecialOp {fg = hsl(fg3)}, + coffeeCurly {fg = hsl(orange)}, + coffeeParen {fg = hsl(fg3)}, + coffeeBracket {fg = hsl(orange)}, + + -- ruby + rubyStringDelimiter {fg = hsl(green)}, + rubyInterpolationDelimiter {fg = hsl(aqua)}, + + -- obj-c + objcTypeModifier {fg = hsl(red)}, + objcDirective {fg = hsl(blue)}, + + -- moonscript + moonSpecialOp {fg = hsl(fg3)}, + moonExtendedOp {fg = hsl(fg3)}, + moonFunction {fg = hsl(fg3)}, + moonObject {fg = hsl(yellow)}, + + -- elixir + elixirDocString {SpecialComment}, + elixirStringDelimiter {fg = hsl(green)}, + elixirInterpolationDelimiter {fg = hsl(aqua)}, + elixirModuleDeclaration {fg = hsl(yellow)}, + + -- scala + scalaNameDefinition {fg = hsl(fg1)}, + scalaCaseFollowing {fg = hsl(fg1)}, + scalaCapitalWord {fg = hsl(fg1)}, + scalaTypeExtension {fg = hsl(fg1)}, + scalaKeyword {fg = hsl(red)}, + scalaKeywordModifier {fg = hsl(red)}, + scalaSpecial {fg = hsl(aqua)}, + scalaOperator {fg = hsl(fg1)}, + scalaTypeDeclaration {fg = hsl(yellow)}, + scalaTypeTypePostDeclaration {fg = hsl(yellow)}, + scalaInstanceDeclaration {fg = hsl(fg1)}, + scalaInterpolation {fg = hsl(aqua)}, + + -- markdown + markdownItalic {fg = hsl(fg3), gui = styles.italic}, + markdownH1 {fg = hsl(green), gui = styles.bold}, + markdownH2 {markdownH1}, + markdownH3 {fg = hsl(yellow), gui = styles.bold}, + markdownH4 {markdownH3}, + markdownH5 {fg = hsl(yellow)}, + markdownH6 {markdownH5}, + markdownCode {fg = hsl(aqua)}, + markdownCodeBlock {fg = hsl(aqua)}, + markdownCodeDelimiter {fg = hsl(aqua)}, + markdownBlockquote {fg = hsl(gray)}, + markdownListMarker {fg = hsl(gray)}, + markdownOrderedListMarker {fg = hsl(gray)}, + markdownRule {fg = hsl(gray)}, + markdownHeadingRule {fg = hsl(gray)}, + markdownUrlDelimiter {fg = hsl(fg3)}, + markdownLinkDelimiter {fg = hsl(fg3)}, + markdownLinkTextDelimiter {fg = hsl(fg3)}, + markdownHeadingDelimiter {fg = hsl(orange)}, + markdownUrl {fg = hsl(purple)}, + markdownUrlTitleDelimiter {fg = hsl(green)}, + markdownLinkText {fg = hsl(gray), gui = styles.underline}, + markdownIdDeclaration {markdownLinkText}, + + -- haskell + haskellType {fg = hsl(blue)}, + haskellIdentifier {fg = hsl(aqua)}, + haskellSeparator {fg = hsl(fg4)}, + haskellDelimiter {fg = hsl(orange)}, + haskellOperators {fg = hsl(purple)}, + haskellBacktick {fg = hsl(orange)}, + haskellStatement {fg = hsl(purple)}, + haskellConditional {fg = hsl(purple)}, + haskellLet {fg = hsl(red)}, + haskellDefault {fg = hsl(red)}, + haskellWhere {fg = hsl(red)}, + haskellBottom {fg = hsl(red), gui = styles.bold}, + haskellImportKeywords {fg = hsl(purple), gui = styles.bold}, + haskellDeclKeyword {fg = hsl(orange)}, + haskellDecl {fg = hsl(orange)}, + haskellDeriving {fg = hsl(purple)}, + haskellAssocType {fg = hsl(aqua)}, + haskellNumber {fg = hsl(aqua)}, + haskellPragma {fg = hsl(red), gui = styles.bold}, + haskellTH {fg = hsl(aqua), gui = styles.bold}, + haskellForeignKeywords {fg = hsl(green)}, + haskellKeyword {fg = hsl(red)}, + haskellFloat {fg = hsl(aqua)}, + haskellInfix {fg = hsl(purple)}, + haskellQuote {fg = hsl(green), gui = styles.bold}, + haskellShebang {fg = hsl(yellow), gui = styles.bold}, + haskellLiquid {fg = hsl(purple), gui = styles.bold}, + haskellQuasiQuoted {fg = hsl(blue), gui = styles.bold}, + haskellRecursiveDo {fg = hsl(purple)}, + haskellQuotedType {fg = hsl(red)}, + haskellPreProc {fg = hsl(fg4)}, + haskellTypeRoles {fg = hsl(red), gui = styles.bold}, + haskellTypeForall {fg = hsl(red)}, + haskellPatternKeyword {fg = hsl(blue)}, + + -- json + jsonKeyword {fg = hsl(green)}, + jsonQuote {fg = hsl(green)}, + jsonBraces {fg = hsl(fg1)}, + jsonString {fg = hsl(fg1)}, + + -- mail.vim + mailQuoted1 {fg = hsl(aqua)}, + mailQuoted2 {fg = hsl(purple)}, + mailQuoted3 {fg = hsl(yellow)}, + mailQuoted4 {fg = hsl(green)}, + mailQuoted5 {fg = hsl(red)}, + mailQuoted6 {fg = hsl(orange)}, + mailSignature {SpecialComment}, + + -- csharp + csBraces {fg = hsl(fg1)}, + csEndColon {fg = hsl(fg1)}, + csLogicSymbols {fg = hsl(fg1)}, + csParens {fg = hsl(fg3)}, + csOpSymbols {fg = hsl(fg3)}, + csInterpolationDelimiter {fg = hsl(fg3)}, + csInterpolationAlignDel {fg = hsl(aqua), gui = styles.bold}, + csInterpolationFormat {fg = hsl(aqua)}, + csInterpolationFormatDel {fg = hsl(aqua), gui = styles.bold}, + + -- rust + rustSigil {fg = hsl(orange)}, + rustEscape {fg = hsl(aqua)}, + rustStringContinuation {fg = hsl(aqua)}, + rustEnum {fg = hsl(aqua)}, + rustStructure {fg = hsl(aqua)}, + rustModPathSep {fg = hsl(fg2)}, + rustCommentLineDoc {SpecialComment}, + rustDefault {fg = hsl(aqua)}, + + -- ocaml + ocamlOperator {fg = hsl(fg1)}, + ocamlKeyChar {fg = hsl(orange)}, + ocamlArrow {fg = hsl(orange)}, + ocamlInfixOpKeyword {fg = hsl(red)}, + ocamlConstructor {fg = hsl(orange)}, + + -- coc.nvim + CocErrorSign {fg = hsl(red), bg = hsl(sign_column)}, + CocWarningSign {fg = hsl(orange), bg = hsl(sign_column)}, + CocInfoSign {fg = hsl(blue), bg = hsl(sign_column)}, + CocHintSign {fg = hsl(aqua), bg = hsl(sign_column)}, + CocErrorFloat {fg = hsl(red)}, + CocWarningFloat {fg = hsl(orange)}, + CocInfoFloat {fg = hsl(blue)}, + CocHintFloat {fg = hsl(aqua)}, + CocDiagnosticsError {fg = hsl(red)}, + CocDiagnosticsWarning {fg = hsl(orange)}, + CocDiagnosticsInfo {fg = hsl(blue)}, + CocDiagnosticsHint {fg = hsl(aqua)}, + CocSelectedText {fg = hsl(red)}, + CocCodeLens {fg = hsl(gray)}, + CocErrorHighlight {fg = hsl(red), gui = styles.underline}, + CocWarningHighlight {fg = hsl(orange), gui = styles.underline}, + CocInfoHighlight {fg = hsl(blue), gui = styles.underline}, + CocHintHighlight {fg = hsl(aqua), gui = styles.underline}, + + -- nerdtree + NERDTreeDir {fg = hsl(aqua)}, + NERDTreeDirSlash {fg = hsl(aqua)}, + NERDTreeOpenable {fg = hsl(orange)}, + NERDTreeClosable {fg = hsl(orange)}, + NERDTreeFile {fg = hsl(fg1)}, + NERDTreeExecFile {fg = hsl(yellow)}, + NERDTreeUp {fg = hsl(gray)}, + NERDTreeCWD {fg = hsl(green)}, + NERDTreeHelp {fg = hsl(fg1)}, + NERDTreeToggleOn {fg = hsl(green)}, + NERDTreeToggleOff {fg = hsl(red)}, + + -- vim dirvish + DirvishPathTail {fg = hsl(aqua)}, + DirvishArg {fg = hsl(yellow)}, + + -- ale.vim + ALEError {fg = hsl(red), gui = styles.underline}, + ALEWarning {fg = hsl(yellow), gui = styles.underline}, + ALEInfo {fg = hsl(blue), gui = styles.underline}, + ALEErrorSign {fg = hsl(red), bg = hsl(sign_column)}, + ALEWarningSign {fg = hsl(yellow), bg = hsl(sign_column)}, + ALEInfoSign {fg = hsl(blue), bg = hsl(sign_column)}, + ALEVirtualTextError {fg = hsl(red)}, + ALEVirtualTextWarning {fg = hsl(yellow)}, + ALEVirtualTextInfo {fg = hsl(blue)}, + + -- BufTabLine + BufTabLineCurrent {fg = hsl(bg0), bg = hsl(fg4)}, + BufTabLineActive {fg = hsl(fg4), bg = hsl(bg2)}, + BufTabLineHidden {fg = hsl(bg4), bg = hsl(bg1)}, + BufTabLineFill {fg = hsl(bg0), bg = hsl(bg0)}, + + -- fzf + Fzf1 {fg = hsl(blue), bg = hsl(bg1)}, + Fzf2 {fg = hsl(orange), bg = hsl(bg1)}, + Fzf3 {fg = hsl(fg4), bg = hsl(bg1)}, + + -- ctrlP + CtrlPMatch {fg = hsl(yellow)}, + CtrlPNoEntries {fg = hsl(red)}, + CtrlPPrtBase {fg = hsl(bg2)}, + CtrlPPrtCursor {fg = hsl(blue)}, + CtrlPLinePre {fg = hsl(bg2)}, + CtrlPMode1 {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, + CtrlPMode2 {fg = hsl(bg0), bg = hsl(blue), gui = styles.bold}, + CtrlPStats {fg = hsl(fg4), bg = hsl(bg2), gui = styles.bold}, + + -- showmarks + ShowMarksHLl {fg = hsl(blue), bg = hsl(sign_column)}, + ShowMarksHLu {fg = hsl(blue), bg = hsl(sign_column)}, + ShowMarksHLo {fg = hsl(blue), bg = hsl(sign_column)}, + ShowMarksHLm {fg = hsl(blue), bg = hsl(sign_column)}, + + -- signature + SignatureMarkText {fg = hsl(blue), bg = hsl(sign_column)}, + SignatureMarkerText {fg = hsl(purple), bg = hsl(sign_column)}, + + -- gitgutter + GitGutterAdd {fg = hsl(green), bg = hsl(sign_column)}, + GitGutterChange {fg = hsl(aqua), bg = hsl(sign_column)}, + GitGutterDelete {fg = hsl(red), bg = hsl(sign_column)}, + GitGutterChangeDelete {fg = hsl(aqua), bg = hsl(sign_column)}, + + -- gitcommit + gitcommitSelectedFile {fg = hsl(green)}, + gitcommitDiscardedFile {fg = hsl(red)}, + } +end) + +return theme -- cgit v1.2.3 From 28c9ba74e7ad7794d0ff12c7f5c158a6775d9e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Wed, 24 Feb 2021 01:20:28 -0300 Subject: changed gruvbox lua module namespace --- README.md | 6 +- colors/gruvbox.vim | 7 +- lua/gruvbox/init.lua | 948 +++++++++++++++++++++++++++++++++++++++++++++++++++ lua/theme/init.lua | 910 ------------------------------------------------ 4 files changed, 954 insertions(+), 917 deletions(-) create mode 100644 lua/gruvbox/init.lua delete mode 100644 lua/theme/init.lua diff --git a/README.md b/README.md index fee2cf7..35e3645 100644 --- a/README.md +++ b/README.md @@ -24,13 +24,13 @@ use {"npxbr/gruvbox.nvim", requires = {"rktjmp/lush.nvim"}} Inside `init.vim` ```vimscript -set background=dark +set background=dark " or light if you want light mode set colorscheme=gruvbox ``` ```lua -vim.o.background = "dark" -vim.o.colorscheme = "gruvbox" +vim.o.background = "dark" -- or "light" for light mode +vim.cmd([[ colorscheme gruvbox]]) ``` # Configuration diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim index b052493..6b3a644 100644 --- a/colors/gruvbox.vim +++ b/colors/gruvbox.vim @@ -1,5 +1,4 @@ -set background=dark -let g:colors_name="gruvbox" +" let g:colors_name="gruvbox" " reloading colors -lua package.loaded["gruvbox.theme"] = nil -lua require("lush")(require("gruvbox.theme")) +lua package.loaded["gruvbox"] = nil +lua require("lush")(require("gruvbox")) diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua new file mode 100644 index 0000000..8259aa6 --- /dev/null +++ b/lua/gruvbox/init.lua @@ -0,0 +1,948 @@ +local lush = require("lush") +local hsl = lush.hsl +-- gruvbox palette +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", +} +-- options (dark mode by default) +local bg0 = colors.dark0 +local bg1 = colors.dark1 +local bg2 = colors.dark2 +local bg3 = colors.dark3 +local bg4 = colors.dark4 + +local fg0 = colors.light0 +local fg1 = colors.light1 +local fg2 = colors.light2 +local fg3 = colors.light3 +local fg4 = colors.light4 + +local red = colors.bright_red +local green = colors.bright_green +local yellow = colors.bright_yellow +local blue = colors.bright_blue +local purple = colors.bright_purple +local aqua = colors.bright_aqua +local orange = colors.bright_orange +local sign_column = bg1 +local gray = colors.gray + +-- global settings +local settings = { + contrast_dark = "medium", + contrart_light = "medium", + bold = true, + italic = true, + undercurl = true, + underline = true, + improved_strings = false, + improved_warnings = false, + invert_signs = false, + invert_selection = true, + invert_tabline = false, + italicize_comments = true, + italicize_strings = false, +} + +local styles = { + italic = "italic", + inverse = "inverse", + bold = "bold", + undercurl = "undercurl", + underline = "underline", +} + +-- 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 + +-- set colors_name var +vim.g.colors_name = "gruvbox" + +-- handle light/dark contrast settings +local bg = vim.o.background +if bg == nil then + bg = "dark" + vim.o.background = bg +end + +local contrast = vim.g["gruvbox_contrast_" .. bg] +if contrast == "hard" then + bg0 = colors[bg .. "0_hard"] +elseif contrast == "soft" then + bg0 = colors[bg .. "0_soft"] +end + +-- swap colors if light mode +if bg == "light" then + bg0 = colors.light0 + bg1 = colors.light1 + bg2 = colors.light2 + bg3 = colors.light3 + bg4 = colors.light4 + fg0 = colors.dark0 + fg1 = colors.dark1 + fg2 = colors.dark2 + fg3 = colors.dark3 + fg4 = colors.dark4 + red = colors.faded_red + green = colors.faded_green + yellow = colors.faded_yellow + blue = colors.faded_blue + purple = colors.faded_purple + aqua = colors.faded_aqua + orange = colors.faded_orange +end + +local hls_cursor = orange +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_cursor] +end + +local hls_highlight = yellow +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_highlight] +end + +local number_column +if vim.g.gruvbox_number_column ~= nil then + number_column = hsl(colors[vim.g.gruvbox_number_column]) +end + +local color_column = bg1 +if vim.g.gruvbox_color_column ~= nil then + color_column = colors[vim.g.gruvbox_color_column] +end + +local vert_split = bg0 +if vim.g.gruvbox_vert_split ~= nil then + vert_split = colors[vim.g.gruvbox_vert_split] +end + +local invert_signs +if vim.g.gruvbox_invert_signs then + invert_signs = styles.inverse +end + +local invert_selection = styles.inverse +if not vim.g.gruvbox_invert_selection then + invert_selection = nil +end + +local invert_tabline +if vim.g.gruvbox_invert_tabline then + invert_tabline = styles.inverse +end + +local tabline_sel = green +if vim.g.gruvbox_tabline_sel then + tabline_sel = colors[vim.g.gruvbox_tabline_sel] +end + +local italic_comments = settings.italic +if not vim.g.gruvbox_italicize_comments then + italic_comments = nil +end + +local italic_strings +if vim.g.gruvbox_italicize_strings then + italic_strings = styles.italic +end + +local special = {fg = hsl(orange), bg = hsl(bg1), gui = italic_strings} +local special_string = {fg = hsl(fg1), bg = hsl(bg1), italic_strings} +if not vim.g.gruvbox_improved_strings then + special = {fg = hsl(orange)} + special_string = {fg = hsl(green), gui = italic_strings} +end + +--[[ + let g:terminal_color_0 = s:gb.bg0[0] + let g:terminal_color_8 = s:gb.gray[0] + + let g:terminal_color_1 = s:gb.neutral_red[0] + let g:terminal_color_9 = s:gb.red[0] + + let g:terminal_color_2 = s:gb.neutral_green[0] + let g:terminal_color_10 = s:gb.green[0] + + let g:terminal_color_3 = s:gb.neutral_yellow[0] + let g:terminal_color_11 = s:gb.yellow[0] + + let g:terminal_color_4 = s:gb.neutral_blue[0] + let g:terminal_color_12 = s:gb.blue[0] + + let g:terminal_color_5 = s:gb.neutral_purple[0] + let g:terminal_color_13 = s:gb.purple[0] + + let g:terminal_color_6 = s:gb.neutral_aqua[0] + let g:terminal_color_14 = s:gb.aqua[0] + + let g:terminal_color_7 = s:gb.fg4[0] + let g:terminal_color_15 = s:gb.fg1[0] + ]] + +vim.g.terminal_color_0 = hsl(bg0) +vim.g.terminal_color_8 = hsl(gray) +vim.g.terminal_color_1 = hsl(colors.neutral_red) + +local theme = lush(function() + return { + -- EndOfBuffer { }, + -- TermCursor { }, + -- TermCursorNC { }, + -- Substitute { }, + -- MsgArea { }, + -- MsgSeparator { }, + -- Whitespace { }, + -- Base groups + ColorColumn {bg = hsl(color_column)}, + Conceal {bg = hsl(blue)}, + Cursor {gui = styles.inverse}, + lCursor {Cursor}, + CursorIM {Cursor}, + CursorColumn {bg = bg1}, + CursorLine {CursorColumn}, + Directory {fg = hsl(green), gui = styles.bold}, + DiffAdd {fg = hsl(green), bg = hsl(bg1), gui = invert_signs}, + DiffChange {fg = hsl(aqua), bg = hsl(bg1), gui = invert_signs}, + DiffDelete {fg = hsl(red), bg = hsl(bg1), gui = invert_signs}, + DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, + ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, + VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, + Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, + FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, + SignColumn {bg = hsl(sign_column)}, + IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, + LineNr {fg = hsl(bg4), bg = number_column}, + CursorLineNr {fg = hsl(yellow), bg = hsl(bg1)}, + MatchParen {bg = hsl(bg3), gui = styles.bold}, + ModeMsg {fg = hsl(yellow), gui = styles.bold}, + MoreMsg {fg = hsl(yellow), gui = styles.bold}, + NonText {fg = hsl(bg2)}, + Normal {fg = hsl(fg1), bg = hsl(bg0)}, + NormalFloat {Normal}, + NormalNC {Normal}, + Pmenu {fg = hsl(fg1), bg = hsl(bg2)}, + PmenuSel {fg = hsl(bg2), bg = hsl(blue), gui = styles.bold}, + PmenuSbar {bg = hsl(bg2)}, + PmenuThumb {bg = hsl(bg4)}, + Question {fg = hsl(orange), gui = styles.bold}, + QuickFixLine {fg = hsl(fg0), bg = hsl(yellow), gui = styles.bold}, + Search {fg = hsl(hls_highlight), bg = hsl(bg0), gui = styles.inverse}, + SpecialKey {fg = hsl(fg4)}, + SpellRare {gui = styles.undercurl, sep = hsl(purple)}, + SpellBad {fg = hsl(red), gui = styles.underline}, + StatusLine {fg = hsl(bg2), bg = hsl(fg1), gui = styles.inverse}, + StatusLineNC {fg = hsl(bg1), bg = hsl(fg4), gui = styles.inverse}, + TabLine {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, + TabLineFill {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, + TabLineSel {fg = hsl(tabline_sel), bg = hsl(bg1), gui = invert_tabline}, + Title {fg = hsl(green), gui = styles.bold}, + Visual {bg = hsl(bg3), gui = invert_selection}, + VisualNOS {bg = hsl(bg3), gui = invert_selection}, + WarningMsg {fg = hsl(red), gui = styles.bold}, + WildMenu {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, + Constant {fg = hsl(purple)}, + String {unpack(special_string)}, + Character {fg = hsl(purple)}, + Number {Character}, + Boolean {Character}, + Float {Character}, + Identifier {fg = hsl(blue)}, + Function {fg = hsl(green), gui = styles.bold}, + Statement {fg = hsl(red)}, + Conditional {fg = hsl(red)}, + Repeat {fg = hsl(red)}, + Label {fg = hsl(red)}, + Keyword {fg = hsl(red)}, + Exception {fg = hsl(red)}, + Operator {fg = hsl(fg1)}, + PreProc {fg = hsl(aqua)}, + Include {fg = hsl(aqua)}, + Define {fg = hsl(aqua)}, + Macro {fg = hsl(aqua)}, + PreCondit {fg = hsl(aqua)}, + Type {fg = hsl(yellow)}, + StorageClass {fg = hsl(orange)}, + Structure {fg = hsl(aqua)}, + Typedef {fg = hsl(yellow)}, + Special {unpack(special)}, + SpecialChar {fg = hsl(red)}, + Tag {fg = hsl(aqua), gui = styles.bold}, + Delimiter {fg = hsl(fg0)}, + SpecialComment {fg = hsl(gray), gui = styles.italic}, + Debug {fg = hsl(red)}, + Underlined {gui = styles.underline}, + Bold {gui = styles.bold}, + Italic {gui = styles.italic}, + Ignore {}, + Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles + Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, + + -- LSP + LspDiagnosticsError {Error}, + LspDiagnosticsErrorSign {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, + LspDiagnosticsErrorFloating {LspDiagnosticsError}, + LspDiagnosticsWarning {fg = hsl(yellow)}, + LspDiagnosticsWarningSign { + LspDiagnosticsWarning, + bg = hsl(sign_column), + gui = styles.undercurl, + sp = hsl(yellow), + }, + LspDiagnosticsWarningFloating {LspDiagnosticsWarning}, + LspDiagnosticsInformation {fg = hsl(blue)}, + LspDiagnosticsInformationSign { + LspDiagnosticsInformation, + bg = hsl(sign_column), + gui = invert_signs, + }, + LspDiagnosticsInformationFloating {LspDiagnosticsInformation}, + LspDiagnosticsHint {fg = hsl(aqua)}, + LspDiagnosticsHintSign { + LspDiagnosticsHint, + bg = hsl(sign_column), + gui = invert_signs, + }, + LspDiagnosticsHintFloating {LspDiagnosticsHint}, + + -- Treesitter + TSNone {}, + TSError {Error}, + TSPunctDelimiter {Delimiter}, + TSPunctBracket {Delimiter}, + TSPunctSpecial {Delimiter}, + TSConstant {Constant}, + TSConstBuiltin {Special}, + TSConstMacro {Define}, + TSString {String}, + TSStringRegex {String}, + TSStringEscape {SpecialChar}, + TSCharacter {Character}, + TSNumber {Number}, + TSBoolean {Boolean}, + TSFloat {Float}, + TSFunction {Function}, + TSFuncBuiltin {Special}, + TSFuncMacro {Macro}, + TSParameter {Identifier}, + TSParameterReference {TSParameter}, + TSMethod {Function}, + TSField {Identifier}, + TSProperty {Identifier}, + TSConstructor {Special}, + TSConditional {Conditional}, + TSRepeat {Repeat}, + TSLabel {Label}, + TSOperator {Operator}, + TSKeyword {Keyword}, + TSKeywordFunction {Keyword}, + TSException {Exception}, + TSType {Type}, + TSTypeBuiltin {Type}, + TSNamespace {Include}, + TSInclude {Include}, + TSAnnotation {PreProc}, + TSText {TSNone}, + TSStrong {gui = styles.bold}, + TSEmphasis {gui = styles.italic}, + TSUnderline {gui = styles.underline}, + TSTitle {Title}, + TSLiteral {String}, + TSURI {Underlined}, + TSVariable {Special}, + TSVariableBuiltin {Special}, + + -- netrw + netrwDir {fg = hsl(aqua)}, + netrwClassify {netrwDir}, + netrwLink {fg = hsl(gray)}, + netrwSymLink {fg = hsl(fg1)}, + netrwExe {fg = hsl(yellow)}, + netrwComment {netrwLink}, + netrwList {fg = hsl(blue)}, + netrwHelpCmd {netrwDir}, + netrwCmdSep {fg = hsl(fg3)}, + netrwVersion {fg = hsl(green)}, + + -- vim-startify + StartifyBracket {fg = hsl(fg3)}, + StartifyFile {fg = hsl(fg1)}, + StartifyNumber {fg = hsl(blue)}, + StartifyPath {fg = hsl(gray)}, + StartifySlash {StartifyPath}, + StartifySection {fg = hsl(yellow)}, + StartifySpecial {fg = hsl(bg2)}, + StartifyHeader {fg = hsl(orange)}, + StartifyFooter {fg = hsl(bg2)}, + + -- vim-signify + SignifySignAdd {fg = hsl(green), bg = hsl(sign_column), gui = invert_signs}, + SignifySignChange {fg = hsl(aqua), bg = hsl(sign_column), gui = invert_signs}, + SignifySignDelete {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, + + -- lua + luaIn {fg = hsl(red)}, + luaFunction {fg = hsl(aqua)}, + luaTable {fg = hsl(orange)}, + + -- golang + goDirective {fg = hsl(aqua)}, + goConstants {fg = hsl(purple)}, + goDeclaration {fg = hsl(red)}, + goDeclType {fg = hsl(blue)}, + goBuiltins {fg = hsl(orange)}, + + -- java + javaAnnotation {fg = hsl(blue)}, + javaDocTags {fg = hsl(aqua)}, + javaCommentTitle {SpecialComment}, + javaParen {fg = hsl(fg3)}, + javaParen1 {fg = hsl(fg3)}, + javaParen2 {fg = hsl(fg3)}, + javaParen3 {fg = hsl(fg3)}, + javaParen4 {fg = hsl(fg3)}, + javaParen5 {fg = hsl(fg3)}, + javaOperator {fg = hsl(orange)}, + + -- xml + xmlTag {fg = hsl(aqua), gui = styles.bold}, + xmlEndTag {fg = hsl(aqua), gui = styles.bold}, + xmlTagName {fg = hsl(blue)}, + xmlEqual {fg = hsl(blue)}, + docbkKeyword {fg = hsl(aqua), gui = styles.bold}, + xmlDocTypeDecl {fg = hsl(gray)}, + xmlDocTypeKeyword {fg = hsl(purple)}, + xmlCdataStart {fg = hsl(gray)}, + xmlCdataCdata {fg = hsl(purple)}, + dtdFunction {fg = hsl(gray)}, + dtdTagName {fg = hsl(purple)}, + xmlAttrib {fg = hsl(orange)}, + xmlProcessingDelim {fg = hsl(gray)}, + dtdParamEntityPunct {fg = hsl(gray)}, + dtdParamEntityDPunct {fg = hsl(gray)}, + xmlAttribPunct {fg = hsl(gray)}, + xmlEntity {fg = hsl(red)}, + xmlEntityPunct {fg = hsl(red)}, + + -- viml + vimNotation {fg = hsl(orange)}, + vimBracket {fg = hsl(orange)}, + vimMapModKey {fg = hsl(orange)}, + vimFuncSID {fg = hsl(fg3)}, + vimSetSep {fg = hsl(fg3)}, + vimSep {fg = hsl(fg3)}, + vimContinue {fg = hsl(fg3)}, + + -- c + cOperator {fg = hsl(purple)}, + cppOperator {fg = hsl(purple)}, + cStructure {fg = hsl(orange)}, + + -- python + pythonBuiltin {fg = hsl(orange)}, + pythonBuiltinObj {fg = hsl(orange)}, + pythonBuiltinFunc {fg = hsl(orange)}, + pythonFunction {fg = hsl(aqua)}, + pythonDecorator {fg = hsl(red)}, + pythonInclude {fg = hsl(blue)}, + pythonImport {fg = hsl(blue)}, + pythonRun {fg = hsl(blue)}, + pythonCoding {fg = hsl(blue)}, + pythonOperator {fg = hsl(red)}, + pythonException {fg = hsl(red)}, + pythonExceptions {fg = hsl(purple)}, + pythonBoolean {fg = hsl(purple)}, + pythonDot {fg = hsl(fg3)}, + pythonConditional {fg = hsl(red)}, + pythonRepeat {fg = hsl(red)}, + pythonDottedName {fg = hsl(green), gui = styles.bold}, + + -- clojure + clojureRegexpCharClass {fg = hsl(fg3), gui = styles.bold}, + clojureKeyword {fg = hsl(blue)}, + clojureCond {fg = hsl(orange)}, + clojureSpecial {fg = hsl(orange)}, + clojureDefine {fg = hsl(orange)}, + + clojureFunc {fg = hsl(yellow)}, + clojureRepeat {fg = hsl(yellow)}, + clojureCharacter {fg = hsl(aqua)}, + clojureStringEscape {fg = hsl(aqua)}, + clojureException {fg = hsl(red)}, + + clojureRegexp {fg = hsl(aqua)}, + clojureRegexpEscape {fg = hsl(aqua)}, + clojureRegexpMod {clojureRegexpCharClass}, + clojureRegexpQuantifier {clojureRegexpCharClass}, + + clojureParen {fg = hsl(fg3)}, + clojureAnonArg {fg = hsl(yellow)}, + clojureVariable {fg = hsl(blue)}, + clojureMacro {fg = hsl(orange)}, + + clojureMeta {fg = hsl(yellow)}, + clojureDeref {fg = hsl(yellow)}, + clojureQuote {fg = hsl(yellow)}, + clojureUnquote {fg = hsl(yellow)}, + + -- html + htmlTag {fg = hsl(aqua), gui = styles.bold}, + htmlEndTag {fg = hsl(aqua), gui = styles.bold}, + htmlTagName {fg = hsl(blue)}, + htmlArg {fg = hsl(orange)}, + htmlScriptTag {fg = hsl(purple)}, + htmlTagN {fg = hsl(fg1)}, + htmlSpecialTagName {fg = hsl(blue)}, + htmlSpecialChar {fg = hsl(red)}, + htmlLink {fg = hsl(fg4), gui = styles.underline}, + htmlBold {fg = hsl(fg1), gui = styles.bold}, + htmlBoldUnderline {fg = hsl(fg1), gui = styles.bold .. "," .. styles.underline}, + htmlBoldItalic {fg = hsl(fg1), gui = styles.bold .. "," .. styles.italic}, + htmlBoldUnderlineItalic { + fg = hsl(fg1), + gui = styles.bold .. "," .. styles.underline .. "," .. styles.italic, + }, + htmlItalic {fg = hsl(fg1), gui = styles.italic}, + + -- special diffs + diffAdded {fg = hsl(green)}, + diffRemoved {fg = hsl(red)}, + diffChanged {fg = hsl(aqua)}, + diffFile {fg = hsl(orange)}, + diffNewFile {fg = hsl(yellow)}, + diffLine {fg = hsl(blue)}, + + -- css + cssBraces {fg = hsl(blue)}, + cssFunctionName {fg = hsl(yellow)}, + cssIdentifier {fg = hsl(orange)}, + cssClassName {fg = hsl(green)}, + cssColor {fg = hsl(blue)}, + cssSelectorOp {fg = hsl(blue)}, + cssSelectorOp2 {fg = hsl(blue)}, + cssImportant {fg = hsl(green)}, + cssVendor {fg = hsl(fg1)}, + cssTextProp {fg = hsl(aqua)}, + cssAnimationProp {fg = hsl(aqua)}, + cssUIProp {fg = hsl(yellow)}, + cssTransformProp {fg = hsl(aqua)}, + cssTransitionProp {fg = hsl(aqua)}, + cssPrintProp {fg = hsl(aqua)}, + cssPositioningProp {fg = hsl(yellow)}, + cssBoxProp {fg = hsl(aqua)}, + cssFontDescriptorProp {fg = hsl(aqua)}, + cssFlexibleBoxProp {fg = hsl(aqua)}, + cssBorderOutlineProp {fg = hsl(aqua)}, + cssBackgroundProp {fg = hsl(aqua)}, + cssMarginProp {fg = hsl(aqua)}, + cssListProp {fg = hsl(aqua)}, + cssTableProp {fg = hsl(aqua)}, + cssFontProp {fg = hsl(aqua)}, + cssPaddingProp {fg = hsl(aqua)}, + cssDimensionProp {fg = hsl(aqua)}, + cssRenderProp {fg = hsl(aqua)}, + cssColorProp {fg = hsl(aqua)}, + cssGeneratedContentProp {fg = hsl(aqua)}, + + -- js + javaScriptBraces {fg = hsl(fg1)}, + javaScriptFunction {fg = hsl(aqua)}, + javaScriptIdentifier {fg = hsl(red)}, + javaScriptMember {fg = hsl(blue)}, + javaScriptNumber {fg = hsl(purple)}, + javaScriptNull {fg = hsl(purple)}, + javaScriptParens {fg = hsl(fg3)}, + javascriptImport {fg = hsl(aqua)}, + javascriptExport {fg = hsl(aqua)}, + javascriptClassKeyword {fg = hsl(aqua)}, + javascriptClassExtends {fg = hsl(aqua)}, + javascriptDefault {fg = hsl(aqua)}, + javascriptClassName {fg = hsl(yellow)}, + javascriptClassSuperName {fg = hsl(yellow)}, + javascriptGlobal {fg = hsl(yellow)}, + javascriptEndColons {fg = hsl(fg1)}, + javascriptFuncArg {fg = hsl(fg1)}, + javascriptGlobalMethod {fg = hsl(fg1)}, + javascriptNodeGlobal {fg = hsl(fg1)}, + javascriptBOMWindowProp {fg = hsl(fg1)}, + javascriptArrayMethod {fg = hsl(fg1)}, + javascriptArrayStaticMethod {fg = hsl(fg1)}, + javascriptCacheMethod {fg = hsl(fg1)}, + javascriptDateMethod {fg = hsl(fg1)}, + javascriptMathStaticMethod {fg = hsl(fg1)}, + javascriptProp {fg = hsl(fg1)}, + javascriptURLUtilsProp {fg = hsl(fg1)}, + javascriptBOMNavigatorProp {fg = hsl(fg1)}, + javascriptDOMDocMethod {fg = hsl(fg1)}, + javascriptDOMDocProp {fg = hsl(fg1)}, + javascriptBOMLocationMethod {fg = hsl(fg1)}, + javascriptBOMWindowMethod {fg = hsl(fg1)}, + javascriptStringMethod {fg = hsl(fg1)}, + javascriptVariable {fg = hsl(orange)}, + javascriptClassSuper {fg = hsl(orange)}, + javascriptFuncKeyword {fg = hsl(aqua)}, + javascriptAsyncFunc {fg = hsl(aqua)}, + javascriptClassStatic {fg = hsl(orange)}, + javascriptOperator {fg = hsl(red)}, + javascriptForOperator {fg = hsl(red)}, + javascriptYield {fg = hsl(red)}, + javascriptExceptions {fg = hsl(red)}, + javascriptMessage {fg = hsl(red)}, + javascriptTemplateSB {fg = hsl(aqua)}, + javascriptTemplateSubstitution {fg = hsl(fg1)}, + javascriptLabel {fg = hsl(fg1)}, + javascriptObjectLabel {fg = hsl(fg1)}, + javascriptPropertyName {fg = hsl(fg1)}, + javascriptLogicSymbols {fg = hsl(fg1)}, + javascriptArrowFunc {fg = hsl(yellow)}, + javascriptDocParamName {fg = hsl(fg4)}, + javascriptDocTags {fg = hsl(fg4)}, + javascriptDocNotation {fg = hsl(fg4)}, + javascriptDocParamType {fg = hsl(fg4)}, + javascriptDocNamedParamType {fg = hsl(fg4)}, + javascriptBrackets {fg = hsl(fg1)}, + javascriptDOMElemAttrs {fg = hsl(fg1)}, + javascriptDOMEventMethod {fg = hsl(fg1)}, + javascriptDOMNodeMethod {fg = hsl(fg1)}, + javascriptDOMStorageMethod {fg = hsl(fg1)}, + javascriptHeadersMethod {fg = hsl(fg1)}, + javascriptAsyncFuncKeyword {fg = hsl(red)}, + javascriptAwaitFuncKeyword {fg = hsl(red)}, + jsClassKeyword {fg = hsl(aqua)}, + jsExtendsKeyword {fg = hsl(aqua)}, + jsExportDefault {fg = hsl(aqua)}, + jsTemplateBraces {fg = hsl(aqua)}, + jsGlobalNodeObjects {fg = hsl(blue)}, + jsGlobalObjects {fg = hsl(blue)}, + jsObjectKey {fg = hsl(green), gui = styles.bold}, + jsFunction {fg = hsl(aqua)}, + jsFuncCall {fg = hsl(blue)}, + jsFuncParens {fg = hsl(fg3)}, + jsParens {fg = hsl(fg3)}, + jsNull {fg = hsl(purple)}, + jsUndefined {fg = hsl(purple)}, + jsClassDefinition {fg = hsl(yellow)}, + jsOperatorKeyword {fg = hsl(red)}, + + -- typescript + typescriptReserved {fg = hsl(aqua)}, + typescriptLabel {fg = hsl(aqua)}, + typescriptFuncKeyword {fg = hsl(aqua)}, + typescriptIdentifier {fg = hsl(orange)}, + typescriptBraces {fg = hsl(fg1)}, + typescriptEndColons {fg = hsl(fg1)}, + typescriptDOMObjects {fg = hsl(fg1)}, + typescriptAjaxMethods {fg = hsl(fg1)}, + typescriptLogicSymbols {fg = hsl(fg1)}, + typescriptDocSeeTag {SpecialComment}, + typescriptDocParam {SpecialComment}, + typescriptDocTags {SpecialComment}, + typescriptGlobalObjects {fg = hsl(fg1)}, + typescriptParens {fg = hsl(fg3)}, + typescriptOpSymbols {fg = hsl(fg3)}, + typescriptHtmlElemProperties {fg = hsl(fg1)}, + typescriptNull {fg = hsl(purple)}, + typescriptInterpolationDelimiter {fg = hsl(aqua)}, + + -- jsx + jsxTagName {fg = hsl(aqua)}, + jsxComponentName {fg = hsl(green)}, + jsxCloseString {fg = hsl(fg4)}, + jsxAttrib {fg = hsl(yellow)}, + jsxEqual {fg = hsl(aqua)}, + + -- purescript + purescriptModuleKeyword {fg = hsl(aqua)}, + purescriptModuleName {fg = hsl(fg1)}, + purescriptWhere {fg = hsl(aqua)}, + purescriptDelimiter {fg = hsl(fg4)}, + purescriptType {fg = hsl(fg1)}, + purescriptImportKeyword {fg = hsl(aqua)}, + purescriptHidingKeyword {fg = hsl(aqua)}, + purescriptAsKeyword {fg = hsl(aqua)}, + purescriptStructure {fg = hsl(aqua)}, + purescriptOperator {fg = hsl(blue)}, + purescriptTypeVar {fg = hsl(fg1)}, + purescriptConstructor {fg = hsl(fg1)}, + purescriptFunction {fg = hsl(fg1)}, + purescriptConditional {fg = hsl(orange)}, + purescriptBacktick {fg = hsl(orange)}, + + -- coffeescript + coffeeExtendedOp {fg = hsl(fg3)}, + coffeeSpecialOp {fg = hsl(fg3)}, + coffeeCurly {fg = hsl(orange)}, + coffeeParen {fg = hsl(fg3)}, + coffeeBracket {fg = hsl(orange)}, + + -- ruby + rubyStringDelimiter {fg = hsl(green)}, + rubyInterpolationDelimiter {fg = hsl(aqua)}, + + -- obj-c + objcTypeModifier {fg = hsl(red)}, + objcDirective {fg = hsl(blue)}, + + -- moonscript + moonSpecialOp {fg = hsl(fg3)}, + moonExtendedOp {fg = hsl(fg3)}, + moonFunction {fg = hsl(fg3)}, + moonObject {fg = hsl(yellow)}, + + -- elixir + elixirDocString {SpecialComment}, + elixirStringDelimiter {fg = hsl(green)}, + elixirInterpolationDelimiter {fg = hsl(aqua)}, + elixirModuleDeclaration {fg = hsl(yellow)}, + + -- scala + scalaNameDefinition {fg = hsl(fg1)}, + scalaCaseFollowing {fg = hsl(fg1)}, + scalaCapitalWord {fg = hsl(fg1)}, + scalaTypeExtension {fg = hsl(fg1)}, + scalaKeyword {fg = hsl(red)}, + scalaKeywordModifier {fg = hsl(red)}, + scalaSpecial {fg = hsl(aqua)}, + scalaOperator {fg = hsl(fg1)}, + scalaTypeDeclaration {fg = hsl(yellow)}, + scalaTypeTypePostDeclaration {fg = hsl(yellow)}, + scalaInstanceDeclaration {fg = hsl(fg1)}, + scalaInterpolation {fg = hsl(aqua)}, + + -- markdown + markdownItalic {fg = hsl(fg3), gui = styles.italic}, + markdownH1 {fg = hsl(green), gui = styles.bold}, + markdownH2 {markdownH1}, + markdownH3 {fg = hsl(yellow), gui = styles.bold}, + markdownH4 {markdownH3}, + markdownH5 {fg = hsl(yellow)}, + markdownH6 {markdownH5}, + markdownCode {fg = hsl(aqua)}, + markdownCodeBlock {fg = hsl(aqua)}, + markdownCodeDelimiter {fg = hsl(aqua)}, + markdownBlockquote {fg = hsl(gray)}, + markdownListMarker {fg = hsl(gray)}, + markdownOrderedListMarker {fg = hsl(gray)}, + markdownRule {fg = hsl(gray)}, + markdownHeadingRule {fg = hsl(gray)}, + markdownUrlDelimiter {fg = hsl(fg3)}, + markdownLinkDelimiter {fg = hsl(fg3)}, + markdownLinkTextDelimiter {fg = hsl(fg3)}, + markdownHeadingDelimiter {fg = hsl(orange)}, + markdownUrl {fg = hsl(purple)}, + markdownUrlTitleDelimiter {fg = hsl(green)}, + markdownLinkText {fg = hsl(gray), gui = styles.underline}, + markdownIdDeclaration {markdownLinkText}, + + -- haskell + haskellType {fg = hsl(blue)}, + haskellIdentifier {fg = hsl(aqua)}, + haskellSeparator {fg = hsl(fg4)}, + haskellDelimiter {fg = hsl(orange)}, + haskellOperators {fg = hsl(purple)}, + haskellBacktick {fg = hsl(orange)}, + haskellStatement {fg = hsl(purple)}, + haskellConditional {fg = hsl(purple)}, + haskellLet {fg = hsl(red)}, + haskellDefault {fg = hsl(red)}, + haskellWhere {fg = hsl(red)}, + haskellBottom {fg = hsl(red), gui = styles.bold}, + haskellImportKeywords {fg = hsl(purple), gui = styles.bold}, + haskellDeclKeyword {fg = hsl(orange)}, + haskellDecl {fg = hsl(orange)}, + haskellDeriving {fg = hsl(purple)}, + haskellAssocType {fg = hsl(aqua)}, + haskellNumber {fg = hsl(aqua)}, + haskellPragma {fg = hsl(red), gui = styles.bold}, + haskellTH {fg = hsl(aqua), gui = styles.bold}, + haskellForeignKeywords {fg = hsl(green)}, + haskellKeyword {fg = hsl(red)}, + haskellFloat {fg = hsl(aqua)}, + haskellInfix {fg = hsl(purple)}, + haskellQuote {fg = hsl(green), gui = styles.bold}, + haskellShebang {fg = hsl(yellow), gui = styles.bold}, + haskellLiquid {fg = hsl(purple), gui = styles.bold}, + haskellQuasiQuoted {fg = hsl(blue), gui = styles.bold}, + haskellRecursiveDo {fg = hsl(purple)}, + haskellQuotedType {fg = hsl(red)}, + haskellPreProc {fg = hsl(fg4)}, + haskellTypeRoles {fg = hsl(red), gui = styles.bold}, + haskellTypeForall {fg = hsl(red)}, + haskellPatternKeyword {fg = hsl(blue)}, + + -- json + jsonKeyword {fg = hsl(green)}, + jsonQuote {fg = hsl(green)}, + jsonBraces {fg = hsl(fg1)}, + jsonString {fg = hsl(fg1)}, + + -- mail.vim + mailQuoted1 {fg = hsl(aqua)}, + mailQuoted2 {fg = hsl(purple)}, + mailQuoted3 {fg = hsl(yellow)}, + mailQuoted4 {fg = hsl(green)}, + mailQuoted5 {fg = hsl(red)}, + mailQuoted6 {fg = hsl(orange)}, + mailSignature {SpecialComment}, + + -- csharp + csBraces {fg = hsl(fg1)}, + csEndColon {fg = hsl(fg1)}, + csLogicSymbols {fg = hsl(fg1)}, + csParens {fg = hsl(fg3)}, + csOpSymbols {fg = hsl(fg3)}, + csInterpolationDelimiter {fg = hsl(fg3)}, + csInterpolationAlignDel {fg = hsl(aqua), gui = styles.bold}, + csInterpolationFormat {fg = hsl(aqua)}, + csInterpolationFormatDel {fg = hsl(aqua), gui = styles.bold}, + + -- rust + rustSigil {fg = hsl(orange)}, + rustEscape {fg = hsl(aqua)}, + rustStringContinuation {fg = hsl(aqua)}, + rustEnum {fg = hsl(aqua)}, + rustStructure {fg = hsl(aqua)}, + rustModPathSep {fg = hsl(fg2)}, + rustCommentLineDoc {SpecialComment}, + rustDefault {fg = hsl(aqua)}, + + -- ocaml + ocamlOperator {fg = hsl(fg1)}, + ocamlKeyChar {fg = hsl(orange)}, + ocamlArrow {fg = hsl(orange)}, + ocamlInfixOpKeyword {fg = hsl(red)}, + ocamlConstructor {fg = hsl(orange)}, + + -- coc.nvim + CocErrorSign {fg = hsl(red), bg = hsl(sign_column)}, + CocWarningSign {fg = hsl(orange), bg = hsl(sign_column)}, + CocInfoSign {fg = hsl(blue), bg = hsl(sign_column)}, + CocHintSign {fg = hsl(aqua), bg = hsl(sign_column)}, + CocErrorFloat {fg = hsl(red)}, + CocWarningFloat {fg = hsl(orange)}, + CocInfoFloat {fg = hsl(blue)}, + CocHintFloat {fg = hsl(aqua)}, + CocDiagnosticsError {fg = hsl(red)}, + CocDiagnosticsWarning {fg = hsl(orange)}, + CocDiagnosticsInfo {fg = hsl(blue)}, + CocDiagnosticsHint {fg = hsl(aqua)}, + CocSelectedText {fg = hsl(red)}, + CocCodeLens {fg = hsl(gray)}, + CocErrorHighlight {fg = hsl(red), gui = styles.underline}, + CocWarningHighlight {fg = hsl(orange), gui = styles.underline}, + CocInfoHighlight {fg = hsl(blue), gui = styles.underline}, + CocHintHighlight {fg = hsl(aqua), gui = styles.underline}, + + -- nerdtree + NERDTreeDir {fg = hsl(aqua)}, + NERDTreeDirSlash {fg = hsl(aqua)}, + NERDTreeOpenable {fg = hsl(orange)}, + NERDTreeClosable {fg = hsl(orange)}, + NERDTreeFile {fg = hsl(fg1)}, + NERDTreeExecFile {fg = hsl(yellow)}, + NERDTreeUp {fg = hsl(gray)}, + NERDTreeCWD {fg = hsl(green)}, + NERDTreeHelp {fg = hsl(fg1)}, + NERDTreeToggleOn {fg = hsl(green)}, + NERDTreeToggleOff {fg = hsl(red)}, + + -- vim dirvish + DirvishPathTail {fg = hsl(aqua)}, + DirvishArg {fg = hsl(yellow)}, + + -- ale.vim + ALEError {fg = hsl(red), gui = styles.underline}, + ALEWarning {fg = hsl(yellow), gui = styles.underline}, + ALEInfo {fg = hsl(blue), gui = styles.underline}, + ALEErrorSign {fg = hsl(red), bg = hsl(sign_column)}, + ALEWarningSign {fg = hsl(yellow), bg = hsl(sign_column)}, + ALEInfoSign {fg = hsl(blue), bg = hsl(sign_column)}, + ALEVirtualTextError {fg = hsl(red)}, + ALEVirtualTextWarning {fg = hsl(yellow)}, + ALEVirtualTextInfo {fg = hsl(blue)}, + + -- BufTabLine + BufTabLineCurrent {fg = hsl(bg0), bg = hsl(fg4)}, + BufTabLineActive {fg = hsl(fg4), bg = hsl(bg2)}, + BufTabLineHidden {fg = hsl(bg4), bg = hsl(bg1)}, + BufTabLineFill {fg = hsl(bg0), bg = hsl(bg0)}, + + -- fzf + Fzf1 {fg = hsl(blue), bg = hsl(bg1)}, + Fzf2 {fg = hsl(orange), bg = hsl(bg1)}, + Fzf3 {fg = hsl(fg4), bg = hsl(bg1)}, + + -- ctrlP + CtrlPMatch {fg = hsl(yellow)}, + CtrlPNoEntries {fg = hsl(red)}, + CtrlPPrtBase {fg = hsl(bg2)}, + CtrlPPrtCursor {fg = hsl(blue)}, + CtrlPLinePre {fg = hsl(bg2)}, + CtrlPMode1 {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, + CtrlPMode2 {fg = hsl(bg0), bg = hsl(blue), gui = styles.bold}, + CtrlPStats {fg = hsl(fg4), bg = hsl(bg2), gui = styles.bold}, + + -- showmarks + ShowMarksHLl {fg = hsl(blue), bg = hsl(sign_column)}, + ShowMarksHLu {fg = hsl(blue), bg = hsl(sign_column)}, + ShowMarksHLo {fg = hsl(blue), bg = hsl(sign_column)}, + ShowMarksHLm {fg = hsl(blue), bg = hsl(sign_column)}, + + -- signature + SignatureMarkText {fg = hsl(blue), bg = hsl(sign_column)}, + SignatureMarkerText {fg = hsl(purple), bg = hsl(sign_column)}, + + -- gitgutter + GitGutterAdd {fg = hsl(green), bg = hsl(sign_column)}, + GitGutterChange {fg = hsl(aqua), bg = hsl(sign_column)}, + GitGutterDelete {fg = hsl(red), bg = hsl(sign_column)}, + GitGutterChangeDelete {fg = hsl(aqua), bg = hsl(sign_column)}, + + -- gitcommit + gitcommitSelectedFile {fg = hsl(green)}, + gitcommitDiscardedFile {fg = hsl(red)}, + } +end) + +return theme diff --git a/lua/theme/init.lua b/lua/theme/init.lua deleted file mode 100644 index b14e022..0000000 --- a/lua/theme/init.lua +++ /dev/null @@ -1,910 +0,0 @@ -local lush = require("lush") -local hsl = lush.hsl --- gruvbox palette -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", -} --- options (dark mode by default) -local bg0 = colors.dark0 -local bg1 = colors.dark1 -local bg2 = colors.dark2 -local bg3 = colors.dark3 -local bg4 = colors.dark4 - -local fg0 = colors.light0 -local fg1 = colors.light1 -local fg2 = colors.light2 -local fg3 = colors.light3 -local fg4 = colors.light4 - -local red = colors.bright_red -local green = colors.bright_green -local yellow = colors.bright_yellow -local blue = colors.bright_blue -local purple = colors.bright_purple -local aqua = colors.bright_aqua -local orange = colors.bright_orange -local sign_column = bg1 -local gray = colors.gray - --- global settings -local settings = { - contrast_dark = "medium", - contrart_light = "medium", - bold = true, - italic = true, - undercurl = true, - underline = true, - improved_strings = false, - improved_warnings = false, - invert_signs = false, - invert_selection = true, - invert_tabline = false, - italicize_comments = true, - italicize_strings = false, -} - -local styles = { - italic = "italic", - inverse = "inverse", - bold = "bold", - undercurl = "undercurl", - underline = "underline", -} - --- 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 - --- handle light/dark contrast settings -local bg = vim.o.background -local contrast = vim.g["gruvbox_contrast_" .. bg] -if contrast == "hard" then - bg0 = colors[bg .. "0_hard"] -elseif contrast == "soft" then - bg0 = colors[bg .. "0_soft"] -end - --- swap colors if light mode -if bg == "light" then - bg0 = colors.light0 - bg1 = colors.light1 - bg2 = colors.light2 - bg3 = colors.light3 - bg4 = colors.light4 - fg0 = colors.dark0 - fg1 = colors.dark1 - fg2 = colors.dark2 - fg3 = colors.dark3 - fg4 = colors.dark4 - red = colors.faded_red - green = colors.faded_green - yellow = colors.faded_yellow - blue = colors.faded_blue - purple = colors.faded_purple - aqua = colors.faded_aqua - orange = colors.faded_orange -end - -local hls_cursor = orange -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_cursor] -end - -local hls_highlight = yellow -if vim.g.gruvbox_hls_cursor ~= nil then - hls_cursor = colors[vim.g.gruvbox_hls_highlight] -end - -local number_column -if vim.g.gruvbox_number_column ~= nil then - number_column = hsl(colors[vim.g.gruvbox_number_column]) -end - -local color_column = bg1 -if vim.g.gruvbox_color_column ~= nil then - color_column = colors[vim.g.gruvbox_color_column] -end - -local vert_split = bg0 -if vim.g.gruvbox_vert_split ~= nil then - vert_split = colors[vim.g.gruvbox_vert_split] -end - -local invert_signs -if vim.g.gruvbox_invert_signs then - invert_signs = styles.inverse -end - -local invert_selection = styles.inverse -if not vim.g.gruvbox_invert_selection then - invert_selection = nil -end - -local invert_tabline -if vim.g.gruvbox_invert_tabline then - invert_tabline = styles.inverse -end - -local tabline_sel = green -if vim.g.gruvbox_tabline_sel then - tabline_sel = colors[vim.g.gruvbox_tabline_sel] -end - -local italic_comments = settings.italic -if not vim.g.gruvbox_italicize_comments then - italic_comments = nil -end - -local italic_strings -if vim.g.gruvbox_italicize_strings then - italic_strings = styles.italic -end - -local special = {fg = hsl(orange), bg = hsl(bg1), gui = italic_strings} -local special_string = {fg = hsl(fg1), bg = hsl(bg1), italic_strings} -if not vim.g.gruvbox_improved_strings then - special = {fg = hsl(orange)} - special_string = {fg = hsl(green), gui = italic_strings} -end - -local theme = lush(function() - return { - -- EndOfBuffer { }, - -- TermCursor { }, - -- TermCursorNC { }, - -- Substitute { }, - -- MsgArea { }, - -- MsgSeparator { }, - -- Whitespace { }, - -- Base groups - ColorColumn {bg = hsl(color_column)}, - Conceal {bg = hsl(blue)}, - Cursor {gui = styles.inverse}, - lCursor {Cursor}, - CursorIM {Cursor}, - CursorColumn {bg = bg1}, - CursorLine {CursorColumn}, - Directory {fg = hsl(green), gui = styles.bold}, - DiffAdd {fg = hsl(green), bg = hsl(bg1), gui = invert_signs}, - DiffChange {fg = hsl(aqua), bg = hsl(bg1), gui = invert_signs}, - DiffDelete {fg = hsl(red), bg = hsl(bg1), gui = invert_signs}, - DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, - ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, - VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, - Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, - FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, - SignColumn {bg = hsl(sign_column)}, - IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, - LineNr {fg = hsl(bg4), bg = number_column}, - CursorLineNr {fg = hsl(yellow), bg = hsl(bg1)}, - MatchParen {bg = hsl(bg3), gui = styles.bold}, - ModeMsg {fg = hsl(yellow), gui = styles.bold}, - MoreMsg {fg = hsl(yellow), gui = styles.bold}, - NonText {fg = hsl(bg2)}, - Normal {fg = hsl(fg1), bg = hsl(bg0)}, - NormalFloat {Normal}, - NormalNC {Normal}, - Pmenu {fg = hsl(fg1), bg = hsl(bg2)}, - PmenuSel {fg = hsl(bg2), bg = hsl(blue), gui = styles.bold}, - PmenuSbar {bg = hsl(bg2)}, - PmenuThumb {bg = hsl(bg4)}, - Question {fg = hsl(orange), gui = styles.bold}, - QuickFixLine {fg = hsl(fg0), bg = hsl(yellow), gui = styles.bold}, - Search {fg = hsl(hls_highlight), bg = hsl(bg0), gui = styles.inverse}, - SpecialKey {fg = hsl(fg4)}, - SpellRare {gui = styles.undercurl, sep = hsl(purple)}, - SpellBad {fg = hsl(red), gui = styles.underline}, - StatusLine {fg = hsl(bg2), bg = hsl(fg1), gui = styles.inverse}, - StatusLineNC {fg = hsl(bg1), bg = hsl(fg4), gui = styles.inverse}, - TabLine {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, - TabLineFill {fg = hsl(bg4), bg = hsl(bg1), gui = invert_tabline}, - TabLineSel {fg = hsl(tabline_sel), bg = hsl(bg1), gui = invert_tabline}, - Title {fg = hsl(green), gui = styles.bold}, - Visual {bg = hsl(bg3), gui = invert_selection}, - VisualNOS {bg = hsl(bg3), gui = invert_selection}, - WarningMsg {fg = hsl(red), gui = styles.bold}, - WildMenu {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, - Constant {fg = hsl(purple)}, - String {unpack(special_string)}, - Character {fg = hsl(purple)}, - Number {Character}, - Boolean {Character}, - Float {Character}, - Identifier {fg = hsl(blue)}, - Function {fg = hsl(green), gui = styles.bold}, - Statement {fg = hsl(red)}, - Conditional {fg = hsl(red)}, - Repeat {fg = hsl(red)}, - Label {fg = hsl(red)}, - Keyword {fg = hsl(red)}, - Exception {fg = hsl(red)}, - Operator {fg = hsl(fg1)}, - PreProc {fg = hsl(aqua)}, - Include {fg = hsl(aqua)}, - Define {fg = hsl(aqua)}, - Macro {fg = hsl(aqua)}, - PreCondit {fg = hsl(aqua)}, - Type {fg = hsl(yellow)}, - StorageClass {fg = hsl(orange)}, - Structure {fg = hsl(aqua)}, - Typedef {fg = hsl(yellow)}, - Special {unpack(special)}, - SpecialChar {fg = hsl(red)}, - Tag {fg = hsl(aqua), gui = styles.bold}, - Delimiter {fg = hsl(fg0)}, - SpecialComment {fg = hsl(gray), gui = styles.italic}, - Debug {fg = hsl(red)}, - Underlined {gui = styles.underline}, - Bold {gui = styles.bold}, - Italic {gui = styles.italic}, - Ignore {}, - Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles - Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, - - -- LSP - LspDiagnosticsError {Error}, - LspDiagnosticsErrorSign {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, - LspDiagnosticsErrorFloating {LspDiagnosticsError}, - LspDiagnosticsWarning {fg = hsl(yellow)}, - LspDiagnosticsWarningSign { - LspDiagnosticsWarning, - bg = hsl(sign_column), - gui = styles.undercurl, - sp = hsl(yellow), - }, - LspDiagnosticsWarningFloating {LspDiagnosticsWarning}, - LspDiagnosticsInformation {fg = hsl(blue)}, - LspDiagnosticsInformationSign { - LspDiagnosticsInformation, - bg = hsl(sign_column), - gui = invert_signs, - }, - LspDiagnosticsInformationFloating {LspDiagnosticsInformation}, - LspDiagnosticsHint {fg = hsl(aqua)}, - LspDiagnosticsHintSign { - LspDiagnosticsHint, - bg = hsl(sign_column), - gui = invert_signs, - }, - LspDiagnosticsHintFloating {LspDiagnosticsHint}, - - -- Treesitter - TSNone {}, - TSError {Error}, - TSPunctDelimiter {Delimiter}, - TSPunctBracket {Delimiter}, - TSPunctSpecial {Delimiter}, - TSConstant {Constant}, - TSConstBuiltin {Special}, - TSConstMacro {Define}, - TSString {String}, - TSStringRegex {String}, - TSStringEscape {SpecialChar}, - TSCharacter {Character}, - TSNumber {Number}, - TSBoolean {Boolean}, - TSFloat {Float}, - TSFunction {Function}, - TSFuncBuiltin {Special}, - TSFuncMacro {Macro}, - TSParameter {Identifier}, - TSParameterReference {TSParameter}, - TSMethod {Function}, - TSField {Identifier}, - TSProperty {Identifier}, - TSConstructor {Special}, - TSConditional {Conditional}, - TSRepeat {Repeat}, - TSLabel {Label}, - TSOperator {Operator}, - TSKeyword {Keyword}, - TSKeywordFunction {Keyword}, - TSException {Exception}, - TSType {Type}, - TSTypeBuiltin {Type}, - TSNamespace {Include}, - TSInclude {Include}, - TSAnnotation {PreProc}, - TSText {TSNone}, - TSStrong {gui = styles.bold}, - TSEmphasis {gui = styles.italic}, - TSUnderline {gui = styles.underline}, - TSTitle {Title}, - TSLiteral {String}, - TSURI {Underlined}, - TSVariable {Special}, - TSVariableBuiltin {Special}, - - -- netrw - netrwDir {fg = hsl(aqua)}, - netrwClassify {netrwDir}, - netrwLink {fg = hsl(gray)}, - netrwSymLink {fg = hsl(fg1)}, - netrwExe {fg = hsl(yellow)}, - netrwComment {netrwLink}, - netrwList {fg = hsl(blue)}, - netrwHelpCmd {netrwDir}, - netrwCmdSep {fg = hsl(fg3)}, - netrwVersion {fg = hsl(green)}, - - -- vim-startify - StartifyBracket {fg = hsl(fg3)}, - StartifyFile {fg = hsl(fg1)}, - StartifyNumber {fg = hsl(blue)}, - StartifyPath {fg = hsl(gray)}, - StartifySlash {StartifyPath}, - StartifySection {fg = hsl(yellow)}, - StartifySpecial {fg = hsl(bg2)}, - StartifyHeader {fg = hsl(orange)}, - StartifyFooter {fg = hsl(bg2)}, - - -- vim-signify - SignifySignAdd {fg = hsl(green), bg = hsl(sign_column), gui = invert_signs}, - SignifySignChange {fg = hsl(aqua), bg = hsl(sign_column), gui = invert_signs}, - SignifySignDelete {fg = hsl(red), bg = hsl(sign_column), gui = invert_signs}, - - -- lua - luaIn {fg = hsl(red)}, - luaFunction {fg = hsl(aqua)}, - luaTable {fg = hsl(orange)}, - - -- golang - goDirective {fg = hsl(aqua)}, - goConstants {fg = hsl(purple)}, - goDeclaration {fg = hsl(red)}, - goDeclType {fg = hsl(blue)}, - goBuiltins {fg = hsl(orange)}, - - -- java - javaAnnotation {fg = hsl(blue)}, - javaDocTags {fg = hsl(aqua)}, - javaCommentTitle {SpecialComment}, - javaParen {fg = hsl(fg3)}, - javaParen1 {fg = hsl(fg3)}, - javaParen2 {fg = hsl(fg3)}, - javaParen3 {fg = hsl(fg3)}, - javaParen4 {fg = hsl(fg3)}, - javaParen5 {fg = hsl(fg3)}, - javaOperator {fg = hsl(orange)}, - - -- xml - xmlTag {fg = hsl(aqua), gui = styles.bold}, - xmlEndTag {fg = hsl(aqua), gui = styles.bold}, - xmlTagName {fg = hsl(blue)}, - xmlEqual {fg = hsl(blue)}, - docbkKeyword {fg = hsl(aqua), gui = styles.bold}, - xmlDocTypeDecl {fg = hsl(gray)}, - xmlDocTypeKeyword {fg = hsl(purple)}, - xmlCdataStart {fg = hsl(gray)}, - xmlCdataCdata {fg = hsl(purple)}, - dtdFunction {fg = hsl(gray)}, - dtdTagName {fg = hsl(purple)}, - xmlAttrib {fg = hsl(orange)}, - xmlProcessingDelim {fg = hsl(gray)}, - dtdParamEntityPunct {fg = hsl(gray)}, - dtdParamEntityDPunct {fg = hsl(gray)}, - xmlAttribPunct {fg = hsl(gray)}, - xmlEntity {fg = hsl(red)}, - xmlEntityPunct {fg = hsl(red)}, - - -- viml - vimNotation {fg = hsl(orange)}, - vimBracket {fg = hsl(orange)}, - vimMapModKey {fg = hsl(orange)}, - vimFuncSID {fg = hsl(fg3)}, - vimSetSep {fg = hsl(fg3)}, - vimSep {fg = hsl(fg3)}, - vimContinue {fg = hsl(fg3)}, - - -- c - cOperator {fg = hsl(purple)}, - cppOperator {fg = hsl(purple)}, - cStructure {fg = hsl(orange)}, - - -- python - pythonBuiltin {fg = hsl(orange)}, - pythonBuiltinObj {fg = hsl(orange)}, - pythonBuiltinFunc {fg = hsl(orange)}, - pythonFunction {fg = hsl(aqua)}, - pythonDecorator {fg = hsl(red)}, - pythonInclude {fg = hsl(blue)}, - pythonImport {fg = hsl(blue)}, - pythonRun {fg = hsl(blue)}, - pythonCoding {fg = hsl(blue)}, - pythonOperator {fg = hsl(red)}, - pythonException {fg = hsl(red)}, - pythonExceptions {fg = hsl(purple)}, - pythonBoolean {fg = hsl(purple)}, - pythonDot {fg = hsl(fg3)}, - pythonConditional {fg = hsl(red)}, - pythonRepeat {fg = hsl(red)}, - pythonDottedName {fg = hsl(green), gui = styles.bold}, - - -- clojure - clojureRegexpCharClass {fg = hsl(fg3), gui = styles.bold}, - clojureKeyword {fg = hsl(blue)}, - clojureCond {fg = hsl(orange)}, - clojureSpecial {fg = hsl(orange)}, - clojureDefine {fg = hsl(orange)}, - - clojureFunc {fg = hsl(yellow)}, - clojureRepeat {fg = hsl(yellow)}, - clojureCharacter {fg = hsl(aqua)}, - clojureStringEscape {fg = hsl(aqua)}, - clojureException {fg = hsl(red)}, - - clojureRegexp {fg = hsl(aqua)}, - clojureRegexpEscape {fg = hsl(aqua)}, - clojureRegexpMod {clojureRegexpCharClass}, - clojureRegexpQuantifier {clojureRegexpCharClass}, - - clojureParen {fg = hsl(fg3)}, - clojureAnonArg {fg = hsl(yellow)}, - clojureVariable {fg = hsl(blue)}, - clojureMacro {fg = hsl(orange)}, - - clojureMeta {fg = hsl(yellow)}, - clojureDeref {fg = hsl(yellow)}, - clojureQuote {fg = hsl(yellow)}, - clojureUnquote {fg = hsl(yellow)}, - - -- html - htmlTag {fg = hsl(aqua), gui = styles.bold}, - htmlEndTag {fg = hsl(aqua), gui = styles.bold}, - htmlTagName {fg = hsl(blue)}, - htmlArg {fg = hsl(orange)}, - htmlScriptTag {fg = hsl(purple)}, - htmlTagN {fg = hsl(fg1)}, - htmlSpecialTagName {fg = hsl(blue)}, - htmlSpecialChar {fg = hsl(red)}, - htmlLink {fg = hsl(fg4), gui = styles.underline}, - htmlBold {fg = hsl(fg1), gui = styles.bold}, - htmlBoldUnderline {fg = hsl(fg1), gui = styles.bold .. "," .. styles.underline}, - htmlBoldItalic {fg = hsl(fg1), gui = styles.bold .. "," .. styles.italic}, - htmlBoldUnderlineItalic { - fg = hsl(fg1), - gui = styles.bold .. "," .. styles.underline .. "," .. styles.italic, - }, - htmlItalic {fg = hsl(fg1), gui = styles.italic}, - - -- special diffs - diffAdded {fg = hsl(green)}, - diffRemoved {fg = hsl(red)}, - diffChanged {fg = hsl(aqua)}, - diffFile {fg = hsl(orange)}, - diffNewFile {fg = hsl(yellow)}, - diffLine {fg = hsl(blue)}, - - -- css - cssBraces {fg = hsl(blue)}, - cssFunctionName {fg = hsl(yellow)}, - cssIdentifier {fg = hsl(orange)}, - cssClassName {fg = hsl(green)}, - cssColor {fg = hsl(blue)}, - cssSelectorOp {fg = hsl(blue)}, - cssSelectorOp2 {fg = hsl(blue)}, - cssImportant {fg = hsl(green)}, - cssVendor {fg = hsl(fg1)}, - cssTextProp {fg = hsl(aqua)}, - cssAnimationProp {fg = hsl(aqua)}, - cssUIProp {fg = hsl(yellow)}, - cssTransformProp {fg = hsl(aqua)}, - cssTransitionProp {fg = hsl(aqua)}, - cssPrintProp {fg = hsl(aqua)}, - cssPositioningProp {fg = hsl(yellow)}, - cssBoxProp {fg = hsl(aqua)}, - cssFontDescriptorProp {fg = hsl(aqua)}, - cssFlexibleBoxProp {fg = hsl(aqua)}, - cssBorderOutlineProp {fg = hsl(aqua)}, - cssBackgroundProp {fg = hsl(aqua)}, - cssMarginProp {fg = hsl(aqua)}, - cssListProp {fg = hsl(aqua)}, - cssTableProp {fg = hsl(aqua)}, - cssFontProp {fg = hsl(aqua)}, - cssPaddingProp {fg = hsl(aqua)}, - cssDimensionProp {fg = hsl(aqua)}, - cssRenderProp {fg = hsl(aqua)}, - cssColorProp {fg = hsl(aqua)}, - cssGeneratedContentProp {fg = hsl(aqua)}, - - -- js - javaScriptBraces {fg = hsl(fg1)}, - javaScriptFunction {fg = hsl(aqua)}, - javaScriptIdentifier {fg = hsl(red)}, - javaScriptMember {fg = hsl(blue)}, - javaScriptNumber {fg = hsl(purple)}, - javaScriptNull {fg = hsl(purple)}, - javaScriptParens {fg = hsl(fg3)}, - javascriptImport {fg = hsl(aqua)}, - javascriptExport {fg = hsl(aqua)}, - javascriptClassKeyword {fg = hsl(aqua)}, - javascriptClassExtends {fg = hsl(aqua)}, - javascriptDefault {fg = hsl(aqua)}, - javascriptClassName {fg = hsl(yellow)}, - javascriptClassSuperName {fg = hsl(yellow)}, - javascriptGlobal {fg = hsl(yellow)}, - javascriptEndColons {fg = hsl(fg1)}, - javascriptFuncArg {fg = hsl(fg1)}, - javascriptGlobalMethod {fg = hsl(fg1)}, - javascriptNodeGlobal {fg = hsl(fg1)}, - javascriptBOMWindowProp {fg = hsl(fg1)}, - javascriptArrayMethod {fg = hsl(fg1)}, - javascriptArrayStaticMethod {fg = hsl(fg1)}, - javascriptCacheMethod {fg = hsl(fg1)}, - javascriptDateMethod {fg = hsl(fg1)}, - javascriptMathStaticMethod {fg = hsl(fg1)}, - javascriptProp {fg = hsl(fg1)}, - javascriptURLUtilsProp {fg = hsl(fg1)}, - javascriptBOMNavigatorProp {fg = hsl(fg1)}, - javascriptDOMDocMethod {fg = hsl(fg1)}, - javascriptDOMDocProp {fg = hsl(fg1)}, - javascriptBOMLocationMethod {fg = hsl(fg1)}, - javascriptBOMWindowMethod {fg = hsl(fg1)}, - javascriptStringMethod {fg = hsl(fg1)}, - javascriptVariable {fg = hsl(orange)}, - javascriptClassSuper {fg = hsl(orange)}, - javascriptFuncKeyword {fg = hsl(aqua)}, - javascriptAsyncFunc {fg = hsl(aqua)}, - javascriptClassStatic {fg = hsl(orange)}, - javascriptOperator {fg = hsl(red)}, - javascriptForOperator {fg = hsl(red)}, - javascriptYield {fg = hsl(red)}, - javascriptExceptions {fg = hsl(red)}, - javascriptMessage {fg = hsl(red)}, - javascriptTemplateSB {fg = hsl(aqua)}, - javascriptTemplateSubstitution {fg = hsl(fg1)}, - javascriptLabel {fg = hsl(fg1)}, - javascriptObjectLabel {fg = hsl(fg1)}, - javascriptPropertyName {fg = hsl(fg1)}, - javascriptLogicSymbols {fg = hsl(fg1)}, - javascriptArrowFunc {fg = hsl(yellow)}, - javascriptDocParamName {fg = hsl(fg4)}, - javascriptDocTags {fg = hsl(fg4)}, - javascriptDocNotation {fg = hsl(fg4)}, - javascriptDocParamType {fg = hsl(fg4)}, - javascriptDocNamedParamType {fg = hsl(fg4)}, - javascriptBrackets {fg = hsl(fg1)}, - javascriptDOMElemAttrs {fg = hsl(fg1)}, - javascriptDOMEventMethod {fg = hsl(fg1)}, - javascriptDOMNodeMethod {fg = hsl(fg1)}, - javascriptDOMStorageMethod {fg = hsl(fg1)}, - javascriptHeadersMethod {fg = hsl(fg1)}, - javascriptAsyncFuncKeyword {fg = hsl(red)}, - javascriptAwaitFuncKeyword {fg = hsl(red)}, - jsClassKeyword {fg = hsl(aqua)}, - jsExtendsKeyword {fg = hsl(aqua)}, - jsExportDefault {fg = hsl(aqua)}, - jsTemplateBraces {fg = hsl(aqua)}, - jsGlobalNodeObjects {fg = hsl(blue)}, - jsGlobalObjects {fg = hsl(blue)}, - jsObjectKey {fg = hsl(green), gui = styles.bold}, - jsFunction {fg = hsl(aqua)}, - jsFuncCall {fg = hsl(blue)}, - jsFuncParens {fg = hsl(fg3)}, - jsParens {fg = hsl(fg3)}, - jsNull {fg = hsl(purple)}, - jsUndefined {fg = hsl(purple)}, - jsClassDefinition {fg = hsl(yellow)}, - jsOperatorKeyword {fg = hsl(red)}, - - -- typescript - typescriptReserved {fg = hsl(aqua)}, - typescriptLabel {fg = hsl(aqua)}, - typescriptFuncKeyword {fg = hsl(aqua)}, - typescriptIdentifier {fg = hsl(orange)}, - typescriptBraces {fg = hsl(fg1)}, - typescriptEndColons {fg = hsl(fg1)}, - typescriptDOMObjects {fg = hsl(fg1)}, - typescriptAjaxMethods {fg = hsl(fg1)}, - typescriptLogicSymbols {fg = hsl(fg1)}, - typescriptDocSeeTag {SpecialComment}, - typescriptDocParam {SpecialComment}, - typescriptDocTags {SpecialComment}, - typescriptGlobalObjects {fg = hsl(fg1)}, - typescriptParens {fg = hsl(fg3)}, - typescriptOpSymbols {fg = hsl(fg3)}, - typescriptHtmlElemProperties {fg = hsl(fg1)}, - typescriptNull {fg = hsl(purple)}, - typescriptInterpolationDelimiter {fg = hsl(aqua)}, - - -- jsx - jsxTagName {fg = hsl(aqua)}, - jsxComponentName {fg = hsl(green)}, - jsxCloseString {fg = hsl(fg4)}, - jsxAttrib {fg = hsl(yellow)}, - jsxEqual {fg = hsl(aqua)}, - - -- purescript - purescriptModuleKeyword {fg = hsl(aqua)}, - purescriptModuleName {fg = hsl(fg1)}, - purescriptWhere {fg = hsl(aqua)}, - purescriptDelimiter {fg = hsl(fg4)}, - purescriptType {fg = hsl(fg1)}, - purescriptImportKeyword {fg = hsl(aqua)}, - purescriptHidingKeyword {fg = hsl(aqua)}, - purescriptAsKeyword {fg = hsl(aqua)}, - purescriptStructure {fg = hsl(aqua)}, - purescriptOperator {fg = hsl(blue)}, - purescriptTypeVar {fg = hsl(fg1)}, - purescriptConstructor {fg = hsl(fg1)}, - purescriptFunction {fg = hsl(fg1)}, - purescriptConditional {fg = hsl(orange)}, - purescriptBacktick {fg = hsl(orange)}, - - -- coffeescript - coffeeExtendedOp {fg = hsl(fg3)}, - coffeeSpecialOp {fg = hsl(fg3)}, - coffeeCurly {fg = hsl(orange)}, - coffeeParen {fg = hsl(fg3)}, - coffeeBracket {fg = hsl(orange)}, - - -- ruby - rubyStringDelimiter {fg = hsl(green)}, - rubyInterpolationDelimiter {fg = hsl(aqua)}, - - -- obj-c - objcTypeModifier {fg = hsl(red)}, - objcDirective {fg = hsl(blue)}, - - -- moonscript - moonSpecialOp {fg = hsl(fg3)}, - moonExtendedOp {fg = hsl(fg3)}, - moonFunction {fg = hsl(fg3)}, - moonObject {fg = hsl(yellow)}, - - -- elixir - elixirDocString {SpecialComment}, - elixirStringDelimiter {fg = hsl(green)}, - elixirInterpolationDelimiter {fg = hsl(aqua)}, - elixirModuleDeclaration {fg = hsl(yellow)}, - - -- scala - scalaNameDefinition {fg = hsl(fg1)}, - scalaCaseFollowing {fg = hsl(fg1)}, - scalaCapitalWord {fg = hsl(fg1)}, - scalaTypeExtension {fg = hsl(fg1)}, - scalaKeyword {fg = hsl(red)}, - scalaKeywordModifier {fg = hsl(red)}, - scalaSpecial {fg = hsl(aqua)}, - scalaOperator {fg = hsl(fg1)}, - scalaTypeDeclaration {fg = hsl(yellow)}, - scalaTypeTypePostDeclaration {fg = hsl(yellow)}, - scalaInstanceDeclaration {fg = hsl(fg1)}, - scalaInterpolation {fg = hsl(aqua)}, - - -- markdown - markdownItalic {fg = hsl(fg3), gui = styles.italic}, - markdownH1 {fg = hsl(green), gui = styles.bold}, - markdownH2 {markdownH1}, - markdownH3 {fg = hsl(yellow), gui = styles.bold}, - markdownH4 {markdownH3}, - markdownH5 {fg = hsl(yellow)}, - markdownH6 {markdownH5}, - markdownCode {fg = hsl(aqua)}, - markdownCodeBlock {fg = hsl(aqua)}, - markdownCodeDelimiter {fg = hsl(aqua)}, - markdownBlockquote {fg = hsl(gray)}, - markdownListMarker {fg = hsl(gray)}, - markdownOrderedListMarker {fg = hsl(gray)}, - markdownRule {fg = hsl(gray)}, - markdownHeadingRule {fg = hsl(gray)}, - markdownUrlDelimiter {fg = hsl(fg3)}, - markdownLinkDelimiter {fg = hsl(fg3)}, - markdownLinkTextDelimiter {fg = hsl(fg3)}, - markdownHeadingDelimiter {fg = hsl(orange)}, - markdownUrl {fg = hsl(purple)}, - markdownUrlTitleDelimiter {fg = hsl(green)}, - markdownLinkText {fg = hsl(gray), gui = styles.underline}, - markdownIdDeclaration {markdownLinkText}, - - -- haskell - haskellType {fg = hsl(blue)}, - haskellIdentifier {fg = hsl(aqua)}, - haskellSeparator {fg = hsl(fg4)}, - haskellDelimiter {fg = hsl(orange)}, - haskellOperators {fg = hsl(purple)}, - haskellBacktick {fg = hsl(orange)}, - haskellStatement {fg = hsl(purple)}, - haskellConditional {fg = hsl(purple)}, - haskellLet {fg = hsl(red)}, - haskellDefault {fg = hsl(red)}, - haskellWhere {fg = hsl(red)}, - haskellBottom {fg = hsl(red), gui = styles.bold}, - haskellImportKeywords {fg = hsl(purple), gui = styles.bold}, - haskellDeclKeyword {fg = hsl(orange)}, - haskellDecl {fg = hsl(orange)}, - haskellDeriving {fg = hsl(purple)}, - haskellAssocType {fg = hsl(aqua)}, - haskellNumber {fg = hsl(aqua)}, - haskellPragma {fg = hsl(red), gui = styles.bold}, - haskellTH {fg = hsl(aqua), gui = styles.bold}, - haskellForeignKeywords {fg = hsl(green)}, - haskellKeyword {fg = hsl(red)}, - haskellFloat {fg = hsl(aqua)}, - haskellInfix {fg = hsl(purple)}, - haskellQuote {fg = hsl(green), gui = styles.bold}, - haskellShebang {fg = hsl(yellow), gui = styles.bold}, - haskellLiquid {fg = hsl(purple), gui = styles.bold}, - haskellQuasiQuoted {fg = hsl(blue), gui = styles.bold}, - haskellRecursiveDo {fg = hsl(purple)}, - haskellQuotedType {fg = hsl(red)}, - haskellPreProc {fg = hsl(fg4)}, - haskellTypeRoles {fg = hsl(red), gui = styles.bold}, - haskellTypeForall {fg = hsl(red)}, - haskellPatternKeyword {fg = hsl(blue)}, - - -- json - jsonKeyword {fg = hsl(green)}, - jsonQuote {fg = hsl(green)}, - jsonBraces {fg = hsl(fg1)}, - jsonString {fg = hsl(fg1)}, - - -- mail.vim - mailQuoted1 {fg = hsl(aqua)}, - mailQuoted2 {fg = hsl(purple)}, - mailQuoted3 {fg = hsl(yellow)}, - mailQuoted4 {fg = hsl(green)}, - mailQuoted5 {fg = hsl(red)}, - mailQuoted6 {fg = hsl(orange)}, - mailSignature {SpecialComment}, - - -- csharp - csBraces {fg = hsl(fg1)}, - csEndColon {fg = hsl(fg1)}, - csLogicSymbols {fg = hsl(fg1)}, - csParens {fg = hsl(fg3)}, - csOpSymbols {fg = hsl(fg3)}, - csInterpolationDelimiter {fg = hsl(fg3)}, - csInterpolationAlignDel {fg = hsl(aqua), gui = styles.bold}, - csInterpolationFormat {fg = hsl(aqua)}, - csInterpolationFormatDel {fg = hsl(aqua), gui = styles.bold}, - - -- rust - rustSigil {fg = hsl(orange)}, - rustEscape {fg = hsl(aqua)}, - rustStringContinuation {fg = hsl(aqua)}, - rustEnum {fg = hsl(aqua)}, - rustStructure {fg = hsl(aqua)}, - rustModPathSep {fg = hsl(fg2)}, - rustCommentLineDoc {SpecialComment}, - rustDefault {fg = hsl(aqua)}, - - -- ocaml - ocamlOperator {fg = hsl(fg1)}, - ocamlKeyChar {fg = hsl(orange)}, - ocamlArrow {fg = hsl(orange)}, - ocamlInfixOpKeyword {fg = hsl(red)}, - ocamlConstructor {fg = hsl(orange)}, - - -- coc.nvim - CocErrorSign {fg = hsl(red), bg = hsl(sign_column)}, - CocWarningSign {fg = hsl(orange), bg = hsl(sign_column)}, - CocInfoSign {fg = hsl(blue), bg = hsl(sign_column)}, - CocHintSign {fg = hsl(aqua), bg = hsl(sign_column)}, - CocErrorFloat {fg = hsl(red)}, - CocWarningFloat {fg = hsl(orange)}, - CocInfoFloat {fg = hsl(blue)}, - CocHintFloat {fg = hsl(aqua)}, - CocDiagnosticsError {fg = hsl(red)}, - CocDiagnosticsWarning {fg = hsl(orange)}, - CocDiagnosticsInfo {fg = hsl(blue)}, - CocDiagnosticsHint {fg = hsl(aqua)}, - CocSelectedText {fg = hsl(red)}, - CocCodeLens {fg = hsl(gray)}, - CocErrorHighlight {fg = hsl(red), gui = styles.underline}, - CocWarningHighlight {fg = hsl(orange), gui = styles.underline}, - CocInfoHighlight {fg = hsl(blue), gui = styles.underline}, - CocHintHighlight {fg = hsl(aqua), gui = styles.underline}, - - -- nerdtree - NERDTreeDir {fg = hsl(aqua)}, - NERDTreeDirSlash {fg = hsl(aqua)}, - NERDTreeOpenable {fg = hsl(orange)}, - NERDTreeClosable {fg = hsl(orange)}, - NERDTreeFile {fg = hsl(fg1)}, - NERDTreeExecFile {fg = hsl(yellow)}, - NERDTreeUp {fg = hsl(gray)}, - NERDTreeCWD {fg = hsl(green)}, - NERDTreeHelp {fg = hsl(fg1)}, - NERDTreeToggleOn {fg = hsl(green)}, - NERDTreeToggleOff {fg = hsl(red)}, - - -- vim dirvish - DirvishPathTail {fg = hsl(aqua)}, - DirvishArg {fg = hsl(yellow)}, - - -- ale.vim - ALEError {fg = hsl(red), gui = styles.underline}, - ALEWarning {fg = hsl(yellow), gui = styles.underline}, - ALEInfo {fg = hsl(blue), gui = styles.underline}, - ALEErrorSign {fg = hsl(red), bg = hsl(sign_column)}, - ALEWarningSign {fg = hsl(yellow), bg = hsl(sign_column)}, - ALEInfoSign {fg = hsl(blue), bg = hsl(sign_column)}, - ALEVirtualTextError {fg = hsl(red)}, - ALEVirtualTextWarning {fg = hsl(yellow)}, - ALEVirtualTextInfo {fg = hsl(blue)}, - - -- BufTabLine - BufTabLineCurrent {fg = hsl(bg0), bg = hsl(fg4)}, - BufTabLineActive {fg = hsl(fg4), bg = hsl(bg2)}, - BufTabLineHidden {fg = hsl(bg4), bg = hsl(bg1)}, - BufTabLineFill {fg = hsl(bg0), bg = hsl(bg0)}, - - -- fzf - Fzf1 {fg = hsl(blue), bg = hsl(bg1)}, - Fzf2 {fg = hsl(orange), bg = hsl(bg1)}, - Fzf3 {fg = hsl(fg4), bg = hsl(bg1)}, - - -- ctrlP - CtrlPMatch {fg = hsl(yellow)}, - CtrlPNoEntries {fg = hsl(red)}, - CtrlPPrtBase {fg = hsl(bg2)}, - CtrlPPrtCursor {fg = hsl(blue)}, - CtrlPLinePre {fg = hsl(bg2)}, - CtrlPMode1 {fg = hsl(blue), bg = hsl(bg2), gui = styles.bold}, - CtrlPMode2 {fg = hsl(bg0), bg = hsl(blue), gui = styles.bold}, - CtrlPStats {fg = hsl(fg4), bg = hsl(bg2), gui = styles.bold}, - - -- showmarks - ShowMarksHLl {fg = hsl(blue), bg = hsl(sign_column)}, - ShowMarksHLu {fg = hsl(blue), bg = hsl(sign_column)}, - ShowMarksHLo {fg = hsl(blue), bg = hsl(sign_column)}, - ShowMarksHLm {fg = hsl(blue), bg = hsl(sign_column)}, - - -- signature - SignatureMarkText {fg = hsl(blue), bg = hsl(sign_column)}, - SignatureMarkerText {fg = hsl(purple), bg = hsl(sign_column)}, - - -- gitgutter - GitGutterAdd {fg = hsl(green), bg = hsl(sign_column)}, - GitGutterChange {fg = hsl(aqua), bg = hsl(sign_column)}, - GitGutterDelete {fg = hsl(red), bg = hsl(sign_column)}, - GitGutterChangeDelete {fg = hsl(aqua), bg = hsl(sign_column)}, - - -- gitcommit - gitcommitSelectedFile {fg = hsl(green)}, - gitcommitDiscardedFile {fg = hsl(red)}, - } -end) - -return theme -- cgit v1.2.3 From 655c8401c97d3fff618d6e5dfd2c75f98cd83997 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Wed, 24 Feb 2021 11:33:34 -0300 Subject: adding more plugin support - fix italic comments and strings options --- README.md | 4 ++- colors/gruvbox.vim | 2 -- lua/gruvbox/init.lua | 72 ++++++++++++++++++++++++++++++++++++++++++++-------- 3 files changed, 64 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 35e3645..c75d257 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,11 @@ vim.cmd([[ colorscheme gruvbox]]) all `g:gruvbox_` configs are the same [as the original one](https://github.com/morhetz/gruvbox/wiki/Configuration) except for `g:gruvbox_guisp_fallback` -# Supported plugins +# Additional supported plugins - [vim-signify](https://github.com/mhinz/vim-signify) - [vim-startify](https://github.com/mhinz/vim-startify) +- [lspsaga.nvim](https://github.com/glepnir/lspsaga.nvim) +- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) More to be added.. diff --git a/colors/gruvbox.vim b/colors/gruvbox.vim index 6b3a644..432b264 100644 --- a/colors/gruvbox.vim +++ b/colors/gruvbox.vim @@ -1,4 +1,2 @@ -" let g:colors_name="gruvbox" -" reloading colors lua package.loaded["gruvbox"] = nil lua require("lush")(require("gruvbox")) diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua index 8259aa6..1599161 100644 --- a/lua/gruvbox/init.lua +++ b/lua/gruvbox/init.lua @@ -178,12 +178,12 @@ if vim.g.gruvbox_tabline_sel then tabline_sel = colors[vim.g.gruvbox_tabline_sel] end -local italic_comments = settings.italic +local italic_comments = styles.italic if not vim.g.gruvbox_italicize_comments then - italic_comments = nil + italic_comments = "" end -local italic_strings +local italic_strings = "NONE" if vim.g.gruvbox_italicize_strings then italic_strings = styles.italic end @@ -249,7 +249,7 @@ local theme = lush(function() DiffText {fg = hsl(yellow), bg = hsl(bg1), gui = invert_signs}, ErrorMsg {fg = hsl(bg0), bg = hsl(red), gui = styles.bold}, VertSplit {fg = hsl(bg3), bgb = hsl(vert_split)}, - Folded {fg = hsl(gray), bg = hsl(bg1), gui = styles.italic}, + Folded {fg = hsl(gray), bg = hsl(bg1), gui = italic_strings}, FoldColumn {fg = hsl(gray), bg = hsl(bg1)}, SignColumn {bg = hsl(sign_column)}, IncSearch {fg = hsl(hls_cursor), bg = hsl(bg0), gui = styles.inverse}, @@ -310,14 +310,15 @@ local theme = lush(function() SpecialChar {fg = hsl(red)}, Tag {fg = hsl(aqua), gui = styles.bold}, Delimiter {fg = hsl(fg0)}, - SpecialComment {fg = hsl(gray), gui = styles.italic}, + Comment {fg = hsl(gray), gui = italic_comments}, + SpecialComment {fg = hsl(gray), gui = styles.bold .. "," .. italic_comments}, Debug {fg = hsl(red)}, Underlined {gui = styles.underline}, Bold {gui = styles.bold}, Italic {gui = styles.italic}, Ignore {}, Error {fg = hsl(red), gui = styles.bold .. "," .. styles.underline}, -- TODO: check if we have some abstraction to merge two styles - Todo {fg = hsl(fg0), gui = styles.bold .. "," .. styles.italic}, + Todo {fg = hsl(fg0), gui = styles.bold .. "," .. italic_comments}, -- LSP LspDiagnosticsError {Error}, @@ -385,7 +386,7 @@ local theme = lush(function() TSAnnotation {PreProc}, TSText {TSNone}, TSStrong {gui = styles.bold}, - TSEmphasis {gui = styles.italic}, + TSEmphasis {gui = italic_strings}, TSUnderline {gui = styles.underline}, TSTitle {Title}, TSLiteral {String}, @@ -538,12 +539,12 @@ local theme = lush(function() htmlLink {fg = hsl(fg4), gui = styles.underline}, htmlBold {fg = hsl(fg1), gui = styles.bold}, htmlBoldUnderline {fg = hsl(fg1), gui = styles.bold .. "," .. styles.underline}, - htmlBoldItalic {fg = hsl(fg1), gui = styles.bold .. "," .. styles.italic}, + htmlBoldItalic {fg = hsl(fg1), gui = styles.bold .. "," .. italic_strings}, htmlBoldUnderlineItalic { fg = hsl(fg1), - gui = styles.bold .. "," .. styles.underline .. "," .. styles.italic, + gui = styles.bold .. "," .. styles.underline .. "," .. italic_strings, }, - htmlItalic {fg = hsl(fg1), gui = styles.italic}, + htmlItalic {fg = hsl(fg1), gui = italic_strings}, -- special diffs diffAdded {fg = hsl(green)}, @@ -751,7 +752,7 @@ local theme = lush(function() scalaInterpolation {fg = hsl(aqua)}, -- markdown - markdownItalic {fg = hsl(fg3), gui = styles.italic}, + markdownItalic {fg = hsl(fg3), gui = italic_strings}, markdownH1 {fg = hsl(green), gui = styles.bold}, markdownH2 {markdownH1}, markdownH3 {fg = hsl(yellow), gui = styles.bold}, @@ -942,6 +943,55 @@ local theme = lush(function() -- gitcommit gitcommitSelectedFile {fg = hsl(green)}, gitcommitDiscardedFile {fg = hsl(red)}, + + -- lspsaga + LspSagaDiagnosticBorder {NormalNC}, + LspSagaDiagnosticHeader {fg = hsl(red)}, + LspSagaDiagnosticTruncateLine {NormalNC}, + LspFloatWinBorder {NormalNC}, + LspSagaBorderTitle {Title}, + TargetWord {Error}, + ReferencesCount {Title}, + ReferencesIcon {Special}, + DefinitionCount {Title}, + TargetFileName {Comment}, + DefinitionIcon {Special}, + ProviderTruncateLine {NormalNC}, + SagaShadow {bg = hsl(bg0)}, + LspSagaFinderSelection {Search}, + DiagnosticTruncateLine {NormalNC}, + DiagnosticError {LspDiagnosticsError}, + DiagnosticWarning {LspDiagnosticsWarning}, + DiagnosticInformation {LspDiagnosticsInformation}, + DiagnosticHint {LspDiagnosticsHint}, + DefinitionPreviewTitle {Title}, + LspSagaShTruncateLine {NormalNC}, + LspSagaDocTruncateLine {NormalNC}, + LineDiagTuncateLine {NormalNC}, + LspSagaCodeActionTitle {Title}, + LspSagaCodeActionTruncateLine {NormalNC}, + LspSagaCodeActionContent {Normal}, + LspSagaRenamePromptPrefix {fg = hsl(fg2)}, + LspSagaRenameBorder {gui = styles.bold}, + LspSagaHoverBorder {gui = styles.bold}, + LspSagaSignatureHelpBorder {gui = styles.bold}, + LspSagaCodeActionBorder {gui = styles.bold}, + LspSagaAutoPreview {}, + LspSagaDefPreviewBorder {gui = styles.bold}, + LspLinesDiagBorder {gui = styles.bold}, + + -- telescope + TelescopeSelection {fg = hsl(orange), gui = styles.bold}, + TelescopeSlectionCaret {fg = hsl(red)}, + TelescopeMultiSelection {fg = hsl(gray)}, + TelescopeNormal {fg = hsl(fg1)}, + TelescopeBorder {TelescopeNormal}, + TelescopePromptBorder {TelescopeNormal}, + TelescopeResultsBorder {TelescopeNormal}, + TelescopePreviewBorder {TelescopeNormal}, + TelescopeMatching {fg = hsl(blue)}, + TelescopePromptPrefix {fg = hsl(red)}, + TelescopePrompt {TelescopeNormal}, } end) -- cgit v1.2.3 From 33e0dfaba8944e428dfe55f68381c607d87dce9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Wed, 24 Feb 2021 11:33:57 -0300 Subject: adding terminal_color_* #8 --- lua/gruvbox/init.lua | 39 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua index 1599161..5fb17e9 100644 --- a/lua/gruvbox/init.lua +++ b/lua/gruvbox/init.lua @@ -195,35 +195,22 @@ if not vim.g.gruvbox_improved_strings then special_string = {fg = hsl(green), gui = italic_strings} end ---[[ - let g:terminal_color_0 = s:gb.bg0[0] - let g:terminal_color_8 = s:gb.gray[0] - - let g:terminal_color_1 = s:gb.neutral_red[0] - let g:terminal_color_9 = s:gb.red[0] - - let g:terminal_color_2 = s:gb.neutral_green[0] - let g:terminal_color_10 = s:gb.green[0] - - let g:terminal_color_3 = s:gb.neutral_yellow[0] - let g:terminal_color_11 = s:gb.yellow[0] - - let g:terminal_color_4 = s:gb.neutral_blue[0] - let g:terminal_color_12 = s:gb.blue[0] - - let g:terminal_color_5 = s:gb.neutral_purple[0] - let g:terminal_color_13 = s:gb.purple[0] - - let g:terminal_color_6 = s:gb.neutral_aqua[0] - let g:terminal_color_14 = s:gb.aqua[0] - - let g:terminal_color_7 = s:gb.fg4[0] - let g:terminal_color_15 = s:gb.fg1[0] - ]] - +-- neovim terminal mode colors vim.g.terminal_color_0 = hsl(bg0) vim.g.terminal_color_8 = hsl(gray) vim.g.terminal_color_1 = hsl(colors.neutral_red) +vim.g.terminal_color_2 = hsl(red) +vim.g.terminal_color_10 = hsl(green) +vim.g.terminal_color_3 = hsl(colors.neutral_yellow) +vim.g.terminal_color_11 = hsl(yellow) +vim.g.terminal_color_4 = hsl(colors.neutral_blue) +vim.g.terminal_color_12 = hsl(blue) +vim.g.terminal_color_5 = hsl(colors.neutral_purple) +vim.g.terminal_color_13 = hsl(purple) +vim.g.terminal_color_6 = hsl(colors.neutral_aqua) +vim.g.terminal_color_14 = hsl(aqua) +vim.g.terminal_color_7 = hsl(fg4) +vim.g.terminal_color_15 = hsl(fg1) local theme = lush(function() return { -- cgit v1.2.3