From c1e806e1e16ec4c098ca4ee0a82517522117f07b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Tue, 3 Nov 2020 01:27:32 -0300 Subject: lots of fixes. adding more highlights --- lua/gruvbox.lua | 239 +++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 148 insertions(+), 91 deletions(-) (limited to 'lua/gruvbox.lua') diff --git a/lua/gruvbox.lua b/lua/gruvbox.lua index 6d5872d..6d75897 100644 --- a/lua/gruvbox.lua +++ b/lua/gruvbox.lua @@ -1,7 +1,7 @@ local Color, colors, Group, groups, styles = require("colorbuddy").setup() -- color palette -local dark = { +local palette = { dark0_hard = "#1d2021", dark0 = "#282828", dark0_soft = "#32302f", @@ -9,9 +9,6 @@ local dark = { dark2 = "#504945", dark3 = "#665c54", dark4 = "#7c6f64", -} - -local light = { light0_hard = "#f9f5d7", light0 = "#fbf1c7", light0_soft = "#f2e5bc", @@ -19,17 +16,6 @@ local light = { light2 = "#d5c4a1", light3 = "#bdae93", light4 = "#a89984", -} - -for k, item in pairs(dark) do - Color.new(k, item) -end - -for k, item in pairs(light) do - Color.new(k, item) -end - -local bright_colors = { bright_red = "#fb4934", bright_green = "#b8bb26", bright_yellow = "#fabd2f", @@ -37,13 +23,6 @@ local bright_colors = { bright_purple = "#d3869b", bright_aqua = "#8ec07c", bright_orange = "#fe8019", -} - -for k, item in pairs(bright_colors) do - Color.new(k, item) -end - -local neutral_colors = { neutral_red = "#cc241d", neutral_green = "#98971a", neutral_yellow = "#d79921", @@ -51,13 +30,6 @@ local neutral_colors = { neutral_purple = "#b16286", neutral_aqua = "#689d6a", neutral_orange = "#d65d0e", -} - -for k, item in pairs(neutral_colors) do - Color.new(k, item) -end - -local faded_colors = { faded_red = "#9d0006", faded_green = "#79740e", faded_yellow = "#b57614", @@ -67,7 +39,7 @@ local faded_colors = { faded_orange = "#af3a03", } -for k, item in pairs(faded_colors) do +for k, item in pairs(palette) do Color.new(k, item) end @@ -75,7 +47,6 @@ Color.new("gray", "#928374") -- options -- TODO(ellisonleao) handle light vs dark modes -local sign_column = colors.dark1 local bg0 = colors.dark0_hard local bg1 = colors.dark1 @@ -96,24 +67,79 @@ 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 = { + bold = true, + italic = true, + undercurl = true, + underline = true, + inverse = true, + improved_strings = false, + improved_warnings = false, + invert = false, + invert_signs = false, + invert_selection = true, + invert_tabline = false, + italicize_comments = true, + italicize_strings = false, +} --- vim.g vars -local function get_or_set_default(option, default) - -- TODO(ellisonleao) validate inputs - local key = "gruvbox_" .. option - if vim.g[key] ~= nil then - return vim.g[key] +-- 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 + +local sign_column = bg1 + +local hls_cursor = orange +if vim.g.gruvbox_hls_cursor ~= nil then + hls_cursor = colors[vim.g.gruvbox_hls_cursor] +end + +local number_column = styles.none +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 - return default +local invert_tabline +if vim.g.gruvbox_invert_tabline then + invert_tabline = styles.inverse end --- g:gruvbox_* options -local hls_cursor = get_or_set_default("hls_cursor", orange) -local vert_split = get_or_set_default("vert_split", bg0) -local color_column = get_or_set_default("color_column", bg1) -local number_column = get_or_set_default("number_column", nil) -local improved_strings = get_or_set_default("improved_strings", nil) +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) @@ -122,6 +148,7 @@ 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) @@ -131,54 +158,48 @@ Group.new("GruvboxBg3", bg3) Group.new("GruvboxBg4", bg4) -- color groups -Group.new("GruvboxRed", red) -Group.new("GruvboxRedBold", red, nil, styles.bold) - -Group.new("GruvboxGreen", green) -Group.new("GruvboxGreenBold", green, nil, styles.bold) - -Group.new("GruvboxYellow", yellow) -Group.new("GruvboxYellowBold", yellow, nil, styles.bold) - -Group.new("GruvboxBlue", blue) -Group.new("GruvboxBlueBold", blue, nil, styles.bold) - -Group.new("GruvboxPurple", purple) -Group.new("GruvboxPurpleBold", purple, nil, styles.bold) - 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("GruvboxRedSign", red, sign_column, styles.inverse) -Group.new("GruvboxGreenSign", green, sign_column, styles.inverse) -Group.new("GruvboxYellowSign", yellow, sign_column, styles.inverse) -Group.new("GruvboxBlueSign", blue, sign_column, styles.inverse) -Group.new("GruvboxPurpleSign", purple, sign_column, styles.inverse) -Group.new("GruvboxAquaSign", aqua, sign_column, styles.inverse) -Group.new("GruvboxOrangeSign", orange, sign_column, styles.inverse) +Group.new("GruvboxAquaSign", aqua, bg1, invert_signs) +Group.new("GruvboxBlueSign", blue, bg1, invert_signs) +Group.new("GruvboxGreenSign", green, bg1, invert_signs) +Group.new("GruvboxOrangeSign", orange, bg1, invert_signs) +Group.new("GruvboxPurpleSign", purple, bg1, invert_signs) +Group.new("GruvboxRedSign", red, bg1, invert_signs) +Group.new("GruvboxYellowSign", yellow, bg1, invert_signs) -- base highlight groups Group.new("Normal", fg1, bg0) -Group.new("Visual", nil, bg3, styles.inverse) -Group.new("VisualNOS", groups.Visual) Group.new("CursorLine", nil, bg1) Group.new("CursorColumn", groups.CursorLine) -Group.new("ColorColumn", color_column) -Group.new("CursorLineNr", yellow, bg1) -Group.new("TabLineFill", bg4, bg1, styles.inverse) -Group.new("TabLineSel", green, bg1, styles.inverse) +Group.new("TabLineFill", bg4, bg1, invert_tabline) +Group.new("TabLineSel", green, bg1, invert_tabline) Group.new("TabLine", 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) Group.new("SpecialKey", groups.GruvboxBg2) -Group.new("Underlined", blue, nil, styles.underline) +Group.new("Visual", nil, bg3, invert_selection) +Group.new("VisualNOS", groups.Visual) Group.new("Search", yellow, bg0, styles.inverse) Group.new("IncSearch", yellow, hls_cursor, styles.inverse) +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) @@ -190,25 +211,27 @@ Group.new("MoreMsg", groups.GruvboxYellowBold) Group.new("ModeMsg", groups.GruvboxYellowBold) Group.new("Question", groups.GruvboxOrangeBold) Group.new("WarningMsg", groups.GruvboxRedBold) -Group.new("LineNr", bg4, number_column) +Group.new("LineNr", bg4, nil) Group.new("SignColumn", bg4, sign_column) Group.new("Folded", colors.gray, bg1, styles.italic) Group.new("FoldColumn", colors.gray, bg1) + Group.new("Cursor", nil, nil, styles.inverse) -Group.new("vCursor", groups.Cursor) Group.new("iCursor", groups.Cursor) Group.new("lCursor", groups.Cursor) +Group.new("vCursor", groups.Cursor) -- Syntax highlight -if improved_strings == nil then - Group.new("Special", groups.GruvboxOrange) - Group.new("String", green, nil, styles.italic) +if vim.g.gruvbox_improved_strings then + Group.new("Special", bg0, orange, styles.italic) + Group.new("String", fg1, bg0, italic_strings) else - Group.new("Special", orange, bg1, styles.italic) - Group.new("String", fg1, bg1, styles.italic) + Group.new("Special", groups.GruvboxOrange) + Group.new("String", green, nil, italic_strings) end -Group.new("Comment", colors.gray, nil, styles.italic) +-- TODO(ellisonleao) +Group.new("Comment", colors.gray, nil, nil, italic_comments) Group.new("Todo", fg0, bg0, styles.bold, styles.italic) Group.new("Error", red, bg0, styles.bold, styles.inverse) Group.new("Statement", groups.GruvboxRed) @@ -235,14 +258,48 @@ Group.new("StorageClass", groups.GruvboxYellow) Group.new("Structure", groups.GruvboxYellow) Group.new("Typedef", groups.GruvboxYellow) --- Plugin specific +-- Completion menu +Group.new("Pmenu", fg1, bg2) +Group.new("PmenuSel", bg2, blue, styles.bold) +Group.new("PmenuSbar", nil, bg2) +Group.new("PmenuThumb", nil, bg4) --- GitGutter -Group.new("GitGutterAdd", groups.GruvboxGreenSign) -Group.new("GitGutterChange", groups.GruvboxAquaSign) -Group.new("GitGutterDelete", groups.GruvboxRedSign) -Group.new("GitGutterChangeDelete", groups.GruvboxAquaSign) +-- Diffs +Group.new("DiffChange", aqua, bg0, styles.inverse) +Group.new("DiffText", yellow, bg0, styles.inverse) --- gitcommit -Group.new("gitcommitSelectedFile", groups.GruvboxGreen) -Group.new("gitcommitDiscardedFile", groups.GruvboxRed) +-- Spelling +-- TODO(ellisonleao) + +-- Plugin specific +-- (ellisonleao) addings the ones i am using for now + +-- vim-signify +Group.new("SignifySignAdd", groups.GruvboxGreenSign) +Group.new("SignifySignChange", groups.GruvboxAquaSign) +Group.new("SignifySignDelete", groups.GruvboxRedSign) + +-- vim-startify +Group.new("StartifyBracket", groups.GruvboxFg3) +Group.new("StartifyFile", groups.GruvboxFg1) +Group.new("StartifyNumber", groups.GruvboxBlue) +Group.new("StartifyPath", groups.GruvboxGray) +Group.new("StartifySlash", groups.GruvboxGray) +Group.new("StartifySection", groups.GruvboxYellow) +Group.new("StartifySpecial", groups.GruvboxBg2) +Group.new("StartifyHeader", groups.GruvboxOrange) +Group.new("StartifyFooter", groups.GruvboxBg2) + +-- netrw +Group.new("netrwDir", groups.GruvboxAqua) +Group.new("netrwClassify", groups.GruvboxAqua) +Group.new("netrwLink", groups.GruvboxGray) +Group.new("netrwSymLink", groups.GruvboxFg1) +Group.new("netrwExe", groups.GruvboxYellow) +Group.new("netrwComment", groups.GruvboxGray) +Group.new("netrwList", groups.GruvboxBlue) +Group.new("netrwHelpCmd", groups.GruvboxAqua) +Group.new("netrwCmdSep", groups.GruvboxFg3) +Group.new("netrwVersion", groups.GruvboxGreen) + +-- filetype specific -- cgit v1.2.3