From 9c909bd909d34a7f2d381cbe5e2012d1cdbf0b4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ellison=20Lea=CC=83o?= Date: Wed, 24 Mar 2021 23:58:45 -0300 Subject: new folder structure --- lua/gruvbox/base.lua | 269 ++++++++++ lua/gruvbox/init.lua | 998 +------------------------------------ lua/gruvbox/languages.lua | 429 ++++++++++++++++ lua/gruvbox/plugins/highlights.lua | 231 +++++++++ lua/gruvbox/settings.lua | 88 ++++ lua/gruvbox/utils.lua | 11 + 6 files changed, 1036 insertions(+), 990 deletions(-) create mode 100644 lua/gruvbox/base.lua create mode 100644 lua/gruvbox/languages.lua create mode 100644 lua/gruvbox/plugins/highlights.lua create mode 100644 lua/gruvbox/settings.lua create mode 100644 lua/gruvbox/utils.lua (limited to 'lua') diff --git a/lua/gruvbox/base.lua b/lua/gruvbox/base.lua new file mode 100644 index 0000000..e6d0eca --- /dev/null +++ b/lua/gruvbox/base.lua @@ -0,0 +1,269 @@ +local lush = require("lush") +local convert = require("lush.hsl.convert") +local colors = require("gruvbox.colors") +local styles = require("gruvbox.settings").styles +local utils = require("gruvbox.utils") +local hsl = lush.hsl + +-- 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 gray = colors.gray +local sign_column = bg1 + +-- 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 = hsl(colors[vim.g.gruvbox_hls_cursor]) +end + +local hls_highlight = yellow +if vim.g.gruvbox_hls_cursor ~= nil then + hls_highlight = hsl(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 = hsl(colors[vim.g.gruvbox_color_column]) +end + +local vert_split = bg0 +if vim.g.gruvbox_vert_split ~= nil then + vert_split = hsl(colors[vim.g.gruvbox_vert_split]) +end + +local tabline_sel = green +if utils.tobool(vim.g.gruvbox_tabline_sel) then + tabline_sel = hsl(colors[vim.g.gruvbox_tabline_sel]) +end + +local improved_strings_fg = fg1 +local improved_strings_bg = bg1 +local improved_strings_gui = styles.italic_strings + +local special_string_fg = orange +local special_string_bg = bg1 +local special_string_gui = styles.italic_strings + +if not vim.g.gruvbox_improved_strings then + improved_strings_fg = green + improved_strings_bg = nil + + special_string_bg = nil + special_string_gui = nil +end + +-- neovim terminal mode colors +vim.g.terminal_color_0 = convert.hsl_to_hex(bg0) +vim.g.terminal_color_8 = convert.hsl_to_hex(gray) +vim.g.terminal_color_1 = convert.hsl_to_hex(colors.neutral_red) +vim.g.terminal_color_2 = convert.hsl_to_hex(red) +vim.g.terminal_color_10 = convert.hsl_to_hex(green) +vim.g.terminal_color_3 = convert.hsl_to_hex(colors.neutral_yellow) +vim.g.terminal_color_11 = convert.hsl_to_hex(yellow) +vim.g.terminal_color_4 = convert.hsl_to_hex(colors.neutral_blue) +vim.g.terminal_color_12 = convert.hsl_to_hex(blue) +vim.g.terminal_color_5 = convert.hsl_to_hex(colors.neutral_purple) +vim.g.terminal_color_13 = convert.hsl_to_hex(purple) +vim.g.terminal_color_6 = convert.hsl_to_hex(colors.neutral_aqua) +vim.g.terminal_color_14 = convert.hsl_to_hex(aqua) +vim.g.terminal_color_7 = convert.hsl_to_hex(fg4) +vim.g.terminal_color_15 = convert.hsl_to_hex(fg1) + +vim.g.colors_name = "gruvbox" + +local base_group = lush(function() + return { + -- Base groups + GruvboxFg0 {fg = fg0}, + GruvboxFg1 {fg = fg1}, + GruvboxFg2 {fg = fg2}, + GruvboxFg3 {fg = fg3}, + GruvboxFg4 {fg = fg4}, + GruvboxGray {fg = gray}, + GruvboxBg0 {fg = bg0}, + GruvboxBg1 {fg = bg1}, + GruvboxBg2 {fg = bg2}, + GruvboxBg3 {fg = bg3}, + GruvboxBg4 {fg = bg4}, + + GruvboxRed {fg = red}, + GruvboxRedBold {fg = red, gui = styles.bold}, + GruvboxGreen {fg = green}, + GruvboxGreenBold {fg = green, gui = styles.bold}, + GruvboxYellow {fg = yellow}, + GruvboxYellowBold {fg = yellow, gui = styles.bold}, + GruvboxBlue {fg = blue}, + GruvboxBlueBold {fg = blue, gui = styles.bold}, + GruvboxPurple {fg = purple}, + GruvboxPurpleBold {fg = purple, gui = styles.bold}, + GruvboxAqua {fg = aqua}, + GruvboxAquaBold {fg = aqua, gui = styles.bold}, + GruvboxOrange {fg = orange}, + GruvboxOrangeBold {fg = orange, gui = styles.bold}, + + GruvboxRedSign {fg = red, bg = sign_column, gui = styles.invert_signs}, + GruvboxGreenSign {fg = green, bg = sign_column, gui = styles.invert_signs}, + GruvboxYellowSign {fg = yellow, bg = sign_column, gui = styles.invert_signs}, + GruvboxBlueSign {fg = blue, bg = sign_column, gui = styles.invert_signs}, + GruvboxPurpleSign {fg = purple, bg = sign_column, gui = styles.invert_signs}, + GruvboxAquaSign {fg = aqua, bg = sign_column, gui = styles.invert_signs}, + GruvboxOrangeSign {fg = orange, bg = sign_column, gui = styles.invert_signs}, + + GruvboxRedUnderline {gui = styles.undercurl, sp = red}, + GruvboxGreenUnderline {gui = styles.undercurl, sp = green}, + GruvboxYellowUnderline {gui = styles.undercurl, sp = yellow}, + GruvboxBlueUnderline {gui = styles.undercurl, sp = blue}, + GruvboxPurpleUnderline {gui = styles.undercurl, sp = purple}, + GruvboxAquaUnderline {gui = styles.undercurl, sp = aqua}, + GruvboxOrangeUnderline {gui = styles.undercurl, sp = orange}, + + ColorColumn {bg = color_column}, + Conceal {fg = blue}, + Cursor {gui = styles.inverse}, + lCursor {Cursor}, + iCursor {Cursor}, + vCursor {Cursor}, + CursorIM {Cursor}, + CursorLine {bg = bg1}, + CursorColumn {CursorLine}, + Directory {GruvboxRedBold}, + DiffAdd {fg = green, bg = bg0, gui = styles.invert_signs}, + DiffChange {fg = aqua, bg = bg0, gui = styles.invert_signs}, + DiffDelete {fg = red, bg = bg0, gui = styles.invert_signs}, + DiffText {fg = yellow, bg = bg0, gui = styles.invert_signs}, + ErrorMsg {fg = bg0, bg = red, gui = styles.bold}, + VertSplit {fg = bg3, bg = vert_split}, + Folded {fg = gray, bg = bg1, gui = styles.italic_strings}, + FoldColumn {fg = gray, bg = bg1}, + SignColumn {bg = sign_column}, + IncSearch {fg = hls_cursor, bg = bg0, gui = styles.inverse}, + LineNr {fg = bg4, bg = number_column}, + CursorLineNr {fg = yellow, bg = bg1}, + MatchParen {bg = bg3, gui = styles.bold}, + ModeMsg {GruvboxYellowBold}, + MoreMsg {GruvboxYellowBold}, + NonText {GruvboxBg2}, + Normal {fg = fg1, bg = bg0}, + NormalFloat {Normal}, + NormalNC {Normal}, + Pmenu {fg = fg1, bg = bg2}, + PmenuSel {fg = bg2, bg = blue, gui = styles.bold}, + PmenuSbar {bg = bg2}, + PmenuThumb {bg = bg4}, + Question {GruvboxOrangeBold}, + QuickFixLine {fg = bg0, bg = yellow, gui = styles.bold}, + Search {fg = hls_highlight, bg = bg0, gui = styles.inverse}, + SpecialKey {GruvboxFg4}, + SpellRare {GruvboxPurpleUnderline}, + SpellBad {GruvboxRedUnderline}, + StatusLine {fg = bg2, bg = fg1, gui = styles.inverse}, + StatusLineNC {fg = bg1, bg = fg4, gui = styles.inverse}, + TabLineFill {fg = bg4, bg = bg1, gui = styles.invert_tabline}, + TabLine {fg = bg4, bg = bg1, gui = styles.invert_tabline}, + TabLineSel {fg = tabline_sel, bg = bg1, gui = styles.invert_tabline}, + Title {GruvboxGreenBold}, + Visual {bg = bg3, gui = styles.invert_selection}, + VisualNOS {Visual}, + WarningMsg {GruvboxRedBold}, + WildMenu {fg = blue, bg = bg2, gui = styles.bold}, + Constant {GruvboxPurple}, + Special {fg = special_string_fg, bg = special_string_bg, gui = special_string_gui}, + String { + fg = improved_strings_fg, + bg = improved_strings_bg, + gui = improved_strings_gui, + }, + Character {GruvboxPurple}, + Number {GruvboxPurple}, + Boolean {GruvboxPurple}, + Float {GruvboxPurple}, + Identifier {GruvboxBlue}, + Function {GruvboxGreenBold}, + Statement {GruvboxRed}, + Conditional {GruvboxRed}, + Repeat {GruvboxRed}, + Label {GruvboxRed}, + Exception {GruvboxRed}, + Keyword {GruvboxRed}, + Operator {GruvboxFg1}, + PreProc {GruvboxAqua}, + Include {GruvboxAqua}, + Define {GruvboxAqua}, + Macro {GruvboxAqua}, + PreCondit {GruvboxAqua}, + Type {GruvboxYellow}, + StorageClass {GruvboxOrange}, + Structure {GruvboxAqua}, + Typedef {GruvboxYellow}, + SpecialChar {GruvboxRed}, + Tag {GruvboxAquaBold}, + Delimiter {GruvboxFg0}, + Comment {fg = gray, gui = styles.italic_comments}, + Debug {GruvboxRed}, + Underlined {fg = blue, gui = styles.underline}, + Bold {gui = styles.bold}, + Italic {gui = styles.italic}, + Ignore {}, + Error {GruvboxRed, gui = styles.bold .. "," .. styles.underline}, + Todo {fg = fg0, gui = styles.bold .. "," .. styles.italic_comments}, + } +end) + +return base_group diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua index cc935b1..cb65fbf 100644 --- a/lua/gruvbox/init.lua +++ b/lua/gruvbox/init.lua @@ -1,994 +1,12 @@ local lush = require("lush") -local convert = require("lush.hsl.convert") -local colors = require("gruvbox.colors") -local hsl = lush.hsl +local base = require("gruvbox.base") +local plugins = require("gruvbox.plugins.highlights") +local languages = require("gruvbox.languages") --- 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 specs = {base, languages, plugins} +local spec = lush.merge(specs) -local fg0 = colors.light0 -local fg1 = colors.light1 -local fg2 = colors.light2 -local fg3 = colors.light3 -local fg4 = colors.light4 +-- checking if user has lightline and adding support +require("gruvbox.plugins.lightline").start(spec) -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 gray = colors.gray -local sign_column = bg1 - --- global settings -local settings = { - contrast_dark = "medium", - contrart_light = "medium", - bold = true, - italic = true, - undercurl = true, - underline = true, - inverse = true, - improved_strings = false, - improved_warnings = false, - invert_signs = false, - invert_selection = true, - invert_tabline = false, - italicize_comments = true, - italicize_strings = false, - invert_intend_guides = 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 - -local function tobool(val) - if val == 0 or not val then - return false - end - return true -end - --- styles check -if not tobool(vim.g.gruvbox_bold) then - styles.bold = "" -end - -if not tobool(vim.g.gruvbox_underline) then - styles.underline = "" -end - -if not tobool(vim.g.gruvbox_italic) then - styles.italic = "" -end - -if not tobool(vim.g.gruvbox_inverse) then - styles.inverse = "" -end - -if not tobool(vim.g.gruvbox_inverse) then - styles.inverse = "" -end - -if not tobool(vim.g.gruvbox_undercurl) then - styles.undercurl = "" -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 = hsl(colors[vim.g.gruvbox_hls_cursor]) -end - -local hls_highlight = yellow -if vim.g.gruvbox_hls_cursor ~= nil then - hls_highlight = hsl(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 = hsl(colors[vim.g.gruvbox_color_column]) -end - -local vert_split = bg0 -if vim.g.gruvbox_vert_split ~= nil then - vert_split = hsl(colors[vim.g.gruvbox_vert_split]) -end - -local invert_signs -if tobool(vim.g.gruvbox_invert_signs) then - invert_signs = styles.inverse -end - -local invert_selection = styles.inverse -if not tobool(vim.g.gruvbox_invert_selection) then - invert_selection = "NONE" -end - -local invert_tabline -if tobool(vim.g.gruvbox_invert_tabline) then - invert_tabline = styles.inverse -end - -local tabline_sel = green -if tobool(vim.g.gruvbox_tabline_sel) then - tabline_sel = hsl(colors[vim.g.gruvbox_tabline_sel]) -end - -local italic_comments = styles.italic -if not tobool(vim.g.gruvbox_italicize_comments) then - italic_comments = "NONE" -end - -local italic_strings = "NONE" -if tobool(vim.g.gruvbox_italicize_strings) then - italic_strings = styles.italic -end - -local improved_strings_fg = fg1 -local improved_strings_bg = bg1 -local improved_strings_gui = italic_strings - -local special_string_fg = orange -local special_string_bg = bg1 -local special_string_gui = italic_strings - -if not vim.g.gruvbox_improved_strings then - improved_strings_fg = green - improved_strings_bg = nil - - special_string_bg = nil - special_string_gui = nil -end - --- neovim terminal mode colors -vim.g.terminal_color_0 = convert.hsl_to_hex(bg0) -vim.g.terminal_color_8 = convert.hsl_to_hex(gray) -vim.g.terminal_color_1 = convert.hsl_to_hex(colors.neutral_red) -vim.g.terminal_color_2 = convert.hsl_to_hex(red) -vim.g.terminal_color_10 = convert.hsl_to_hex(green) -vim.g.terminal_color_3 = convert.hsl_to_hex(colors.neutral_yellow) -vim.g.terminal_color_11 = convert.hsl_to_hex(yellow) -vim.g.terminal_color_4 = convert.hsl_to_hex(colors.neutral_blue) -vim.g.terminal_color_12 = convert.hsl_to_hex(blue) -vim.g.terminal_color_5 = convert.hsl_to_hex(colors.neutral_purple) -vim.g.terminal_color_13 = convert.hsl_to_hex(purple) -vim.g.terminal_color_6 = convert.hsl_to_hex(colors.neutral_aqua) -vim.g.terminal_color_14 = convert.hsl_to_hex(aqua) -vim.g.terminal_color_7 = convert.hsl_to_hex(fg4) -vim.g.terminal_color_15 = convert.hsl_to_hex(fg1) - -local groups = lush(function() - return { - -- Base groups - GruvboxFg0 {fg = fg0}, - GruvboxFg1 {fg = fg1}, - GruvboxFg2 {fg = fg2}, - GruvboxFg3 {fg = fg3}, - GruvboxFg4 {fg = fg4}, - GruvboxGray {fg = gray}, - GruvboxBg0 {fg = bg0}, - GruvboxBg1 {fg = bg1}, - GruvboxBg2 {fg = bg2}, - GruvboxBg3 {fg = bg3}, - GruvboxBg4 {fg = bg4}, - - GruvboxRed {fg = red}, - GruvboxRedBold {fg = red, gui = styles.bold}, - GruvboxGreen {fg = green}, - GruvboxGreenBold {fg = green, gui = styles.bold}, - GruvboxYellow {fg = yellow}, - GruvboxYellowBold {fg = yellow, gui = styles.bold}, - GruvboxBlue {fg = blue}, - GruvboxBlueBold {fg = blue, gui = styles.bold}, - GruvboxPurple {fg = purple}, - GruvboxPurpleBold {fg = purple, gui = styles.bold}, - GruvboxAqua {fg = aqua}, - GruvboxAquaBold {fg = aqua, gui = styles.bold}, - GruvboxOrange {fg = orange}, - GruvboxOrangeBold {fg = orange, gui = styles.bold}, - - GruvboxRedSign {fg = red, bg = sign_column, gui = invert_signs}, - GruvboxGreenSign {fg = green, bg = sign_column, gui = invert_signs}, - GruvboxYellowSign {fg = yellow, bg = sign_column, gui = invert_signs}, - GruvboxBlueSign {fg = blue, bg = sign_column, gui = invert_signs}, - GruvboxPurpleSign {fg = purple, bg = sign_column, gui = invert_signs}, - GruvboxAquaSign {fg = aqua, bg = sign_column, gui = invert_signs}, - GruvboxOrangeSign {fg = orange, bg = sign_column, gui = invert_signs}, - - GruvboxRedUnderline {gui = styles.undercurl, sp = red}, - GruvboxGreenUnderline {gui = styles.undercurl, sp = green}, - GruvboxYellowUnderline {gui = styles.undercurl, sp = yellow}, - GruvboxBlueUnderline {gui = styles.undercurl, sp = blue}, - GruvboxPurpleUnderline {gui = styles.undercurl, sp = purple}, - GruvboxAquaUnderline {gui = styles.undercurl, sp = aqua}, - GruvboxOrangeUnderline {gui = styles.undercurl, sp = orange}, - - ColorColumn {bg = color_column}, - Conceal {fg = blue}, - Cursor {gui = styles.inverse}, - lCursor {Cursor}, - iCursor {Cursor}, - vCursor {Cursor}, - CursorIM {Cursor}, - CursorLine {bg = bg1}, - CursorColumn {CursorLine}, - Directory {GruvboxRedBold}, - DiffAdd {fg = green, bg = bg0, gui = invert_signs}, - DiffChange {fg = aqua, bg = bg0, gui = invert_signs}, - DiffDelete {fg = red, bg = bg0, gui = invert_signs}, - DiffText {fg = yellow, bg = bg0, gui = invert_signs}, - ErrorMsg {fg = bg0, bg = red, gui = styles.bold}, - VertSplit {fg = bg3, bg = vert_split}, - Folded {fg = gray, bg = bg1, gui = italic_strings}, - FoldColumn {fg = gray, bg = bg1}, - SignColumn {bg = sign_column}, - IncSearch {fg = hls_cursor, bg = bg0, gui = styles.inverse}, - LineNr {fg = bg4, bg = number_column}, - CursorLineNr {fg = yellow, bg = bg1}, - MatchParen {bg = bg3, gui = styles.bold}, - ModeMsg {GruvboxYellowBold}, - MoreMsg {GruvboxYellowBold}, - NonText {GruvboxBg2}, - Normal {fg = fg1, bg = bg0}, - NormalFloat {Normal}, - NormalNC {Normal}, - Pmenu {fg = fg1, bg = bg2}, - PmenuSel {fg = bg2, bg = blue, gui = styles.bold}, - PmenuSbar {bg = bg2}, - PmenuThumb {bg = bg4}, - Question {GruvboxOrangeBold}, - QuickFixLine {fg = bg0, bg = yellow, gui = styles.bold}, - Search {fg = hls_highlight, bg = bg0, gui = styles.inverse}, - SpecialKey {GruvboxFg4}, - SpellRare {GruvboxPurpleUnderline}, - SpellBad {GruvboxRedUnderline}, - StatusLine {fg = bg2, bg = fg1, gui = styles.inverse}, - StatusLineNC {fg = bg1, bg = fg4, gui = styles.inverse}, - TabLineFill {fg = bg4, bg = bg1, gui = invert_tabline}, - TabLine {fg = bg4, bg = bg1, gui = invert_tabline}, - TabLineSel {fg = tabline_sel, bg = bg1, gui = invert_tabline}, - Title {GruvboxGreenBold}, - Visual {bg = bg3, gui = invert_selection}, - VisualNOS {Visual}, - WarningMsg {GruvboxRedBold}, - WildMenu {fg = blue, bg = bg2, gui = styles.bold}, - Constant {GruvboxPurple}, - -- Special {fg = special_string_fg, bg = special_string_bg, gui = special_string_gui}, - Special {fg = special_string_fg, bg = special_string_bg, gui = special_string_gui}, - String { - fg = improved_strings_fg, - bg = improved_strings_bg, - gui = improved_strings_gui, - }, - Character {GruvboxPurple}, - Number {GruvboxPurple}, - Boolean {GruvboxPurple}, - Float {GruvboxPurple}, - Identifier {GruvboxBlue}, - Function {GruvboxGreenBold}, - Statement {GruvboxRed}, - Conditional {GruvboxRed}, - Repeat {GruvboxRed}, - Label {GruvboxRed}, - Exception {GruvboxRed}, - Keyword {GruvboxRed}, - Operator {GruvboxFg1}, - PreProc {GruvboxAqua}, - Include {GruvboxAqua}, - Define {GruvboxAqua}, - Macro {GruvboxAqua}, - PreCondit {GruvboxAqua}, - Type {GruvboxYellow}, - StorageClass {GruvboxOrange}, - Structure {GruvboxAqua}, - Typedef {GruvboxYellow}, - SpecialChar {GruvboxRed}, - Tag {GruvboxAquaBold}, - Delimiter {GruvboxFg0}, - Comment {fg = gray, gui = italic_comments}, - Debug {GruvboxRed}, - Underlined {fg = blue, gui = styles.underline}, - Bold {gui = styles.bold}, - Italic {gui = styles.italic}, - Ignore {}, - Error {GruvboxRed, gui = styles.bold .. "," .. styles.underline}, - Todo {fg = fg0, gui = styles.bold .. "," .. italic_comments}, - -- netrw - netrwDir {GruvboxAqua}, - netrwClassify {GruvboxAqua}, - netrwLink {GruvboxGray}, - netrwSymLink {GruvboxFg1}, - netrwExe {GruvboxYellow}, - netrwComment {GruvboxGray}, - netrwList {GruvboxBlue}, - netrwHelpCmd {GruvboxAqua}, - netrwCmdSep {GruvboxFg3}, - netrwVersion {GruvboxGreen}, - -- golang - goDirective {GruvboxAqua}, - goConstants {GruvboxPurple}, - goDeclaration {GruvboxRed}, - goDeclType {GruvboxBlue}, - goBuiltins {GruvboxOrange}, - -- java - javaAnnotation {GruvboxBlue}, - javaDocTags {GruvboxAqua}, - javaCommentTitle {Comment}, - javaParen {GruvboxFg3}, - javaParen1 {GruvboxFg3}, - javaParen2 {GruvboxFg3}, - javaParen3 {GruvboxFg3}, - javaParen4 {GruvboxFg3}, - javaParen5 {GruvboxFg3}, - javaOperator {GruvboxOrange}, - -- xml - xmlTag {GruvboxAquaBold}, - xmlEndTag {GruvboxAquaBold}, - xmlTagName {GruvboxBlue}, - xmlEqual {GruvboxBlue}, - docbkKeyword {GruvboxAquaBold}, - xmlDocTypeDecl {GruvboxGray}, - xmlDocTypeKeyword {GruvboxPurple}, - xmlCdataStart {GruvboxGray}, - xmlCdataCdata {GruvboxPurple}, - dtdFunction {GruvboxGray}, - dtdTagName {GruvboxPurple}, - xmlAttrib {GruvboxOrange}, - xmlProcessingDelim {GruvboxGray}, - dtdParamEntityPunct {GruvboxGray}, - dtdParamEntityDPunct {GruvboxGray}, - xmlAttribPunct {GruvboxGray}, - xmlEntity {GruvboxRed}, - xmlEntityPunct {GruvboxRed}, - -- viml - vimNotation {GruvboxOrange}, - vimBracket {GruvboxOrange}, - vimMapModKey {GruvboxOrange}, - vimFuncSID {GruvboxFg3}, - vimSetSep {GruvboxFg3}, - vimSep {GruvboxFg3}, - vimContinue {GruvboxFg3}, - -- c - cOperator {GruvboxPurple}, - cppOperator {GruvboxPurple}, - cStructure {GruvboxOrange}, - -- python - pythonBuiltin {GruvboxOrange}, - pythonBuiltinObj {GruvboxOrange}, - pythonBuiltinFunc {GruvboxOrange}, - pythonFunction {GruvboxAqua}, - pythonDecorator {GruvboxRed}, - pythonInclude {GruvboxBlue}, - pythonImport {GruvboxBlue}, - pythonRun {GruvboxBlue}, - pythonCoding {GruvboxBlue}, - pythonOperator {GruvboxRed}, - pythonException {GruvboxRed}, - pythonExceptions {GruvboxPurple}, - pythonBoolean {GruvboxPurple}, - pythonDot {GruvboxFg3}, - pythonConditional {GruvboxRed}, - pythonRepeat {GruvboxRed}, - pythonDottedName {GruvboxGreenBold}, - -- clojure - clojureKeyword {GruvboxBlue}, - clojureCond {GruvboxOrange}, - clojureSpecial {GruvboxOrange}, - clojureDefine {GruvboxOrange}, - clojureFunc {GruvboxYellow}, - clojureRepeat {GruvboxYellow}, - clojureCharacter {GruvboxAqua}, - clojureStringEscape {GruvboxAqua}, - clojureException {GruvboxRed}, - clojureRegexp {GruvboxAqua}, - clojureRegexpEscape {GruvboxAqua}, - clojureParen {GruvboxFg3}, - clojureAnonArg {GruvboxYellow}, - clojureVariable {GruvboxBlue}, - clojureMacro {GruvboxOrange}, - clojureMeta {GruvboxYellow}, - clojureDeref {GruvboxYellow}, - clojureQuote {GruvboxYellow}, - clojureUnquote {GruvboxYellow}, - clojureRegexpCharClass {fg = fg3, gui = styles.bold}, - clojureRegexpMod {clojureRegexpCharClass}, - clojureRegexpQuantifier {clojureRegexpCharClass}, - -- html - htmlTag {GruvboxAquaBold}, - htmlEndTag {GruvboxAquaBold}, - htmlTagName {GruvboxBlue}, - htmlArg {GruvboxOrange}, - htmlScriptTag {GruvboxPurple}, - htmlTagN {GruvboxFg1}, - htmlSpecialTagName {GruvboxBlue}, - htmlSpecialChar {GruvboxRed}, - htmlLink {fg = fg4, gui = styles.underline}, - htmlBold {fg = fg1, gui = styles.bold}, - htmlBoldUnderline {fg = fg1, gui = styles.bold .. "," .. styles.underline}, - htmlBoldItalic {fg = fg1, gui = styles.bold .. "," .. italic_strings}, - htmlBoldUnderlineItalic { - fg = fg1, - gui = styles.bold .. "," .. styles.underline .. "," .. italic_strings, - }, - htmlItalic {fg = fg1, gui = italic_strings}, - -- special diffs - diffAdded {GruvboxGreen}, - diffRemoved {GruvboxRed}, - diffChanged {GruvboxAqua}, - diffFile {GruvboxOrange}, - diffNewFile {GruvboxYellow}, - diffLine {GruvboxBlue}, - -- css - cssBraces {GruvboxBlue}, - cssFunctionName {GruvboxYellow}, - cssIdentifier {GruvboxOrange}, - cssClassName {GruvboxGreen}, - cssColor {GruvboxBlue}, - cssSelectorOp {GruvboxBlue}, - cssSelectorOp2 {GruvboxBlue}, - cssImportant {GruvboxGreen}, - cssVendor {GruvboxFg1}, - cssTextProp {GruvboxAqua}, - cssAnimationProp {GruvboxAqua}, - cssUIProp {GruvboxYellow}, - cssTransformProp {GruvboxAqua}, - cssTransitionProp {GruvboxAqua}, - cssPrintProp {GruvboxAqua}, - cssPositioningProp {GruvboxYellow}, - cssBoxProp {GruvboxAqua}, - cssFontDescriptorProp {GruvboxAqua}, - cssFlexibleBoxProp {GruvboxAqua}, - cssBorderOutlineProp {GruvboxAqua}, - cssBackgroundProp {GruvboxAqua}, - cssMarginProp {GruvboxAqua}, - cssListProp {GruvboxAqua}, - cssTableProp {GruvboxAqua}, - cssFontProp {GruvboxAqua}, - cssPaddingProp {GruvboxAqua}, - cssDimensionProp {GruvboxAqua}, - cssRenderProp {GruvboxAqua}, - cssColorProp {GruvboxAqua}, - cssGeneratedContentProp {GruvboxAqua}, - -- js - javaScriptBraces {GruvboxFg1}, - javaScriptFunction {GruvboxAqua}, - javaScriptIdentifier {GruvboxRed}, - javaScriptMember {GruvboxBlue}, - javaScriptNumber {GruvboxPurple}, - javaScriptNull {GruvboxPurple}, - javaScriptParens {GruvboxFg3}, - javascriptImport {GruvboxAqua}, - javascriptExport {GruvboxAqua}, - javascriptClassKeyword {GruvboxAqua}, - javascriptClassExtends {GruvboxAqua}, - javascriptDefault {GruvboxAqua}, - javascriptClassName {GruvboxYellow}, - javascriptClassSuperName {GruvboxYellow}, - javascriptGlobal {GruvboxYellow}, - javascriptEndColons {GruvboxFg1}, - javascriptFuncArg {GruvboxFg1}, - javascriptGlobalMethod {GruvboxFg1}, - javascriptNodeGlobal {GruvboxFg1}, - javascriptBOMWindowProp {GruvboxFg1}, - javascriptArrayMethod {GruvboxFg1}, - javascriptArrayStaticMethod {GruvboxFg1}, - javascriptCacheMethod {GruvboxFg1}, - javascriptDateMethod {GruvboxFg1}, - javascriptMathStaticMethod {GruvboxFg1}, - javascriptProp {GruvboxFg1}, - javascriptURLUtilsProp {GruvboxFg1}, - javascriptBOMNavigatorProp {GruvboxFg1}, - javascriptDOMDocMethod {GruvboxFg1}, - javascriptDOMDocProp {GruvboxFg1}, - javascriptBOMLocationMethod {GruvboxFg1}, - javascriptBOMWindowMethod {GruvboxFg1}, - javascriptStringMethod {GruvboxFg1}, - javascriptVariable {GruvboxOrange}, - javascriptClassSuper {GruvboxOrange}, - javascriptFuncKeyword {GruvboxAqua}, - javascriptAsyncFunc {GruvboxAqua}, - javascriptClassStatic {GruvboxOrange}, - javascriptOperator {GruvboxRed}, - javascriptForOperator {GruvboxRed}, - javascriptYield {GruvboxRed}, - javascriptExceptions {GruvboxRed}, - javascriptMessage {GruvboxRed}, - javascriptTemplateSB {GruvboxAqua}, - javascriptTemplateSubstitution {GruvboxFg1}, - javascriptLabel {GruvboxFg1}, - javascriptObjectLabel {GruvboxFg1}, - javascriptPropertyName {GruvboxFg1}, - javascriptLogicSymbols {GruvboxFg1}, - javascriptArrowFunc {GruvboxYellow}, - javascriptDocParamName {GruvboxFg4}, - javascriptDocTags {GruvboxFg4}, - javascriptDocNotation {GruvboxFg4}, - javascriptDocParamType {GruvboxFg4}, - javascriptDocNamedParamType {GruvboxFg4}, - javascriptBrackets {GruvboxFg1}, - javascriptDOMElemAttrs {GruvboxFg1}, - javascriptDOMEventMethod {GruvboxFg1}, - javascriptDOMNodeMethod {GruvboxFg1}, - javascriptDOMStorageMethod {GruvboxFg1}, - javascriptHeadersMethod {GruvboxFg1}, - javascriptAsyncFuncKeyword {GruvboxRed}, - javascriptAwaitFuncKeyword {GruvboxRed}, - jsClassKeyword {GruvboxAqua}, - jsExtendsKeyword {GruvboxAqua}, - jsExportDefault {GruvboxAqua}, - jsTemplateBraces {GruvboxAqua}, - jsGlobalNodeObjects {GruvboxBlue}, - jsGlobalObjects {GruvboxBlue}, - jsObjectKey {GruvboxGreenBold}, - jsFunction {GruvboxAqua}, - jsFuncCall {GruvboxBlue}, - jsFuncParens {GruvboxFg3}, - jsParens {GruvboxFg3}, - jsNull {GruvboxPurple}, - jsUndefined {GruvboxPurple}, - jsClassDefinition {GruvboxYellow}, - jsOperatorKeyword {GruvboxRed}, - -- typescript - typescriptReserved {GruvboxAqua}, - typescriptLabel {GruvboxAqua}, - typescriptFuncKeyword {GruvboxAqua}, - typescriptIdentifier {GruvboxOrange}, - typescriptBraces {GruvboxOrange}, - typescriptEndColons {GruvboxFg1}, - typescriptDOMObjects {GruvboxFg1}, - typescriptAjaxMethods {GruvboxFg1}, - typescriptLogicSymbols {GruvboxOrange}, - typescriptDocSeeTag {Comment}, - typescriptDocParam {Comment}, - typescriptDocTags {Comment}, - typescriptGlobalObjects {GruvboxFg1}, - typescriptParens {GruvboxOrange}, - typescriptOpSymbols {GruvboxOrange}, - typescriptHtmlElemProperties {GruvboxFg1}, - typescriptNull {GruvboxPurple}, - typescriptInterpolationDelimiter {GruvboxAqua}, - typescriptArrowFunc {GruvboxFg1}, - typescriptCharacter {GruvboxOrange}, - typescriptUnion {GruvboxOrange}, - typescriptDotNotation{GruvboxOrange}, - typescriptGlobalObjectDot{typescriptDotNotation}, - -- jsx - jsxTagName {GruvboxAqua}, - jsxComponentName {GruvboxGreen}, - jsxCloseString {GruvboxFg4}, - jsxAttrib {GruvboxYellow}, - jsxEqual {GruvboxAqua}, - -- purescript - purescriptModuleKeyword {GruvboxAqua}, - purescriptModuleName {GruvboxFg1}, - purescriptWhere {GruvboxAqua}, - purescriptDelimiter {GruvboxFg4}, - purescriptType {GruvboxFg1}, - purescriptImportKeyword {GruvboxAqua}, - purescriptHidingKeyword {GruvboxAqua}, - purescriptAsKeyword {GruvboxAqua}, - purescriptStructure {GruvboxAqua}, - purescriptOperator {GruvboxBlue}, - purescriptTypeVar {GruvboxFg1}, - purescriptConstructor {GruvboxFg1}, - purescriptFunction {GruvboxFg1}, - purescriptConditional {GruvboxOrange}, - purescriptBacktick {GruvboxOrange}, - -- coffeescript - coffeeExtendedOp {GruvboxFg3}, - coffeeSpecialOp {GruvboxFg3}, - coffeeCurly {GruvboxOrange}, - coffeeParen {GruvboxFg3}, - coffeeBracket {GruvboxOrange}, - -- ruby - rubyStringDelimiter {GruvboxGreen}, - rubyInterpolationDelimiter {GruvboxAqua}, - -- obj-c - objcTypeModifier {GruvboxRed}, - objcDirective {GruvboxBlue}, - -- moonscript - moonSpecialOp {GruvboxFg3}, - moonExtendedOp {GruvboxFg3}, - moonFunction {GruvboxFg3}, - moonObject {GruvboxYellow}, - -- elixir - elixirDocString {Comment}, - elixirStringDelimiter {GruvboxGreen}, - elixirInterpolationDelimiter {GruvboxAqua}, - elixirModuleDeclaration {GruvboxYellow}, - -- scala - scalaNameDefinition {GruvboxFg1}, - scalaCaseFollowing {GruvboxFg1}, - scalaCapitalWord {GruvboxFg1}, - scalaTypeExtension {GruvboxFg1}, - scalaKeyword {GruvboxRed}, - scalaKeywordModifier {GruvboxRed}, - scalaSpecial {GruvboxAqua}, - scalaOperator {GruvboxFg1}, - scalaTypeDeclaration {GruvboxYellow}, - scalaTypeTypePostDeclaration {GruvboxYellow}, - scalaInstanceDeclaration {GruvboxFg1}, - scalaInterpolation {GruvboxAqua}, - -- markdown - markdownItalic {fg = fg3, gui = italic_strings}, - markdownH1 {GruvboxGreenBold}, - markdownH2 {markdownH1}, - markdownH3 {GruvboxYellowBold}, - markdownH4 {markdownH3}, - markdownH5 {GruvboxYellow}, - markdownH6 {markdownH5}, - markdownCode {GruvboxAqua}, - markdownCodeBlock {GruvboxAqua}, - markdownCodeDelimiter {GruvboxAqua}, - markdownBlockquote {GruvboxGray}, - markdownListMarker {GruvboxGray}, - markdownOrderedListMarker {GruvboxGray}, - markdownRule {GruvboxGray}, - markdownHeadingRule {GruvboxGray}, - markdownUrlDelimiter {GruvboxFg3}, - markdownLinkDelimiter {GruvboxFg3}, - markdownLinkTextDelimiter {GruvboxFg3}, - markdownHeadingDelimiter {GruvboxOrange}, - markdownUrl {GruvboxPurple}, - markdownUrlTitleDelimiter {GruvboxGreen}, - markdownLinkText {fg = gray, gui = styles.underline}, - markdownIdDeclaration {markdownLinkText}, - -- haskell - haskellType {GruvboxBlue}, - haskellIdentifier {GruvboxAqua}, - haskellSeparator {GruvboxFg4}, - haskellDelimiter {GruvboxOrange}, - haskellOperators {GruvboxPurple}, - haskellBacktick {GruvboxOrange}, - haskellStatement {GruvboxPurple}, - haskellConditional {GruvboxPurple}, - haskellLet {GruvboxRed}, - haskellDefault {GruvboxRed}, - haskellWhere {GruvboxRed}, - haskellBottom {GruvboxRedBold}, - haskellImportKeywords {GruvboxPurpleBold}, - haskellDeclKeyword {GruvboxOrange}, - haskellDecl {GruvboxOrange}, - haskellDeriving {GruvboxPurple}, - haskellAssocType {GruvboxAqua}, - haskellNumber {GruvboxAqua}, - haskellPragma {GruvboxRedBold}, - haskellTH {GruvboxAquaBold}, - haskellForeignKeywords {GruvboxGreen}, - haskellKeyword {GruvboxRed}, - haskellFloat {GruvboxAqua}, - haskellInfix {GruvboxPurple}, - haskellQuote {GruvboxGreenBold}, - haskellShebang {GruvboxYellowBold}, - haskellLiquid {GruvboxPurpleBold}, - haskellQuasiQuoted {GruvboxBlueBold}, - haskellRecursiveDo {GruvboxPurple}, - haskellQuotedType {GruvboxRed}, - haskellPreProc {GruvboxFg4}, - haskellTypeRoles {GruvboxRedBold}, - haskellTypeForall {GruvboxRed}, - haskellPatternKeyword {GruvboxBlue}, - -- json - jsonKeyword {GruvboxGreen}, - jsonQuote {GruvboxGreen}, - jsonBraces {GruvboxFg1}, - jsonString {GruvboxFg1}, - -- mail.vim - mailQuoted1 {GruvboxAqua}, - mailQuoted2 {GruvboxPurple}, - mailQuoted3 {GruvboxYellow}, - mailQuoted4 {GruvboxGreen}, - mailQuoted5 {GruvboxRed}, - mailQuoted6 {GruvboxOrange}, - mailSignature {Comment}, - -- csharp - csBraces {GruvboxFg1}, - csEndColon {GruvboxFg1}, - csLogicSymbols {GruvboxFg1}, - csParens {GruvboxFg3}, - csOpSymbols {GruvboxFg3}, - csInterpolationDelimiter {GruvboxFg3}, - csInterpolationAlignDel {GruvboxAquaBold}, - csInterpolationFormat {GruvboxAqua}, - csInterpolationFormatDel {GruvboxAquaBold}, - -- rust - rustSigil {GruvboxOrange}, - rustEscape {GruvboxAqua}, - rustStringContinuation {GruvboxAqua}, - rustEnum {GruvboxAqua}, - rustStructure {GruvboxAqua}, - rustModPathSep {GruvboxFg2}, - rustCommentLineDoc {Comment}, - rustDefault {GruvboxAqua}, - -- ocaml - ocamlOperator {GruvboxFg1}, - ocamlKeyChar {GruvboxOrange}, - ocamlArrow {GruvboxOrange}, - ocamlInfixOpKeyword {GruvboxRed}, - ocamlConstructor {GruvboxOrange}, - -- lua - luaIn {GruvboxRed}, - luaFunction {GruvboxAqua}, - luaTable {GruvboxOrange}, - -- LSP - LspDiagnosticsDefaultError {GruvboxRed}, - LspDiagnosticsSignError {GruvboxRedSign}, - LspDiagnosticsUnderlineError {GruvboxRedUnderline}, - LspDiagnosticsDefaultWarning {GruvboxYellow}, - LspDiagnosticsSignWarning {GruvboxYellowSign}, - LspDiagnosticsUnderlineWarning {GruvboxYellowUnderline}, - LspDiagnosticsDefaultInformation {GruvboxBlue}, - LspDiagnosticsSignInformation {GruvboxBlueSign}, - LspDiagnosticsUnderlineInformation {GruvboxBlueUnderline}, - LspDiagnosticsDefaultHint {GruvboxAqua}, - LspDiagnosticsSignHint {GruvboxAquaSign}, - LspDiagnosticsUnderlineHint {GruvboxAquaUnderline}, - LspReferenceRead {GruvboxYellowBold}, - LspReferenceText {GruvboxYellowBold}, - LspReferenceWrite {GruvboxYellowBold}, - -- signature - SignatureMarkText {GruvboxBlueSign}, - SignatureMarkerText {GruvboxPurpleSign}, - -- gitcommit - gitcommitSelectedFile {GruvboxGreen}, - gitcommitDiscardedFile {GruvboxRed}, - -- nvim-treesitter - TSNone {}, - TSError {Error}, - TSTitle {Title}, - TSLiteral {String}, - TSURI {Underlined}, - TSVariable {}, - 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}, - TSAnnotation {PreProc}, - TSAttribute {PreProc}, - TSNamespace {Include}, - TSConditional {Conditional}, - TSRepeat {Repeat}, - TSLabel {Label}, - TSOperator {Operator}, - TSKeyword {Keyword}, - TSKeywordFunction {Keyword}, - TSKeywordOperator {TSOperator}, - TSException {Exception}, - TSType {Type}, - TSTypeBuiltin {Type}, - TSInclude {Include}, - TSVariableBuiltin {Special}, - TSText {TSNone}, - TSStrong {gui = styles.bold}, - TSEmphasis {gui = italic_strings}, - TSUnderline {gui = styles.underline}, - -- telescope.nvim - TelescopeSelection {GruvboxOrangeBold}, - TelescopeSlectionCaret {GruvboxRed}, - TelescopeMultiSelection {GruvboxGray}, - TelescopeNormal {GruvboxFg1}, - TelescopeBorder {TelescopeNormal}, - TelescopePromptBorder {TelescopeNormal}, - TelescopeResultsBorder {TelescopeNormal}, - TelescopePreviewBorder {TelescopeNormal}, - TelescopeMatching {GruvboxBlue}, - TelescopePromptPrefix {GruvboxRed}, - TelescopePrompt {TelescopeNormal}, - LspSagaDiagnosticBorder {NormalNC}, - LspSagaDiagnosticHeader {GruvboxRed}, - LspSagaDiagnosticTruncateLine {NormalNC}, - LspFloatWinBorder {NormalNC}, - LspSagaBorderTitle {Title}, - TargetWord {Error}, - ReferencesCount {Title}, - ReferencesIcon {Special}, - DefinitionCount {Title}, - TargetFileName {Comment}, - DefinitionIcon {Special}, - ProviderTruncateLine {NormalNC}, - SagaShadow {GruvboxBg0}, - LspSagaFinderSelection {Search}, - DiagnosticTruncateLine {NormalNC}, - DiagnosticError {LspDiagnosticsDefaultError}, - DiagnosticWarning {LspDiagnosticsDefaultWarning}, - DiagnosticInformation {LspDiagnosticsDefaultInformation}, - DiagnosticHint {LspDiagnosticsDefaultHint}, - DefinitionPreviewTitle {Title}, - LspSagaShTruncateLine {NormalNC}, - LspSagaDocTruncateLine {NormalNC}, - LineDiagTuncateLine {NormalNC}, - LspSagaCodeActionTitle {Title}, - LspSagaCodeActionTruncateLine {NormalNC}, - LspSagaCodeActionContent {Normal}, - LspSagaRenamePromptPrefix {GruvboxFg2}, - 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}, - -- vim-startify - StartifyBracket {Delimiter}, - StartifyFile {Identifier}, - StartifyNumber {Number}, - StartifyPath {Directory}, - StartifySlash {Delimiter}, - StartifySection {Statement}, - StartifySpecial {Comment}, - StartifyHeader {Title}, - StartifyFooter {Title}, - StartifyVar {StartifyPath}, - StartifySelect {Title}, - -- vim-signify - SignifySignAdd {GruvboxGreenSign}, - SignifySignChange {GruvboxAquaSign}, - SignifySignDelete {GruvboxRedSign}, - -- syntastic - SyntasticError {GruvboxRedUnderline}, - SyntasticWarning {GruvboxYellowUnderline}, - SyntasticErrorSign {GruvboxRedSign}, - SyntasticWarningSign {GruvboxYellowSign}, - -- termdebug - debugPC {bg = colors.faded_blue}, - debugBreakpoint {GruvboxRedSign}, - -- vim-dirvish - DirvishPathTail {GruvboxAqua}, - DirvishArg {GruvboxYellow}, - -- -- nerdtree - NERDTreeDir {GruvboxAqua}, - NERDTreeDirSlash {GruvboxAqua}, - NERDTreeOpenable {GruvboxOrange}, - NERDTreeClosable {GruvboxOrange}, - NERDTreeFile {GruvboxFg1}, - NERDTreeExecFile {GruvboxYellow}, - NERDTreeUp {GruvboxGray}, - NERDTreeCWD {GruvboxGreen}, - NERDTreeHelp {GruvboxFg1}, - NERDTreeToggleOn {GruvboxGreen}, - NERDTreeToggleOff {GruvboxRed}, - -- coc.nvim - CocErrorSign {GruvboxRedSign}, - CocWarningSign {GruvboxOrangeSign}, - CocInfoSign {GruvboxBlueSign}, - CocHintSign {GruvboxAquaSign}, - CocErrorFloat {GruvboxRed}, - CocWarningFloat {GruvboxOrange}, - CocInfoFloat {GruvboxBlue}, - CocHintFloat {GruvboxAqua}, - CocDiagnosticsError {GruvboxRed}, - CocDiagnosticsWarning {GruvboxOrange}, - CocDiagnosticsInfo {GruvboxBlue}, - CocDiagnosticsHint {GruvboxAqua}, - CocSelectedText {GruvboxRed}, - CocCodeLens {GruvboxGray}, - CocErrorHighlight {GruvboxRedUnderline}, - CocWarningHighlight {GruvboxOrangeUnderline}, - CocInfoHighlight {GruvboxBlueUnderline}, - CocHintHighlight {GruvboxAquaUnderline}, - -- ale.vim - ALEError {GruvboxRedUnderline}, - ALEWarning {GruvboxYellowUnderline}, - ALEInfo {GruvboxBlueUnderline}, - ALEErrorSign {GruvboxRedSign}, - ALEWarningSign {GruvboxYellowSign}, - ALEInfoSign {GruvboxBlueSign}, - ALEVirtualTextError {GruvboxRed}, - ALEVirtualTextWarning {GruvboxYellow}, - ALEVirtualTextInfo {GruvboxBlue}, - -- vim-buftabline - BufTabLineCurrent {TabLineSel}, - BufTabLineActive {PmenuSel}, - BufTabLineHidden {TabLine}, - BufTabLineFill {TabLineFill}, - BufTabLineModifiedCurrent {BufTabLineCurrent}, - BufTabLineModifiedActive {BufTabLineActive}, - BufTabLineModifiedHidden {BufTabLineHidden}, - -- ctrlP - CtrlPMatch {Identifier}, - CtrlPNoEntries {Error}, - CtrlPPrtBase {Comment}, - CtrlPPrtCursor {Constant}, - CtrlPLinePre {fg = bg2}, - CtrlPMode1 {Character}, - CtrlPMode2 {LineNr}, - CtrlPStats {Function}, - -- fzf.vim - Fzf1 {fg = blue, bg = bg1}, - Fzf2 {fg = orange, bg = bg1}, - Fzf3 {fg = fg4, bg = bg1}, - ShowMarksHLl {GruvboxBlueSign}, - ShowMarksHLu {GruvboxBlueSign}, - ShowMarksHLo {GruvboxBlueSign}, - ShowMarksHLm {GruvboxBlueSign}, - -- git-gutter - GitGutterAdd {GruvboxGreenSign}, - GitGutterChange {GruvboxAquaSign}, - GitGutterDelete {GruvboxRedSign}, - GitGutterChangeDelete {GruvboxAquaSign}, - } -end) - -require("gruvbox.plugins.lightline").start(groups) - -return groups +return spec diff --git a/lua/gruvbox/languages.lua b/lua/gruvbox/languages.lua new file mode 100644 index 0000000..8f2ae84 --- /dev/null +++ b/lua/gruvbox/languages.lua @@ -0,0 +1,429 @@ +-- language specific higlights +local lush = require("lush") +local base = require("gruvbox.base") +local styles = require("gruvbox.settings").styles + +local langs = lush(function() + return { + -- mail.vim + mailQuoted1 {base.GruvboxAqua}, + mailQuoted2 {base.GruvboxPurple}, + mailQuoted3 {base.GruvboxYellow}, + mailQuoted4 {base.GruvboxGreen}, + mailQuoted5 {base.GruvboxRed}, + mailQuoted6 {base.GruvboxOrange}, + mailSignature {base.Comment}, + -- -- golang + goDirective {base.GruvboxAqua}, + goConstants {base.GruvboxPurple}, + goDeclaration {base.GruvboxRed}, + goDeclType {base.GruvboxBlue}, + goBuiltins {base.GruvboxOrange}, + -- java + javaAnnotation {base.GruvboxBlue}, + javaDocTags {base.GruvboxAqua}, + javaCommentTitle {base.Comment}, + javaParen {base.GruvboxFg3}, + javaParen1 {base.GruvboxFg3}, + javaParen2 {base.GruvboxFg3}, + javaParen3 {base.GruvboxFg3}, + javaParen4 {base.GruvboxFg3}, + javaParen5 {base.GruvboxFg3}, + javaOperator {base.GruvboxOrange}, + -- xml + xmlTag {base.GruvboxAquaBold}, + xmlEndTag {base.GruvboxAquaBold}, + xmlTagName {base.GruvboxBlue}, + xmlEqual {base.GruvboxBlue}, + docbkKeyword {base.GruvboxAquaBold}, + xmlDocTypeDecl {base.GruvboxGray}, + xmlDocTypeKeyword {base.GruvboxPurple}, + xmlCdataStart {base.GruvboxGray}, + xmlCdataCdata {base.GruvboxPurple}, + dtdFunction {base.GruvboxGray}, + dtdTagName {base.GruvboxPurple}, + xmlAttrib {base.GruvboxOrange}, + xmlProcessingDelim {base.GruvboxGray}, + dtdParamEntityPunct {base.GruvboxGray}, + dtdParamEntityDPunct {base.GruvboxGray}, + xmlAttribPunct {base.GruvboxGray}, + xmlEntity {base.GruvboxRed}, + xmlEntityPunct {base.GruvboxRed}, + -- -- viml + vimNotation {base.GruvboxOrange}, + vimBracket {base.GruvboxOrange}, + vimMapModKey {base.GruvboxOrange}, + vimFuncSID {base.GruvboxFg3}, + vimSetSep {base.GruvboxFg3}, + vimSep {base.GruvboxFg3}, + vimContinue {base.GruvboxFg3}, + -- c + cOperator {base.GruvboxPurple}, + cppOperator {base.GruvboxPurple}, + cStructure {base.GruvboxOrange}, + -- python + pythonBuiltin {base.GruvboxOrange}, + pythonBuiltinObj {base.GruvboxOrange}, + pythonBuiltinFunc {base.GruvboxOrange}, + pythonFunction {base.GruvboxAqua}, + pythonDecorator {base.GruvboxRed}, + pythonInclude {base.GruvboxBlue}, + pythonImport {base.GruvboxBlue}, + pythonRun {base.GruvboxBlue}, + pythonCoding {base.GruvboxBlue}, + pythonOperator {base.GruvboxRed}, + pythonException {base.GruvboxRed}, + pythonExceptions {base.GruvboxPurple}, + pythonBoolean {base.GruvboxPurple}, + pythonDot {base.GruvboxFg3}, + pythonConditional {base.GruvboxRed}, + pythonRepeat {base.GruvboxRed}, + pythonDottedName {base.GruvboxGreenBold}, + -- clojure + clojureKeyword {base.GruvboxBlue}, + clojureCond {base.GruvboxOrange}, + clojureSpecial {base.GruvboxOrange}, + clojureDefine {base.GruvboxOrange}, + clojureFunc {base.GruvboxYellow}, + clojureRepeat {base.GruvboxYellow}, + clojureCharacter {base.GruvboxAqua}, + clojureStringEscape {base.GruvboxAqua}, + clojureException {base.GruvboxRed}, + clojureRegexp {base.GruvboxAqua}, + clojureRegexpEscape {base.GruvboxAqua}, + clojureParen {base.GruvboxFg3}, + clojureAnonArg {base.GruvboxYellow}, + clojureVariable {base.GruvboxBlue}, + clojureMacro {base.GruvboxOrange}, + clojureMeta {base.GruvboxYellow}, + clojureDeref {base.GruvboxYellow}, + clojureQuote {base.GruvboxYellow}, + clojureUnquote {base.GruvboxYellow}, + clojureRegexpCharClass {fg = base.GruvboxFg3.fg.hex, gui = styles.bold}, + clojureRegexpMod {clojureRegexpCharClass}, + clojureRegexpQuantifier {clojureRegexpCharClass}, + -- html + htmlTag {base.GruvboxAquaBold}, + htmlEndTag {base.GruvboxAquaBold}, + htmlTagName {base.GruvboxBlue}, + htmlArg {base.GruvboxOrange}, + htmlScriptTag {base.GruvboxPurple}, + htmlTagN {base.GruvboxFg1}, + htmlSpecialTagName {base.GruvboxBlue}, + htmlSpecialChar {base.GruvboxRed}, + htmlLink {fg = base.GruvboxFg4.fg.hex, gui = styles.underline}, + htmlBold {fg = base.GruvboxFg1.fg.hex, gui = styles.bold}, + htmlBoldUnderline { + fg = base.GruvboxFg1.fg.hex, + gui = styles.bold .. "," .. styles.underline, + }, + htmlBoldItalic { + fg = base.GruvboxFg1.fg.hex, + gui = styles.bold .. "," .. styles.italic_strings, + }, + htmlBoldUnderlineItalic { + fg = base.GruvboxFg1.fg.hex, + gui = styles.bold .. "," .. styles.underline .. "," .. styles.italic_strings, + }, + htmlItalic {fg = base.GruvboxFg1.fg.hex, gui = styles.italic_strings}, + -- special diffs + diffAdded {base.GruvboxGreen}, + diffRemoved {base.GruvboxRed}, + diffChanged {base.GruvboxAqua}, + diffFile {base.GruvboxOrange}, + diffNewFile {base.GruvboxYellow}, + diffLine {base.GruvboxBlue}, + -- css + cssBraces {base.GruvboxBlue}, + cssFunctionName {base.GruvboxYellow}, + cssIdentifier {base.GruvboxOrange}, + cssClassName {base.GruvboxGreen}, + cssColor {base.GruvboxBlue}, + cssSelectorOp {base.GruvboxBlue}, + cssSelectorOp2 {base.GruvboxBlue}, + cssImportant {base.GruvboxGreen}, + cssVendor {base.GruvboxFg1}, + cssTextProp {base.GruvboxAqua}, + cssAnimationProp {base.GruvboxAqua}, + cssUIProp {base.GruvboxYellow}, + cssTransformProp {base.GruvboxAqua}, + cssTransitionProp {base.GruvboxAqua}, + cssPrintProp {base.GruvboxAqua}, + cssPositioningProp {base.GruvboxYellow}, + cssBoxProp {base.GruvboxAqua}, + cssFontDescriptorProp {base.GruvboxAqua}, + cssFlexibleBoxProp {base.GruvboxAqua}, + cssBorderOutlineProp {base.GruvboxAqua}, + cssBackgroundProp {base.GruvboxAqua}, + cssMarginProp {base.GruvboxAqua}, + cssListProp {base.GruvboxAqua}, + cssTableProp {base.GruvboxAqua}, + cssFontProp {base.GruvboxAqua}, + cssPaddingProp {base.GruvboxAqua}, + cssDimensionProp {base.GruvboxAqua}, + cssRenderProp {base.GruvboxAqua}, + cssColorProp {base.GruvboxAqua}, + cssGeneratedContentProp {base.GruvboxAqua}, + -- js + javaScriptBraces {base.GruvboxFg1}, + javaScriptFunction {base.GruvboxAqua}, + javaScriptIdentifier {base.GruvboxRed}, + javaScriptMember {base.GruvboxBlue}, + javaScriptNumber {base.GruvboxPurple}, + javaScriptNull {base.GruvboxPurple}, + javaScriptParens {base.GruvboxFg3}, + javascriptImport {base.GruvboxAqua}, + javascriptExport {base.GruvboxAqua}, + javascriptClassKeyword {base.GruvboxAqua}, + javascriptClassExtends {base.GruvboxAqua}, + javascriptDefault {base.GruvboxAqua}, + javascriptClassName {base.GruvboxYellow}, + javascriptClassSuperName {base.GruvboxYellow}, + javascriptGlobal {base.GruvboxYellow}, + javascriptEndColons {base.GruvboxFg1}, + javascriptFuncArg {base.GruvboxFg1}, + javascriptGlobalMethod {base.GruvboxFg1}, + javascriptNodeGlobal {base.GruvboxFg1}, + javascriptBOMWindowProp {base.GruvboxFg1}, + javascriptArrayMethod {base.GruvboxFg1}, + javascriptArrayStaticMethod {base.GruvboxFg1}, + javascriptCacheMethod {base.GruvboxFg1}, + javascriptDateMethod {base.GruvboxFg1}, + javascriptMathStaticMethod {base.GruvboxFg1}, + javascriptProp {base.GruvboxFg1}, + javascriptURLUtilsProp {base.GruvboxFg1}, + javascriptBOMNavigatorProp {base.GruvboxFg1}, + javascriptDOMDocMethod {base.GruvboxFg1}, + javascriptDOMDocProp {base.GruvboxFg1}, + javascriptBOMLocationMethod {base.GruvboxFg1}, + javascriptBOMWindowMethod {base.GruvboxFg1}, + javascriptStringMethod {base.GruvboxFg1}, + javascriptVariable {base.GruvboxOrange}, + javascriptClassSuper {base.GruvboxOrange}, + javascriptFuncKeyword {base.GruvboxAqua}, + javascriptAsyncFunc {base.GruvboxAqua}, + javascriptClassStatic {base.GruvboxOrange}, + javascriptOperator {base.GruvboxRed}, + javascriptForOperator {base.GruvboxRed}, + javascriptYield {base.GruvboxRed}, + javascriptExceptions {base.GruvboxRed}, + javascriptMessage {base.GruvboxRed}, + javascriptTemplateSB {base.GruvboxAqua}, + javascriptTemplateSubstitution {base.GruvboxFg1}, + javascriptLabel {base.GruvboxFg1}, + javascriptObjectLabel {base.GruvboxFg1}, + javascriptPropertyName {base.GruvboxFg1}, + javascriptLogicSymbols {base.GruvboxFg1}, + javascriptArrowFunc {base.GruvboxYellow}, + javascriptDocParamName {base.GruvboxFg4}, + javascriptDocTags {base.GruvboxFg4}, + javascriptDocNotation {base.GruvboxFg4}, + javascriptDocParamType {base.GruvboxFg4}, + javascriptDocNamedParamType {base.GruvboxFg4}, + javascriptBrackets {base.GruvboxFg1}, + javascriptDOMElemAttrs {base.GruvboxFg1}, + javascriptDOMEventMethod {base.GruvboxFg1}, + javascriptDOMNodeMethod {base.GruvboxFg1}, + javascriptDOMStorageMethod {base.GruvboxFg1}, + javascriptHeadersMethod {base.GruvboxFg1}, + javascriptAsyncFuncKeyword {base.GruvboxRed}, + javascriptAwaitFuncKeyword {base.GruvboxRed}, + jsClassKeyword {base.GruvboxAqua}, + jsExtendsKeyword {base.GruvboxAqua}, + jsExportDefault {base.GruvboxAqua}, + jsTemplateBraces {base.GruvboxAqua}, + jsGlobalNodeObjects {base.GruvboxBlue}, + jsGlobalObjects {base.GruvboxBlue}, + jsObjectKey {base.GruvboxGreenBold}, + jsFunction {base.GruvboxAqua}, + jsFuncCall {base.GruvboxBlue}, + jsFuncParens {base.GruvboxFg3}, + jsParens {base.GruvboxFg3}, + jsNull {base.GruvboxPurple}, + jsUndefined {base.GruvboxPurple}, + jsClassDefinition {base.GruvboxYellow}, + jsOperatorKeyword {base.GruvboxRed}, + -- typescript + typescriptReserved {base.GruvboxAqua}, + typescriptLabel {base.GruvboxAqua}, + typescriptFuncKeyword {base.GruvboxAqua}, + typescriptIdentifier {base.GruvboxOrange}, + typescriptBraces {base.GruvboxOrange}, + typescriptEndColons {base.GruvboxFg1}, + typescriptDOMObjects {base.GruvboxFg1}, + typescriptAjaxMethods {base.GruvboxFg1}, + typescriptLogicSymbols {base.GruvboxOrange}, + typescriptDocSeeTag {base.Comment}, + typescriptDocParam {base.Comment}, + typescriptDocTags {base.Comment}, + typescriptGlobalObjects {base.GruvboxFg1}, + typescriptParens {base.GruvboxOrange}, + typescriptOpSymbols {base.GruvboxOrange}, + typescriptHtmlElemProperties {base.GruvboxFg1}, + typescriptNull {base.GruvboxPurple}, + typescriptInterpolationDelimiter {base.GruvboxAqua}, + typescriptArrowFunc {base.GruvboxFg1}, + typescriptCharacter {base.GruvboxOrange}, + typescriptUnion {base.GruvboxOrange}, + typescriptDotNotation {base.GruvboxOrange}, + typescriptGlobalObjectDot {typescriptDotNotation}, + -- -- jsx + jsxTagName {base.GruvboxAqua}, + jsxComponentName {base.GruvboxGreen}, + jsxCloseString {base.GruvboxFg4}, + jsxAttrib {base.GruvboxYellow}, + jsxEqual {base.GruvboxAqua}, + -- purescript + purescriptModuleKeyword {base.GruvboxAqua}, + purescriptModuleName {base.GruvboxFg1}, + purescriptWhere {base.GruvboxAqua}, + purescriptDelimiter {base.GruvboxFg4}, + purescriptType {base.GruvboxFg1}, + purescriptImportKeyword {base.GruvboxAqua}, + purescriptHidingKeyword {base.GruvboxAqua}, + purescriptAsKeyword {base.GruvboxAqua}, + purescriptStructure {base.GruvboxAqua}, + purescriptOperator {base.GruvboxBlue}, + purescriptTypeVar {base.GruvboxFg1}, + purescriptConstructor {base.GruvboxFg1}, + purescriptFunction {base.GruvboxFg1}, + purescriptConditional {base.GruvboxOrange}, + purescriptBacktick {base.GruvboxOrange}, + -- coffeescript + coffeeExtendedOp {base.GruvboxFg3}, + coffeeSpecialOp {base.GruvboxFg3}, + coffeeCurly {base.GruvboxOrange}, + coffeeParen {base.GruvboxFg3}, + coffeeBracket {base.GruvboxOrange}, + -- ruby + rubyStringDelimiter {base.GruvboxGreen}, + rubyInterpolationDelimiter {base.GruvboxAqua}, + -- obj-c + objcTypeModifier {base.GruvboxRed}, + objcDirective {base.GruvboxBlue}, + -- moonscript + moonSpecialOp {base.GruvboxFg3}, + moonExtendedOp {base.GruvboxFg3}, + moonFunction {base.GruvboxFg3}, + moonObject {base.GruvboxYellow}, + -- elixir + elixirDocString {base.Comment}, + elixirStringDelimiter {base.GruvboxGreen}, + elixirInterpolationDelimiter {base.GruvboxAqua}, + elixirModuleDeclaration {base.GruvboxYellow}, + -- scala + scalaNameDefinition {base.GruvboxFg1}, + scalaCaseFollowing {base.GruvboxFg1}, + scalaCapitalWord {base.GruvboxFg1}, + scalaTypeExtension {base.GruvboxFg1}, + scalaKeyword {base.GruvboxRed}, + scalaKeywordModifier {base.GruvboxRed}, + scalaSpecial {base.GruvboxAqua}, + scalaOperator {base.GruvboxFg1}, + scalaTypeDeclaration {base.GruvboxYellow}, + scalaTypeTypePostDeclaration {base.GruvboxYellow}, + scalaInstanceDeclaration {base.GruvboxFg1}, + scalaInterpolation {base.GruvboxAqua}, + -- markdown + markdownItalic {fg = base.GruvboxFg3.fg.hex, gui = styles.italic_strings}, + markdownH1 {base.GruvboxGreenBold}, + markdownH2 {markdownH1}, + markdownH3 {base.GruvboxYellowBold}, + markdownH4 {markdownH3}, + markdownH5 {base.GruvboxYellow}, + markdownH6 {markdownH5}, + markdownCode {base.GruvboxAqua}, + markdownCodeBlock {base.GruvboxAqua}, + markdownCodeDelimiter {base.GruvboxAqua}, + markdownBlockquote {base.GruvboxGray}, + markdownListMarker {base.GruvboxGray}, + markdownOrderedListMarker {base.GruvboxGray}, + markdownRule {base.GruvboxGray}, + markdownHeadingRule {base.GruvboxGray}, + markdownUrlDelimiter {base.GruvboxFg3}, + markdownLinkDelimiter {base.GruvboxFg3}, + markdownLinkTextDelimiter {base.GruvboxFg3}, + markdownHeadingDelimiter {base.GruvboxOrange}, + markdownUrl {base.GruvboxPurple}, + markdownUrlTitleDelimiter {base.GruvboxGreen}, + markdownLinkText {fg = base.GruvboxGray.fg.hex, gui = styles.underline}, + markdownIdDeclaration {markdownLinkText}, + -- haskell + haskellType {base.GruvboxBlue}, + haskellIdentifier {base.GruvboxAqua}, + haskellSeparator {base.GruvboxFg4}, + haskellDelimiter {base.GruvboxOrange}, + haskellOperators {base.GruvboxPurple}, + haskellBacktick {base.GruvboxOrange}, + haskellStatement {base.GruvboxPurple}, + haskellConditional {base.GruvboxPurple}, + haskellLet {base.GruvboxRed}, + haskellDefault {base.GruvboxRed}, + haskellWhere {base.GruvboxRed}, + haskellBottom {base.GruvboxRedBold}, + haskellImportKeywords {base.GruvboxPurpleBold}, + haskellDeclKeyword {base.GruvboxOrange}, + haskellDecl {base.GruvboxOrange}, + haskellDeriving {base.GruvboxPurple}, + haskellAssocType {base.GruvboxAqua}, + haskellNumber {base.GruvboxAqua}, + haskellPragma {base.GruvboxRedBold}, + haskellTH {base.GruvboxAquaBold}, + haskellForeignKeywords {base.GruvboxGreen}, + haskellKeyword {base.GruvboxRed}, + haskellFloat {base.GruvboxAqua}, + haskellInfix {base.GruvboxPurple}, + haskellQuote {base.GruvboxGreenBold}, + haskellShebang {base.GruvboxYellowBold}, + haskellLiquid {base.GruvboxPurpleBold}, + haskellQuasiQuoted {base.GruvboxBlueBold}, + haskellRecursiveDo {base.GruvboxPurple}, + haskellQuotedType {base.GruvboxRed}, + haskellPreProc {base.GruvboxFg4}, + haskellTypeRoles {base.GruvboxRedBold}, + haskellTypeForall {base.GruvboxRed}, + haskellPatternKeyword {base.GruvboxBlue}, + -- json + jsonKeyword {base.GruvboxGreen}, + jsonQuote {base.GruvboxGreen}, + jsonBraces {base.GruvboxFg1}, + jsonString {base.GruvboxFg1}, + -- csharp + csBraces {base.GruvboxFg1}, + csEndColon {base.GruvboxFg1}, + csLogicSymbols {base.GruvboxFg1}, + csParens {base.GruvboxFg3}, + csOpSymbols {base.GruvboxFg3}, + csInterpolationDelimiter {base.GruvboxFg3}, + csInterpolationAlignDel {base.GruvboxAquaBold}, + csInterpolationFormat {base.GruvboxAqua}, + csInterpolationFormatDel {base.GruvboxAquaBold}, + -- rust + rustSigil {base.GruvboxOrange}, + rustEscape {base.GruvboxAqua}, + rustStringContinuation {base.GruvboxAqua}, + rustEnum {base.GruvboxAqua}, + rustStructure {base.GruvboxAqua}, + rustModPathSep {base.GruvboxFg2}, + rustCommentLineDoc {base.Comment}, + rustDefault {base.GruvboxAqua}, + -- ocaml + ocamlOperator {base.GruvboxFg1}, + ocamlKeyChar {base.GruvboxOrange}, + ocamlArrow {base.GruvboxOrange}, + ocamlInfixOpKeyword {base.GruvboxRed}, + ocamlConstructor {base.GruvboxOrange}, + -- lua + luaIn {base.GruvboxRed}, + luaFunction {base.GruvboxAqua}, + luaTable {base.GruvboxOrange}, + -- signature + SignatureMarkText {base.GruvboxBlueSign}, + SignatureMarkerText {base.GruvboxPurpleSign}, + -- gitcommit + gitcommitSelectedFile {base.GruvboxGreen}, + gitcommitDiscardedFile {base.GruvboxRed}, + } +end) + +return langs diff --git a/lua/gruvbox/plugins/highlights.lua b/lua/gruvbox/plugins/highlights.lua new file mode 100644 index 0000000..40d400f --- /dev/null +++ b/lua/gruvbox/plugins/highlights.lua @@ -0,0 +1,231 @@ +-- 3rd party plugins highlights +local lush = require("lush") +local base = require("gruvbox.base") +local styles = require("gruvbox.settings").styles + +local plugins = lush(function() + return { + -- netrw + netrwDir {base.GruvboxAqua}, + netrwClassify {base.GruvboxAqua}, + netrwLink {base.GruvboxGray}, + netrwSymLink {base.GruvboxFg1}, + netrwExe {base.GruvboxYellow}, + netrwComment {base.GruvboxGray}, + netrwList {base.GruvboxBlue}, + netrwHelpCmd {base.GruvboxAqua}, + netrwCmdSep {base.GruvboxFg3}, + netrwVersion {base.GruvboxGreen}, + -- nvim-treesitter + TSNone {}, + TSError {base.Error}, + TSTitle {base.Title}, + TSLiteral {base.String}, + TSURI {base.Underlined}, + TSVariable {}, + TSPunctDelimiter {base.Delimiter}, + TSPunctBracket {base.Delimiter}, + TSPunctSpecial {base.Delimiter}, + TSConstant {base.Constant}, + TSConstBuiltin {base.Special}, + TSConstMacro {base.Define}, + TSString {base.String}, + TSStringRegex {base.String}, + TSStringEscape {base.SpecialChar}, + TSCharacter {base.Character}, + TSNumber {base.Number}, + TSBoolean {base.Boolean}, + TSFloat {base.Float}, + TSFunction {base.Function}, + TSFuncBuiltin {base.Special}, + TSFuncMacro {base.Macro}, + TSParameter {base.Identifier}, + TSParameterReference {TSParameter}, + TSMethod {base.Function}, + TSField {base.Identifier}, + TSProperty {base.Identifier}, + TSConstructor {base.Special}, + TSAnnotation {base.PreProc}, + TSAttribute {base.PreProc}, + TSNamespace {base.Include}, + TSConditional {base.Conditional}, + TSRepeat {base.Repeat}, + TSLabel {base.Label}, + TSOperator {base.Operator}, + TSKeyword {base.Keyword}, + TSKeywordFunction {base.Keyword}, + TSKeywordOperator {TSOperator}, + TSException {base.Exception}, + TSType {base.Type}, + TSTypeBuiltin {base.Type}, + TSInclude {base.Include}, + TSVariableBuiltin {base.Special}, + TSText {TSNone}, + TSStrong {gui = styles.bold}, + TSEmphasis {gui = styles.italic_strings}, + TSUnderline {gui = styles.underline}, + -- telescope.nvim + TelescopeSelection {base.GruvboxOrangeBold}, + TelescopeSlectionCaret {base.GruvboxRed}, + TelescopeMultiSelection {base.GruvboxGray}, + TelescopeNormal {base.GruvboxFg1}, + TelescopeBorder {TelescopeNormal}, + TelescopePromptBorder {TelescopeNormal}, + TelescopeResultsBorder {TelescopeNormal}, + TelescopePreviewBorder {TelescopeNormal}, + TelescopeMatching {base.GruvboxBlue}, + TelescopePromptPrefix {base.GruvboxRed}, + TelescopePrompt {TelescopeNormal}, + -- lspsaga.nvim + LspSagaDiagnosticBorder {base.NormalNC}, + LspSagaDiagnosticHeader {base.GruvboxRed}, + LspSagaDiagnosticTruncateLine {base.NormalNC}, + LspFloatWinBorder {base.NormalNC}, + LspSagaBorderTitle {base.Title}, + TargetWord {base.Error}, + ReferencesCount {base.Title}, + ReferencesIcon {base.Special}, + DefinitionCount {base.Title}, + TargetFileName {base.Comment}, + DefinitionIcon {base.Special}, + ProviderTruncateLine {base.NormalNC}, + SagaShadow {base.GruvboxBg0}, + LspSagaFinderSelection {base.Search}, + DiagnosticTruncateLine {base.NormalNC}, + DiagnosticError {base.LspDiagnosticsDefaultError}, + DiagnosticWarning {base.LspDiagnosticsDefaultWarning}, + DiagnosticInformation {base.LspDiagnosticsDefaultInformation}, + DiagnosticHint {base.LspDiagnosticsDefaultHint}, + DefinitionPreviewTitle {base.Title}, + LspSagaShTruncateLine {base.NormalNC}, + LspSagaDocTruncateLine {base.NormalNC}, + LineDiagTuncateLine {base.NormalNC}, + LspSagaCodeActionTitle {base.Title}, + LspSagaCodeActionTruncateLine {base.NormalNC}, + LspSagaCodeActionContent {base.Normal}, + LspSagaRenamePromptPrefix {base.GruvboxFg2}, + 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}, + -- vim-startify + StartifyBracket {base.Delimiter}, + StartifyFile {base.Identifier}, + StartifyNumber {base.Number}, + StartifyPath {base.Directory}, + StartifySlash {base.Delimiter}, + StartifySection {base.Statement}, + StartifySpecial {base.Comment}, + StartifyHeader {base.Title}, + StartifyFooter {base.Title}, + StartifyVar {StartifyPath}, + StartifySelect {base.Title}, + -- vim-signify + SignifySignAdd {base.GruvboxGreenSign}, + SignifySignChange {base.GruvboxAquaSign}, + SignifySignDelete {base.GruvboxRedSign}, + -- syntastic + SyntasticError {base.GruvboxRedUnderline}, + SyntasticWarning {base.GruvboxYellowUnderline}, + SyntasticErrorSign {base.GruvboxRedSign}, + SyntasticWarningSign {base.GruvboxYellowSign}, + -- termdebug + debugPC {bg = colors.faded_blue}, + debugBreakpoint {base.GruvboxRedSign}, + -- vim-dirvish + DirvishPathTail {base.GruvboxAqua}, + DirvishArg {base.GruvboxYellow}, + -- nerdtree + NERDTreeDir {base.GruvboxAqua}, + NERDTreeDirSlash {base.GruvboxAqua}, + NERDTreeOpenable {base.GruvboxOrange}, + NERDTreeClosable {base.GruvboxOrange}, + NERDTreeFile {base.GruvboxFg1}, + NERDTreeExecFile {base.GruvboxYellow}, + NERDTreeUp {base.GruvboxGray}, + NERDTreeCWD {base.GruvboxGreen}, + NERDTreeHelp {base.GruvboxFg1}, + NERDTreeToggleOn {base.GruvboxGreen}, + NERDTreeToggleOff {base.GruvboxRed}, + -- coc.nvim + CocErrorSign {base.GruvboxRedSign}, + CocWarningSign {base.GruvboxOrangeSign}, + CocInfoSign {base.GruvboxBlueSign}, + CocHintSign {base.GruvboxAquaSign}, + CocErrorFloat {base.GruvboxRed}, + CocWarningFloat {base.GruvboxOrange}, + CocInfoFloat {base.GruvboxBlue}, + CocHintFloat {base.GruvboxAqua}, + CocDiagnosticsError {base.GruvboxRed}, + CocDiagnosticsWarning {base.GruvboxOrange}, + CocDiagnosticsInfo {base.GruvboxBlue}, + CocDiagnosticsHint {base.GruvboxAqua}, + CocSelectedText {base.GruvboxRed}, + CocCodeLens {base.GruvboxGray}, + CocErrorHighlight {base.GruvboxRedUnderline}, + CocWarningHighlight {base.GruvboxOrangeUnderline}, + CocInfoHighlight {base.GruvboxBlueUnderline}, + CocHintHighlight {base.GruvboxAquaUnderline}, + -- ale.vim + ALEError {base.GruvboxRedUnderline}, + ALEWarning {base.GruvboxYellowUnderline}, + ALEInfo {base.GruvboxBlueUnderline}, + ALEErrorSign {base.GruvboxRedSign}, + ALEWarningSign {base.GruvboxYellowSign}, + ALEInfoSign {base.GruvboxBlueSign}, + ALEVirtualTextError {base.GruvboxRed}, + ALEVirtualTextWarning {base.GruvboxYellow}, + ALEVirtualTextInfo {base.GruvboxBlue}, + -- vim-buftabline + BufTabLineCurrent {base.TabLineSel}, + BufTabLineActive {base.PmenuSel}, + BufTabLineHidden {base.TabLine}, + BufTabLineFill {base.TabLineFill}, + BufTabLineModifiedCurrent {BufTabLineCurrent}, + BufTabLineModifiedActive {BufTabLineActive}, + BufTabLineModifiedHidden {BufTabLineHidden}, + -- ctrlP + CtrlPMatch {base.Identifier}, + CtrlPNoEntries {base.Error}, + CtrlPPrtBase {base.Comment}, + CtrlPPrtCursor {base.Constant}, + CtrlPLinePre {fg = base.GruvboxBg2.fg.hex}, + CtrlPMode1 {base.Character}, + CtrlPMode2 {base.LineNr}, + CtrlPStats {base.Function}, + -- fzf.vim + Fzf1 {fg = base.GruvboxBlue.fg.hex, bg = base.GruvboxBg1.fg.hex}, + Fzf2 {fg = base.GruvboxOrange.fg.hex, bg = base.GruvboxBg1.fg.hex}, + Fzf3 {fg = base.GruvboxFg4.fg.hex, bg = base.GruvboxBg1.fg.hex}, + ShowMarksHLl {base.GruvboxBlueSign}, + ShowMarksHLu {base.GruvboxBlueSign}, + ShowMarksHLo {base.GruvboxBlueSign}, + ShowMarksHLm {base.GruvboxBlueSign}, + -- git-gutter + GitGutterAdd {base.GruvboxGreenSign}, + GitGutterChange {base.GruvboxAquaSign}, + GitGutterDelete {base.GruvboxRedSign}, + GitGutterChangeDelete {base.GruvboxAquaSign}, + -- LSP + LspDiagnosticsDefaultError {base.GruvboxRed}, + LspDiagnosticsSignError {base.GruvboxRedSign}, + LspDiagnosticsUnderlineError {base.GruvboxRedUnderline}, + LspDiagnosticsDefaultWarning {base.GruvboxYellow}, + LspDiagnosticsSignWarning {base.GruvboxYellowSign}, + LspDiagnosticsUnderlineWarning {base.GruvboxYellowUnderline}, + LspDiagnosticsDefaultInformation {base.GruvboxBlue}, + LspDiagnosticsSignInformation {base.GruvboxBlueSign}, + LspDiagnosticsUnderlineInformation {base.GruvboxBlueUnderline}, + LspDiagnosticsDefaultHint {base.GruvboxAqua}, + LspDiagnosticsSignHint {base.GruvboxAquaSign}, + LspDiagnosticsUnderlineHint {base.GruvboxAquaUnderline}, + LspReferenceRead {base.GruvboxYellowBold}, + LspReferenceText {base.GruvboxYellowBold}, + LspReferenceWrite {base.GruvboxYellowBold}, + } +end) + +return plugins diff --git a/lua/gruvbox/settings.lua b/lua/gruvbox/settings.lua new file mode 100644 index 0000000..b5df0b0 --- /dev/null +++ b/lua/gruvbox/settings.lua @@ -0,0 +1,88 @@ +-- gruvbox settings handler +local utils = require("gruvbox.utils") + +local settings = { + contrast_dark = "medium", + contrart_light = "medium", + bold = true, + italic = true, + undercurl = true, + underline = true, + inverse = true, + improved_strings = false, + improved_warnings = false, + invert_signs = false, + invert_selection = true, + invert_tabline = false, + italicize_comments = true, + italicize_strings = false, + invert_intend_guides = false, +} + +local styles = { + italic = "italic", + bold = "bold", + underline = "underline", + inverse = "inverse", + undercurl = "undercurl", + invert_signs = "", + invert_selection = "inverse", + invert_tabline = "inverse", + italic_comments = "italic", + italic_strings = "NONE", +} + +-- 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 + +-- styles check +if not utils.tobool(vim.g.gruvbox_bold) then + styles.bold = "" +end + +if not utils.tobool(vim.g.gruvbox_underline) then + styles.underline = "" +end + +if not utils.tobool(vim.g.gruvbox_italic) then + styles.italic = "" +end + +if not utils.tobool(vim.g.gruvbox_inverse) then + styles.inverse = "" +end + +if not utils.tobool(vim.g.gruvbox_inverse) then + styles.inverse = "" +end + +if not utils.tobool(vim.g.gruvbox_undercurl) then + styles.undercurl = "" +end + +if utils.tobool(vim.g.gruvbox_invert_signs) then + styles.invert_signs = "inverse" +end + +if not utils.tobool(vim.g.gruvbox_invert_selection) then + styles.invert_selection = "NONE" +end + +if utils.tobool(vim.g.gruvbox_invert_tabline) then + styles.invert_tabline = "inverse" +end + +if not utils.tobool(vim.g.gruvbox_italicize_comments) then + styles.italic_comments = "NONE" +end + +if utils.tobool(vim.g.gruvbox_italicize_strings) then + styles.italic_strings = "italic" +end + +return {settings = settings, styles = styles} diff --git a/lua/gruvbox/utils.lua b/lua/gruvbox/utils.lua new file mode 100644 index 0000000..fefd920 --- /dev/null +++ b/lua/gruvbox/utils.lua @@ -0,0 +1,11 @@ +-- util functions +local M = {} + +M.tobool = function(val) + if val == 0 or not val then + return false + end + return true +end + +return M -- cgit v1.2.3