From d6434a73fda642619e1a9d3e1cc38fdc425f0d1c Mon Sep 17 00:00:00 2001 From: Never Gude Date: Thu, 15 Jan 2026 14:17:10 +0100 Subject: [PATCH] remove nvim submodule --- .config/dconf/user | Bin 33835 -> 33835 bytes .config/nvim | 1 - .config/nvim/colors/gruvbox.lua | 1 + .config/nvim/init.lua | 311 +++++++ .config/nvim/lua/gruvbox.lua | 1343 ++++++++++++++++++++++++++++++ .config/nvim/nvim-pack-lock.json | 72 ++ 6 files changed, 1727 insertions(+), 1 deletion(-) delete mode 160000 .config/nvim create mode 100644 .config/nvim/colors/gruvbox.lua create mode 100644 .config/nvim/init.lua create mode 100644 .config/nvim/lua/gruvbox.lua create mode 100644 .config/nvim/nvim-pack-lock.json diff --git a/.config/dconf/user b/.config/dconf/user index 50126aee2718c90f62b0a997bcc644cf7b947e10..41e8c487e845ba031c317bcf649b6ecbe6b6fd1c 100644 GIT binary patch delta 36 scmZ48!L+)AX+we+Bje^ouk(V;rq44r8^?TQXT8F}z+k>vH|3u^0Q(pXI{*Lx delta 36 scmZ48!L+)AX+we+Bh%(Yuk(V;j|$T_8^?TQXU$|_U@+aRoAOT{0Q+(c1poj5 diff --git a/.config/nvim b/.config/nvim deleted file mode 160000 index 612e96b..0000000 --- a/.config/nvim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 612e96b78f52416513e413f186959991d8220930 diff --git a/.config/nvim/colors/gruvbox.lua b/.config/nvim/colors/gruvbox.lua new file mode 100644 index 0000000..f25f984 --- /dev/null +++ b/.config/nvim/colors/gruvbox.lua @@ -0,0 +1 @@ +require("gruvbox").load() diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..09be3f3 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,311 @@ +-- Set as the leader key +-- See `:help mapleader` +-- NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) +vim.g.mapleader = " " + +vim.o.undofile = true + + +-- [[ Setting options ]] See `:h vim.o` +-- NOTE: You can change these options as you wish! +-- For more options, you can see `:help option-list` +-- To see documentation for an option, you can use `:h 'optionname'`, for example `:h 'number'` +-- (Note the single quotes) + +vim.o.mouse = "" + +-- Print the line number in front of each line +vim.o.number = true + +local augroup = vim.api.nvim_create_augroup("numbertoggle", {}) + +vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "CmdlineLeave", "WinEnter" }, { + pattern = "*", + group = augroup, + callback = function() + if vim.o.nu and vim.api.nvim_get_mode().mode ~= "i" then + vim.opt.relativenumber = true + end + end, +}) + +vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "InsertEnter", "CmdlineEnter", "WinLeave" }, { + pattern = "*", + group = augroup, + callback = function() + if vim.o.nu then + vim.opt.relativenumber = false + -- Conditional taken from https://github.com/rockyzhang24/dotfiles/commit/03dd14b5d43f812661b88c4660c03d714132abcf + -- Workaround for https://github.com/neovim/neovim/issues/32068 + if not vim.tbl_contains({ "@", "-" }, vim.v.event.cmdtype) then + vim.cmd("redraw") + end + end + end, +}) + +-- Sync clipboard between OS and Neovim. Schedule the setting after `UiEnter` because it can +-- increase startup-time. Remove this option if you want your OS clipboard to remain independent. +-- See `:help 'clipboard'` +vim.api.nvim_create_autocmd("UIEnter", { + callback = function() + vim.o.clipboard = "unnamedplus" + end, +}) + +vim.o.termguicolors = true +vim.cmd.colorscheme("gruvbox") + +-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term +vim.o.ignorecase = true +vim.o.smartcase = true + +vim.o.showmode = false + +vim.o.signcolumn = "yes" + +-- Highlight the line where the cursor is on +vim.o.cursorline = true + +-- Column at 80 characters +vim.o.colorcolumn = "80" + +-- Minimal number of screen lines to keep above and below the cursor. +vim.o.scrolloff = 10 + +-- Show and trailing spaces +vim.o.list = true +vim.opt.listchars = { tab = "» ", trail = "·", nbsp = "␣" } + +-- Disable line wrap +vim.o.linebreak = true +vim.o.breakindent = true +vim.o.showbreak = "↪ " + +vim.o.tabstop = 4 +vim.o.shiftwidth = 4 + +-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), +-- instead raise a dialog asking if you wish to save the current file(s) See `:help 'confirm'` +vim.o.confirm = true + +-- [[ Set up keymaps ]] See `:h vim.keymap.set()`, `:h mapping`, `:h keycodes` + +-- Use to exit terminal mode +vim.keymap.set("t", "", "") + +-- Map , , , to navigate between windows in any modes +vim.keymap.set({ "t", "i" }, "", "h") +vim.keymap.set({ "t", "i" }, "", "j") +vim.keymap.set({ "t", "i" }, "", "k") +vim.keymap.set({ "t", "i" }, "", "l") +vim.keymap.set({ "n" }, "", "h") +vim.keymap.set({ "n" }, "", "j") +vim.keymap.set({ "n" }, "", "k") +vim.keymap.set({ "n" }, "", "l") + +-- [[ Basic Autocommands ]]. +-- See `:h lua-guide-autocommands`, `:h autocmd`, `:h nvim_create_autocmd()` + +-- Highlight when yanking (copying) text. +-- Try it with `yap` in normal mode. See `:h vim.hl.on_yank()` +vim.api.nvim_create_autocmd("TextYankPost", { + desc = "Highlight when yanking (copying) text", + callback = function() + vim.hl.on_yank() + end, +}) + +-- [[ Create user commands ]] +-- See `:h nvim_create_user_command()` and `:h user-commands` + +-- Create a command `:GitBlameLine` that print the git blame for the current line +vim.api.nvim_create_user_command("GitBlameLine", function() + local line_number = vim.fn.line(".") -- Get the current line number. See `:h line()` + local filename = vim.api.nvim_buf_get_name(0) + print(vim.fn.system({ "git", "blame", "-L", line_number .. ",+1", filename })) +end, { desc = "Print the git blame for the current line" }) + +-- [[ Add optional packages ]] +-- Nvim comes bundled with a set of packages that are not enabled by +-- default. You can enable any of them by using the `:packadd` command. + +-- For example, to add the "nohlsearch" package to automatically turn off search highlighting after +-- 'updatetime' and when going to insert mode +vim.cmd("packadd! nohlsearch") + +vim.pack.add({"https://github.com/nvim-treesitter/nvim-treesitter"}) +-- require("nvim-treesitter.install").update("all") -- automatically update all TS-grammars +-- require("nvim-treesitter.config").setup() +-- require("nvim-treesitter").setup({ +-- sync_install = true, +-- modules = {}, +-- ignore_install = {}, +-- ensure_installed = { +-- "lua", +-- "c", +-- "ocaml", +-- "latex", +-- }, +-- auto_install = true, -- autoinstall languages that are not installed yet +-- highlight = { +-- enable = true, +-- }, +-- }) + + + +-- Treat Ipe stylesheets as xml code +vim.filetype.add({ + extension = { + isy = "xml", + }, +}) + +-- See `:h lspconfig-all` for available servers and their settings +local lsp_servers = { + lua_ls = { + -- https://luals.github.io/wiki/settings/ | `:h nvim_get_runtime_file` + Lua = { workspace = { library = vim.api.nvim_get_runtime_file("lua", true) } }, + }, + clangd = {}, + rust_analyzer = {}, + texlab = {}, +} + +-- See `:h lsp-quickstart` for more details. +vim.pack.add({ + "https://github.com/neovim/nvim-lspconfig", -- default configs for lsps + "https://github.com/mason-org/mason.nvim", -- package manager + "https://github.com/mason-org/mason-lspconfig.nvim", -- lspconfig bridge + "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim", -- auto installer +}, { confirm = false }) + +require("mason").setup() +require("mason-lspconfig").setup() +require("mason-tool-installer").setup({ + ensure_installed = vim.tbl_keys(lsp_servers), +}) + +-- Configure each lsp server on the table +-- To check what clients are attached to the current buffer, use `:checkhealth vim.lsp`. +-- To view default lsp keybindings, use `:h lsp-defaults`. +for server, config in pairs(lsp_servers) do + vim.lsp.config(server, { + settings = config, + -- only create the keymaps if the server attaches successfully + on_attach = function(_, bufnr) + -- Put mappings here + vim.keymap.set( + "n", + "ld", + vim.lsp.buf.definition, + { buffer = bufnr, desc = "vim.lsp.buf.definition()" } + ) + vim.keymap.set("n", "lf", vim.lsp.buf.format, { buffer = bufnr, desc = "vim.lsp.buf.format()" }) + end, + }) +end + +vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = "W ", + [vim.diagnostic.severity.WARN] = "w ", + [vim.diagnostic.severity.INFO] = "I ", + [vim.diagnostic.severity.HINT] = "H ", + }, + }, + virtual_text = true, -- Show inline diagnostics +}) + +vim.keymap.set("n", "dn", "]d") -- Jump to next diagnostic +vim.keymap.set("n", "dp", "[d") -- Jump to next diagnostic +vim.keymap.set("n", "dN", "]D") -- Jump to last diagnostic +vim.keymap.set("n", "dP", "[D") -- Jump to first diagnostic +vim.keymap.set("n", "ds", "d") -- Display diagnostic on current line + +require("nvim-treesitter").install('latex') + +vim.pack.add({ + "https://github.com/nvim-mini/mini.completion", + "https://github.com/nvim-mini/mini.snippets", + "https://github.com/nvim-mini/mini.icons", + "https://github.com/nvim-mini/mini.statusline", + "https://github.com/nvim-mini/mini-git", + "https://github.com/nvim-mini/mini.diff", + "https://github.com/nvim-mini/mini.clue", + "https://github.com/nvim-mini/mini.hipatterns", + "https://github.com/nvim-mini/mini.notify", + +}, { confirm = false }) + +require("mini.completion").setup() +require("mini.snippets").setup() +require("mini.icons").setup() + +require("mini.statusline").setup() +require("mini.git").setup() +require("mini.diff").setup() +local miniclue = require("mini.clue") +miniclue.setup({ + triggers = { + -- Leader triggers + { mode = { "n", "x" }, keys = "" }, + + -- `[` and `]` keys + { mode = "n", keys = "[" }, + { mode = "n", keys = "]" }, + + -- Built-in completion + { mode = "i", keys = "" }, + + -- `g` key + { mode = { "n", "x" }, keys = "g" }, + + -- Marks + { mode = { "n", "x" }, keys = "'" }, + { mode = { "n", "x" }, keys = "`" }, + + -- Registers + { mode = { "n", "x" }, keys = '"' }, + { mode = { "i", "c" }, keys = "" }, + + -- Window commands + { mode = "n", keys = "" }, + + -- `z` key + { mode = { "n", "x" }, keys = "z" }, + }, + + clues = { + -- Enhance this by adding descriptions for mapping groups + miniclue.gen_clues.square_brackets(), + miniclue.gen_clues.builtin_completion(), + miniclue.gen_clues.g(), + miniclue.gen_clues.marks(), + miniclue.gen_clues.registers(), + miniclue.gen_clues.windows(), + miniclue.gen_clues.z(), + }, + + window = { + delay = 200, + } +}) + +local hipatterns = require('mini.hipatterns') +hipatterns.setup({ + highlighters = { + -- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE' + fixme = { pattern = '%f[%w]()FIXME()%f[%W]', group = 'MiniHipatternsFixme' }, + hack = { pattern = '%f[%w]()HACK()%f[%W]', group = 'MiniHipatternsHack' }, + todo = { pattern = '%f[%w]()TODO()%f[%W]', group = 'MiniHipatternsTodo' }, + note = { pattern = '%f[%w]()NOTE()%f[%W]', group = 'MiniHipatternsNote' }, + + -- Highlight hex color strings (`#rrggbb`) using that color + hex_color = hipatterns.gen_highlighter.hex_color(), + }, +}) + +require("mini.notify").setup() diff --git a/.config/nvim/lua/gruvbox.lua b/.config/nvim/lua/gruvbox.lua new file mode 100644 index 0000000..07dedd4 --- /dev/null +++ b/.config/nvim/lua/gruvbox.lua @@ -0,0 +1,1343 @@ +---@class Gruvbox +---@field config GruvboxConfig +---@field palette GruvboxPalette +local Gruvbox = {} + +---@alias Contrast "hard" | "soft" | "" + +---@class ItalicConfig +---@field strings boolean +---@field comments boolean +---@field operators boolean +---@field folds boolean +---@field emphasis boolean + +---@class HighlightDefinition +---@field fg string? +---@field bg string? +---@field sp string? +---@field blend integer? +---@field bold boolean? +---@field standout boolean? +---@field underline boolean? +---@field undercurl boolean? +---@field underdouble boolean? +---@field underdotted boolean? +---@field strikethrough boolean? +---@field italic boolean? +---@field reverse boolean? +---@field nocombine boolean? + +---@class GruvboxConfig +---@field bold boolean? +---@field contrast Contrast? +---@field dim_inactive boolean? +---@field inverse boolean? +---@field invert_selection boolean? +---@field invert_signs boolean? +---@field invert_tabline boolean? +---@field italic ItalicConfig? +---@field overrides table? +---@field palette_overrides table? +---@field strikethrough boolean? +---@field terminal_colors boolean? +---@field transparent_mode boolean? +---@field undercurl boolean? +---@field underline boolean? +local default_config = { + terminal_colors = true, + undercurl = true, + underline = true, + bold = true, + italic = { + strings = true, + emphasis = true, + comments = true, + operators = false, + folds = true, + }, + strikethrough = true, + invert_selection = false, + invert_signs = false, + invert_tabline = false, + inverse = true, + contrast = "", + palette_overrides = {}, + overrides = {}, + dim_inactive = false, + transparent_mode = false, +} + +Gruvbox.config = vim.deepcopy(default_config) + +-- main gruvbox color palette +---@class GruvboxPalette +Gruvbox.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", + dark_red_hard = "#792329", + dark_red = "#722529", + dark_red_soft = "#7b2c2f", + light_red_hard = "#fc9690", + light_red = "#fc9487", + light_red_soft = "#f78b7f", + dark_green_hard = "#5a633a", + dark_green = "#62693e", + dark_green_soft = "#686d43", + light_green_hard = "#d3d6a5", + light_green = "#d5d39b", + light_green_soft = "#cecb94", + dark_aqua_hard = "#3e4934", + dark_aqua = "#49503b", + dark_aqua_soft = "#525742", + light_aqua_hard = "#e6e9c1", + light_aqua = "#e8e5b5", + light_aqua_soft = "#e1dbac", + gray = "#928374", +} + +-- get a hex list of gruvbox colors based on current bg and constrast config +local function get_colors() + local p = Gruvbox.palette + local config = Gruvbox.config + + for color, hex in pairs(config.palette_overrides) do + p[color] = hex + end + + local bg = vim.o.background + local contrast = config.contrast + + local color_groups = { + dark = { + bg0 = p.dark0, + bg1 = p.dark1, + bg2 = p.dark2, + bg3 = p.dark3, + bg4 = p.dark4, + fg0 = p.light0, + fg1 = p.light1, + fg2 = p.light2, + fg3 = p.light3, + fg4 = p.light4, + red = p.bright_red, + green = p.bright_green, + yellow = p.bright_yellow, + blue = p.bright_blue, + purple = p.bright_purple, + aqua = p.bright_aqua, + orange = p.bright_orange, + neutral_red = p.neutral_red, + neutral_green = p.neutral_green, + neutral_yellow = p.neutral_yellow, + neutral_blue = p.neutral_blue, + neutral_purple = p.neutral_purple, + neutral_aqua = p.neutral_aqua, + dark_red = p.dark_red, + dark_green = p.dark_green, + dark_aqua = p.dark_aqua, + gray = p.gray, + }, + light = { + bg0 = p.light0, + bg1 = p.light1, + bg2 = p.light2, + bg3 = p.light3, + bg4 = p.light4, + fg0 = p.dark0, + fg1 = p.dark1, + fg2 = p.dark2, + fg3 = p.dark3, + fg4 = p.dark4, + red = p.faded_red, + green = p.faded_green, + yellow = p.faded_yellow, + blue = p.faded_blue, + purple = p.faded_purple, + aqua = p.faded_aqua, + orange = p.faded_orange, + neutral_red = p.neutral_red, + neutral_green = p.neutral_green, + neutral_yellow = p.neutral_yellow, + neutral_blue = p.neutral_blue, + neutral_purple = p.neutral_purple, + neutral_aqua = p.neutral_aqua, + dark_red = p.light_red, + dark_green = p.light_green, + dark_aqua = p.light_aqua, + gray = p.gray, + }, + } + + if contrast ~= nil and contrast ~= "" then + color_groups[bg].bg0 = p[bg .. "0_" .. contrast] + color_groups[bg].dark_red = p[bg .. "_red_" .. contrast] + color_groups[bg].dark_green = p[bg .. "_green_" .. contrast] + color_groups[bg].dark_aqua = p[bg .. "_aqua_" .. contrast] + end + + return color_groups[bg] +end + +local function get_groups() + local colors = get_colors() + local config = Gruvbox.config + + if config.terminal_colors then + local term_colors = { + colors.bg0, + colors.neutral_red, + colors.neutral_green, + colors.neutral_yellow, + colors.neutral_blue, + colors.neutral_purple, + colors.neutral_aqua, + colors.fg4, + colors.gray, + colors.red, + colors.green, + colors.yellow, + colors.blue, + colors.purple, + colors.aqua, + colors.fg1, + } + for index, value in ipairs(term_colors) do + vim.g["terminal_color_" .. index - 1] = value + end + end + + local groups = { + GruvboxFg0 = { fg = colors.fg0 }, + GruvboxFg1 = { fg = colors.fg1 }, + GruvboxFg2 = { fg = colors.fg2 }, + GruvboxFg3 = { fg = colors.fg3 }, + GruvboxFg4 = { fg = colors.fg4 }, + GruvboxGray = { fg = colors.gray }, + GruvboxBg0 = { fg = colors.bg0 }, + GruvboxBg1 = { fg = colors.bg1 }, + GruvboxBg2 = { fg = colors.bg2 }, + GruvboxBg3 = { fg = colors.bg3 }, + GruvboxBg4 = { fg = colors.bg4 }, + GruvboxRed = { fg = colors.red }, + GruvboxRedBold = { fg = colors.red, bold = config.bold }, + GruvboxGreen = { fg = colors.green }, + GruvboxGreenBold = { fg = colors.green, bold = config.bold }, + GruvboxYellow = { fg = colors.yellow }, + GruvboxYellowBold = { fg = colors.yellow, bold = config.bold }, + GruvboxBlue = { fg = colors.blue }, + GruvboxBlueBold = { fg = colors.blue, bold = config.bold }, + GruvboxPurple = { fg = colors.purple }, + GruvboxPurpleBold = { fg = colors.purple, bold = config.bold }, + GruvboxAqua = { fg = colors.aqua }, + GruvboxAquaBold = { fg = colors.aqua, bold = config.bold }, + GruvboxOrange = { fg = colors.orange }, + GruvboxOrangeBold = { fg = colors.orange, bold = config.bold }, + GruvboxRedSign = config.transparent_mode and { fg = colors.red, reverse = config.invert_signs } + or { fg = colors.red, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxGreenSign = config.transparent_mode and { fg = colors.green, reverse = config.invert_signs } + or { fg = colors.green, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxYellowSign = config.transparent_mode and { fg = colors.yellow, reverse = config.invert_signs } + or { fg = colors.yellow, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxBlueSign = config.transparent_mode and { fg = colors.blue, reverse = config.invert_signs } + or { fg = colors.blue, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxPurpleSign = config.transparent_mode and { fg = colors.purple, reverse = config.invert_signs } + or { fg = colors.purple, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxAquaSign = config.transparent_mode and { fg = colors.aqua, reverse = config.invert_signs } + or { fg = colors.aqua, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxOrangeSign = config.transparent_mode and { fg = colors.orange, reverse = config.invert_signs } + or { fg = colors.orange, bg = colors.bg1, reverse = config.invert_signs }, + GruvboxRedUnderline = { undercurl = config.undercurl, sp = colors.red }, + GruvboxGreenUnderline = { undercurl = config.undercurl, sp = colors.green }, + GruvboxYellowUnderline = { undercurl = config.undercurl, sp = colors.yellow }, + GruvboxBlueUnderline = { undercurl = config.undercurl, sp = colors.blue }, + GruvboxPurpleUnderline = { undercurl = config.undercurl, sp = colors.purple }, + GruvboxAquaUnderline = { undercurl = config.undercurl, sp = colors.aqua }, + GruvboxOrangeUnderline = { undercurl = config.undercurl, sp = colors.orange }, + Normal = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg0 }, + NormalFloat = config.transparent_mode and { fg = colors.fg1, bg = nil } or { fg = colors.fg1, bg = colors.bg1 }, + NormalNC = config.dim_inactive and { fg = colors.fg0, bg = colors.bg1 } or { link = "Normal" }, + CursorLine = { bg = colors.bg1 }, + CursorColumn = { link = "CursorLine" }, + TabLineFill = { fg = colors.bg4, bg = colors.bg1, reverse = config.invert_tabline }, + TabLineSel = { fg = colors.green, bg = colors.bg1, reverse = config.invert_tabline }, + TabLine = { link = "TabLineFill" }, + MatchParen = { bg = colors.bg3, bold = config.bold }, + ColorColumn = { bg = colors.bg1 }, + Conceal = { fg = colors.blue }, + CursorLineNr = { fg = colors.yellow, bg = colors.bg1 }, + NonText = { link = "GruvboxBg2" }, + SpecialKey = { link = "GruvboxFg4" }, + Visual = { bg = colors.bg3, reverse = config.invert_selection }, + VisualNOS = { link = "Visual" }, + Search = { fg = colors.yellow, bg = colors.bg0, reverse = config.inverse }, + IncSearch = { fg = colors.orange, bg = colors.bg0, reverse = config.inverse }, + CurSearch = { link = "IncSearch" }, + QuickFixLine = { link = "GruvboxPurple" }, + Underlined = { fg = colors.blue, underline = config.underline }, + StatusLine = { fg = colors.fg1, bg = colors.bg2 }, + StatusLineNC = { fg = colors.fg4, bg = colors.bg1 }, + WinBar = { fg = colors.fg4, bg = colors.bg0 }, + WinBarNC = { fg = colors.fg3, bg = colors.bg1 }, + WinSeparator = config.transparent_mode and { fg = colors.bg3, bg = nil } or { fg = colors.bg3, bg = colors.bg0 }, + WildMenu = { fg = colors.blue, bg = colors.bg2, bold = config.bold }, + Directory = { link = "GruvboxGreenBold" }, + Title = { link = "GruvboxGreenBold" }, + ErrorMsg = { fg = colors.bg0, bg = colors.red, bold = config.bold }, + MoreMsg = { link = "GruvboxYellowBold" }, + ModeMsg = { link = "GruvboxYellowBold" }, + Question = { link = "GruvboxOrangeBold" }, + WarningMsg = { link = "GruvboxRedBold" }, + LineNr = { fg = colors.bg4 }, + SignColumn = config.transparent_mode and { bg = nil } or { bg = colors.bg1 }, + Folded = { fg = colors.gray, bg = colors.bg1, italic = config.italic.folds }, + FoldColumn = config.transparent_mode and { fg = colors.gray, bg = nil } or { fg = colors.gray, bg = colors.bg1 }, + Cursor = { reverse = config.inverse }, + vCursor = { link = "Cursor" }, + iCursor = { link = "Cursor" }, + lCursor = { link = "Cursor" }, + Special = { link = "GruvboxOrange" }, + Comment = { fg = colors.gray, italic = config.italic.comments }, + Todo = { fg = colors.bg0, bg = colors.yellow, bold = config.bold, italic = config.italic.comments }, + Done = { fg = colors.orange, bold = config.bold, italic = config.italic.comments }, + Error = { fg = colors.red, bold = config.bold, reverse = config.inverse }, + Statement = { link = "GruvboxRed" }, + Conditional = { link = "GruvboxRed" }, + Repeat = { link = "GruvboxRed" }, + Label = { link = "GruvboxRed" }, + Exception = { link = "GruvboxRed" }, + Operator = { fg = colors.orange, italic = config.italic.operators }, + Keyword = { link = "GruvboxRed" }, + Identifier = { link = "GruvboxBlue" }, + Function = { link = "GruvboxGreenBold" }, + PreProc = { link = "GruvboxAqua" }, + Include = { link = "GruvboxAqua" }, + Define = { link = "GruvboxAqua" }, + Macro = { link = "GruvboxAqua" }, + PreCondit = { link = "GruvboxAqua" }, + Constant = { link = "GruvboxPurple" }, + Character = { link = "GruvboxPurple" }, + String = { fg = colors.green, italic = config.italic.strings }, + Boolean = { link = "GruvboxPurple" }, + Number = { link = "GruvboxPurple" }, + Float = { link = "GruvboxPurple" }, + Type = { link = "GruvboxYellow" }, + StorageClass = { link = "GruvboxOrange" }, + Structure = { link = "GruvboxAqua" }, + Typedef = { link = "GruvboxYellow" }, + Pmenu = { fg = colors.fg1, bg = colors.bg2 }, + PmenuSel = { fg = colors.bg2, bg = colors.blue, bold = config.bold }, + PmenuSbar = { bg = colors.bg2 }, + PmenuThumb = { bg = colors.bg4 }, + DiffDelete = { bg = colors.dark_red }, + DiffAdd = { bg = colors.dark_green }, + DiffChange = { bg = colors.dark_aqua }, + DiffText = { bg = colors.yellow, fg = colors.bg0 }, + SpellCap = { link = "GruvboxBlueUnderline" }, + SpellBad = { link = "GruvboxRedUnderline" }, + SpellLocal = { link = "GruvboxAquaUnderline" }, + SpellRare = { link = "GruvboxPurpleUnderline" }, + Whitespace = { fg = colors.bg2 }, + Delimiter = { link = "GruvboxOrange" }, + EndOfBuffer = { link = "NonText" }, + DiagnosticError = { link = "GruvboxRed" }, + DiagnosticWarn = { link = "GruvboxYellow" }, + DiagnosticInfo = { link = "GruvboxBlue" }, + DiagnosticDeprecated = { strikethrough = config.strikethrough }, + DiagnosticHint = { link = "GruvboxAqua" }, + DiagnosticOk = { link = "GruvboxGreen" }, + DiagnosticSignError = { link = "GruvboxRedSign" }, + DiagnosticSignWarn = { link = "GruvboxYellowSign" }, + DiagnosticSignInfo = { link = "GruvboxBlueSign" }, + DiagnosticSignHint = { link = "GruvboxAquaSign" }, + DiagnosticSignOk = { link = "GruvboxGreenSign" }, + DiagnosticUnderlineError = { link = "GruvboxRedUnderline" }, + DiagnosticUnderlineWarn = { link = "GruvboxYellowUnderline" }, + DiagnosticUnderlineInfo = { link = "GruvboxBlueUnderline" }, + DiagnosticUnderlineHint = { link = "GruvboxAquaUnderline" }, + DiagnosticUnderlineOk = { link = "GruvboxGreenUnderline" }, + DiagnosticFloatingError = { link = "GruvboxRed" }, + DiagnosticFloatingWarn = { link = "GruvboxOrange" }, + DiagnosticFloatingInfo = { link = "GruvboxBlue" }, + DiagnosticFloatingHint = { link = "GruvboxAqua" }, + DiagnosticFloatingOk = { link = "GruvboxGreen" }, + DiagnosticVirtualTextError = { link = "GruvboxRed" }, + DiagnosticVirtualTextWarn = { link = "GruvboxYellow" }, + DiagnosticVirtualTextInfo = { link = "GruvboxBlue" }, + DiagnosticVirtualTextHint = { link = "GruvboxAqua" }, + DiagnosticVirtualTextOk = { link = "GruvboxGreen" }, + LspReferenceRead = { link = "GruvboxYellowBold" }, + LspReferenceTarget = { link = "Visual" }, + LspReferenceText = { link = "GruvboxYellowBold" }, + LspReferenceWrite = { link = "GruvboxOrangeBold" }, + LspCodeLens = { link = "GruvboxGray" }, + LspSignatureActiveParameter = { link = "Search" }, + gitcommitSelectedFile = { link = "GruvboxGreen" }, + gitcommitDiscardedFile = { link = "GruvboxRed" }, + GitSignsAdd = { link = "GruvboxGreen" }, + GitSignsChange = { link = "GruvboxOrange" }, + GitSignsDelete = { link = "GruvboxRed" }, + NvimTreeSymlink = { fg = colors.neutral_aqua }, + NvimTreeRootFolder = { fg = colors.neutral_purple, bold = true }, + NvimTreeFolderIcon = { fg = colors.neutral_blue, bold = true }, + NvimTreeFileIcon = { fg = colors.light2 }, + NvimTreeExecFile = { fg = colors.neutral_green, bold = true }, + NvimTreeOpenedFile = { fg = colors.bright_red, bold = true }, + NvimTreeSpecialFile = { fg = colors.neutral_yellow, bold = true, underline = true }, + NvimTreeImageFile = { fg = colors.neutral_purple }, + NvimTreeIndentMarker = { fg = colors.dark3 }, + NvimTreeGitDirty = { fg = colors.neutral_yellow }, + NvimTreeGitStaged = { fg = colors.neutral_yellow }, + NvimTreeGitMerge = { fg = colors.neutral_purple }, + NvimTreeGitRenamed = { fg = colors.neutral_purple }, + NvimTreeGitNew = { fg = colors.neutral_yellow }, + NvimTreeGitDeleted = { fg = colors.neutral_red }, + NvimTreeWindowPicker = { bg = colors.aqua }, + debugPC = { link = "DiffAdd" }, + debugBreakpoint = { link = "GruvboxRedSign" }, + StartifyBracket = { link = "GruvboxFg3" }, + StartifyFile = { link = "GruvboxFg1" }, + StartifyNumber = { link = "GruvboxBlue" }, + StartifyPath = { link = "GruvboxGray" }, + StartifySlash = { link = "GruvboxGray" }, + StartifySection = { link = "GruvboxYellow" }, + StartifySpecial = { link = "GruvboxBg2" }, + StartifyHeader = { link = "GruvboxOrange" }, + StartifyFooter = { link = "GruvboxBg2" }, + StartifyVar = { link = "StartifyPath" }, + StartifySelect = { link = "Title" }, + DirvishPathTail = { link = "GruvboxAqua" }, + DirvishArg = { link = "GruvboxYellow" }, + netrwDir = { link = "GruvboxAqua" }, + netrwClassify = { link = "GruvboxAqua" }, + netrwLink = { link = "GruvboxGray" }, + netrwSymLink = { link = "GruvboxFg1" }, + netrwExe = { link = "GruvboxYellow" }, + netrwComment = { link = "GruvboxGray" }, + netrwList = { link = "GruvboxBlue" }, + netrwHelpCmd = { link = "GruvboxAqua" }, + netrwCmdSep = { link = "GruvboxFg3" }, + netrwVersion = { link = "GruvboxGreen" }, + NERDTreeDir = { link = "GruvboxAqua" }, + NERDTreeDirSlash = { link = "GruvboxAqua" }, + NERDTreeOpenable = { link = "GruvboxOrange" }, + NERDTreeClosable = { link = "GruvboxOrange" }, + NERDTreeFile = { link = "GruvboxFg1" }, + NERDTreeExecFile = { link = "GruvboxYellow" }, + NERDTreeUp = { link = "GruvboxGray" }, + NERDTreeCWD = { link = "GruvboxGreen" }, + NERDTreeHelp = { link = "GruvboxFg1" }, + NERDTreeToggleOn = { link = "GruvboxGreen" }, + NERDTreeToggleOff = { link = "GruvboxRed" }, + CocErrorSign = { link = "GruvboxRedSign" }, + CocWarningSign = { link = "GruvboxOrangeSign" }, + CocInfoSign = { link = "GruvboxBlueSign" }, + CocHintSign = { link = "GruvboxAquaSign" }, + CocErrorFloat = { link = "GruvboxRed" }, + CocWarningFloat = { link = "GruvboxOrange" }, + CocInfoFloat = { link = "GruvboxBlue" }, + CocHintFloat = { link = "GruvboxAqua" }, + CocDiagnosticsError = { link = "GruvboxRed" }, + CocDiagnosticsWarning = { link = "GruvboxOrange" }, + CocDiagnosticsInfo = { link = "GruvboxBlue" }, + CocDiagnosticsHint = { link = "GruvboxAqua" }, + CocSearch = { link = "GruvboxBlue" }, + CocSelectedText = { link = "GruvboxRed" }, + CocMenuSel = { link = "PmenuSel" }, + CocCodeLens = { link = "GruvboxGray" }, + CocErrorHighlight = { link = "GruvboxRedUnderline" }, + CocWarningHighlight = { link = "GruvboxOrangeUnderline" }, + CocInfoHighlight = { link = "GruvboxBlueUnderline" }, + CocHintHighlight = { link = "GruvboxAquaUnderline" }, + SnacksPicker = { link = "GruvboxFg1" }, + SnacksPickerBorder = { link = "SnacksPicker" }, + SnacksPickerListCursorLine = { link = "CursorLine" }, + SnacksPickerMatch = { link = "GruvboxOrange" }, + SnacksPickerPrompt = { link = "GruvboxRed" }, + SnacksPickerTitle = { link = "SnacksPicker" }, + SnacksPickerDir = { link = "GruvboxGray" }, + SnacksPickerPathHidden = { link = "GruvboxGray" }, + SnacksPickerGitStatusUntracked = { link = "GruvboxGray" }, + SnacksPickerPathIgnored = { link = "GruvboxBg3" }, + TelescopeNormal = { link = "GruvboxFg1" }, + TelescopeSelection = { link = "CursorLine" }, + TelescopeSelectionCaret = { link = "GruvboxRed" }, + TelescopeMultiSelection = { link = "GruvboxGray" }, + TelescopeBorder = { link = "TelescopeNormal" }, + TelescopePromptBorder = { link = "TelescopeNormal" }, + TelescopeResultsBorder = { link = "TelescopeNormal" }, + TelescopePreviewBorder = { link = "TelescopeNormal" }, + TelescopeMatching = { link = "GruvboxOrange" }, + TelescopePromptPrefix = { link = "GruvboxRed" }, + TelescopePrompt = { link = "TelescopeNormal" }, + CmpItemAbbr = { link = "GruvboxFg0" }, + CmpItemAbbrDeprecated = { link = "GruvboxFg1" }, + CmpItemAbbrMatch = { link = "GruvboxBlueBold" }, + CmpItemAbbrMatchFuzzy = { link = "GruvboxBlueUnderline" }, + CmpItemMenu = { link = "GruvboxGray" }, + CmpItemKindText = { link = "GruvboxOrange" }, + CmpItemKindVariable = { link = "GruvboxOrange" }, + CmpItemKindMethod = { link = "GruvboxBlue" }, + CmpItemKindFunction = { link = "GruvboxBlue" }, + CmpItemKindConstructor = { link = "GruvboxYellow" }, + CmpItemKindUnit = { link = "GruvboxBlue" }, + CmpItemKindField = { link = "GruvboxBlue" }, + CmpItemKindClass = { link = "GruvboxYellow" }, + CmpItemKindInterface = { link = "GruvboxYellow" }, + CmpItemKindModule = { link = "GruvboxBlue" }, + CmpItemKindProperty = { link = "GruvboxBlue" }, + CmpItemKindValue = { link = "GruvboxOrange" }, + CmpItemKindEnum = { link = "GruvboxYellow" }, + CmpItemKindOperator = { link = "GruvboxYellow" }, + CmpItemKindKeyword = { link = "GruvboxPurple" }, + CmpItemKindEvent = { link = "GruvboxPurple" }, + CmpItemKindReference = { link = "GruvboxPurple" }, + CmpItemKindColor = { link = "GruvboxPurple" }, + CmpItemKindSnippet = { link = "GruvboxGreen" }, + CmpItemKindFile = { link = "GruvboxBlue" }, + CmpItemKindFolder = { link = "GruvboxBlue" }, + CmpItemKindEnumMember = { link = "GruvboxAqua" }, + CmpItemKindConstant = { link = "GruvboxOrange" }, + CmpItemKindStruct = { link = "GruvboxYellow" }, + CmpItemKindTypeParameter = { link = "GruvboxYellow" }, + BlinkCmpLabel = { link = "GruvboxFg0" }, + BlinkCmpLabelDeprecated = { link = "GruvboxFg1" }, + BlinkCmpLabelMatch = { link = "GruvboxBlueBold" }, + BlinkCmpLabelDetail = { link = "GruvboxGray" }, + BlinkCmpLabelDescription = { link = "GruvboxGray" }, + BlinkCmpKindText = { link = "GruvboxOrange" }, + BlinkCmpKindVariable = { link = "GruvboxOrange" }, + BlinkCmpKindMethod = { link = "GruvboxBlue" }, + BlinkCmpKindFunction = { link = "GruvboxBlue" }, + BlinkCmpKindConstructor = { link = "GruvboxYellow" }, + BlinkCmpKindUnit = { link = "GruvboxBlue" }, + BlinkCmpKindField = { link = "GruvboxBlue" }, + BlinkCmpKindClass = { link = "GruvboxYellow" }, + BlinkCmpKindInterface = { link = "GruvboxYellow" }, + BlinkCmpKindModule = { link = "GruvboxBlue" }, + BlinkCmpKindProperty = { link = "GruvboxBlue" }, + BlinkCmpKindValue = { link = "GruvboxOrange" }, + BlinkCmpKindEnum = { link = "GruvboxYellow" }, + BlinkCmpKindOperator = { link = "GruvboxYellow" }, + BlinkCmpKindKeyword = { link = "GruvboxPurple" }, + BlinkCmpKindEvent = { link = "GruvboxPurple" }, + BlinkCmpKindReference = { link = "GruvboxPurple" }, + BlinkCmpKindColor = { link = "GruvboxPurple" }, + BlinkCmpKindSnippet = { link = "GruvboxGreen" }, + BlinkCmpKindFile = { link = "GruvboxBlue" }, + BlinkCmpKindFolder = { link = "GruvboxBlue" }, + BlinkCmpKindEnumMember = { link = "GruvboxAqua" }, + BlinkCmpKindConstant = { link = "GruvboxOrange" }, + BlinkCmpKindStruct = { link = "GruvboxYellow" }, + BlinkCmpKindTypeParameter = { link = "GruvboxYellow" }, + BlinkCmpSource = { link = "GruvboxGray" }, + BlinkCmpGhostText = { link = "GruvboxBg4" }, + diffAdded = { link = "DiffAdd" }, + diffRemoved = { link = "DiffDelete" }, + diffChanged = { link = "DiffChange" }, + diffFile = { link = "GruvboxOrange" }, + diffNewFile = { link = "GruvboxYellow" }, + diffOldFile = { link = "GruvboxOrange" }, + diffLine = { link = "GruvboxBlue" }, + diffIndexLine = { link = "diffChanged" }, + NavicIconsFile = { link = "GruvboxBlue" }, + NavicIconsModule = { link = "GruvboxOrange" }, + NavicIconsNamespace = { link = "GruvboxBlue" }, + NavicIconsPackage = { link = "GruvboxAqua" }, + NavicIconsClass = { link = "GruvboxYellow" }, + NavicIconsMethod = { link = "GruvboxBlue" }, + NavicIconsProperty = { link = "GruvboxAqua" }, + NavicIconsField = { link = "GruvboxPurple" }, + NavicIconsConstructor = { link = "GruvboxBlue" }, + NavicIconsEnum = { link = "GruvboxPurple" }, + NavicIconsInterface = { link = "GruvboxGreen" }, + NavicIconsFunction = { link = "GruvboxBlue" }, + NavicIconsVariable = { link = "GruvboxPurple" }, + NavicIconsConstant = { link = "GruvboxOrange" }, + NavicIconsString = { link = "GruvboxGreen" }, + NavicIconsNumber = { link = "GruvboxOrange" }, + NavicIconsBoolean = { link = "GruvboxOrange" }, + NavicIconsArray = { link = "GruvboxOrange" }, + NavicIconsObject = { link = "GruvboxOrange" }, + NavicIconsKey = { link = "GruvboxAqua" }, + NavicIconsNull = { link = "GruvboxOrange" }, + NavicIconsEnumMember = { link = "GruvboxYellow" }, + NavicIconsStruct = { link = "GruvboxPurple" }, + NavicIconsEvent = { link = "GruvboxYellow" }, + NavicIconsOperator = { link = "GruvboxRed" }, + NavicIconsTypeParameter = { link = "GruvboxRed" }, + NavicText = { link = "GruvboxWhite" }, + NavicSeparator = { link = "GruvboxWhite" }, + htmlTag = { link = "GruvboxAquaBold" }, + htmlEndTag = { link = "GruvboxAquaBold" }, + htmlTagName = { link = "GruvboxBlue" }, + htmlArg = { link = "GruvboxOrange" }, + htmlTagN = { link = "GruvboxFg1" }, + htmlSpecialTagName = { link = "GruvboxBlue" }, + htmlLink = { fg = colors.fg4, underline = config.underline }, + htmlSpecialChar = { link = "GruvboxRed" }, + htmlBold = { fg = colors.fg0, bg = colors.bg0, bold = config.bold }, + htmlBoldUnderline = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, underline = config.underline }, + htmlBoldItalic = { fg = colors.fg0, bg = colors.bg0, bold = config.bold, italic = true }, + htmlBoldUnderlineItalic = { + fg = colors.fg0, + bg = colors.bg0, + bold = config.bold, + italic = true, + underline = config.underline, + }, + htmlUnderline = { fg = colors.fg0, bg = colors.bg0, underline = config.underline }, + htmlUnderlineItalic = { + fg = colors.fg0, + bg = colors.bg0, + italic = true, + underline = config.underline, + }, + htmlItalic = { fg = colors.fg0, bg = colors.bg0, italic = true }, + xmlTag = { link = "GruvboxAquaBold" }, + xmlEndTag = { link = "GruvboxAquaBold" }, + xmlTagName = { link = "GruvboxBlue" }, + xmlEqual = { link = "GruvboxBlue" }, + docbkKeyword = { link = "GruvboxAquaBold" }, + xmlDocTypeDecl = { link = "GruvboxGray" }, + xmlDocTypeKeyword = { link = "GruvboxPurple" }, + xmlCdataStart = { link = "GruvboxGray" }, + xmlCdataCdata = { link = "GruvboxPurple" }, + dtdFunction = { link = "GruvboxGray" }, + dtdTagName = { link = "GruvboxPurple" }, + xmlAttrib = { link = "GruvboxOrange" }, + xmlProcessingDelim = { link = "GruvboxGray" }, + dtdParamEntityPunct = { link = "GruvboxGray" }, + dtdParamEntityDPunct = { link = "GruvboxGray" }, + xmlAttribPunct = { link = "GruvboxGray" }, + xmlEntity = { link = "GruvboxRed" }, + xmlEntityPunct = { link = "GruvboxRed" }, + clojureKeyword = { link = "GruvboxBlue" }, + clojureCond = { link = "GruvboxOrange" }, + clojureSpecial = { link = "GruvboxOrange" }, + clojureDefine = { link = "GruvboxOrange" }, + clojureFunc = { link = "GruvboxYellow" }, + clojureRepeat = { link = "GruvboxYellow" }, + clojureCharacter = { link = "GruvboxAqua" }, + clojureStringEscape = { link = "GruvboxAqua" }, + clojureException = { link = "GruvboxRed" }, + clojureRegexp = { link = "GruvboxAqua" }, + clojureRegexpEscape = { link = "GruvboxAqua" }, + clojureRegexpCharClass = { fg = colors.fg3, bold = config.bold }, + clojureRegexpMod = { link = "clojureRegexpCharClass" }, + clojureRegexpQuantifier = { link = "clojureRegexpCharClass" }, + clojureParen = { link = "GruvboxFg3" }, + clojureAnonArg = { link = "GruvboxYellow" }, + clojureVariable = { link = "GruvboxBlue" }, + clojureMacro = { link = "GruvboxOrange" }, + clojureMeta = { link = "GruvboxYellow" }, + clojureDeref = { link = "GruvboxYellow" }, + clojureQuote = { link = "GruvboxYellow" }, + clojureUnquote = { link = "GruvboxYellow" }, + cOperator = { link = "GruvboxPurple" }, + cppOperator = { link = "GruvboxPurple" }, + cStructure = { link = "GruvboxOrange" }, + pythonBuiltin = { link = "GruvboxOrange" }, + pythonBuiltinObj = { link = "GruvboxOrange" }, + pythonBuiltinFunc = { link = "GruvboxOrange" }, + pythonFunction = { link = "GruvboxAqua" }, + pythonDecorator = { link = "GruvboxRed" }, + pythonInclude = { link = "GruvboxBlue" }, + pythonImport = { link = "GruvboxBlue" }, + pythonRun = { link = "GruvboxBlue" }, + pythonCoding = { link = "GruvboxBlue" }, + pythonOperator = { link = "GruvboxRed" }, + pythonException = { link = "GruvboxRed" }, + pythonExceptions = { link = "GruvboxPurple" }, + pythonBoolean = { link = "GruvboxPurple" }, + pythonDot = { link = "GruvboxFg3" }, + pythonConditional = { link = "GruvboxRed" }, + pythonRepeat = { link = "GruvboxRed" }, + pythonDottedName = { link = "GruvboxGreenBold" }, + cssBraces = { link = "GruvboxBlue" }, + cssFunctionName = { link = "GruvboxYellow" }, + cssIdentifier = { link = "GruvboxOrange" }, + cssClassName = { link = "GruvboxGreen" }, + cssColor = { link = "GruvboxBlue" }, + cssSelectorOp = { link = "GruvboxBlue" }, + cssSelectorOp2 = { link = "GruvboxBlue" }, + cssImportant = { link = "GruvboxGreen" }, + cssVendor = { link = "GruvboxFg1" }, + cssTextProp = { link = "GruvboxAqua" }, + cssAnimationProp = { link = "GruvboxAqua" }, + cssUIProp = { link = "GruvboxYellow" }, + cssTransformProp = { link = "GruvboxAqua" }, + cssTransitionProp = { link = "GruvboxAqua" }, + cssPrintProp = { link = "GruvboxAqua" }, + cssPositioningProp = { link = "GruvboxYellow" }, + cssBoxProp = { link = "GruvboxAqua" }, + cssFontDescriptorProp = { link = "GruvboxAqua" }, + cssFlexibleBoxProp = { link = "GruvboxAqua" }, + cssBorderOutlineProp = { link = "GruvboxAqua" }, + cssBackgroundProp = { link = "GruvboxAqua" }, + cssMarginProp = { link = "GruvboxAqua" }, + cssListProp = { link = "GruvboxAqua" }, + cssTableProp = { link = "GruvboxAqua" }, + cssFontProp = { link = "GruvboxAqua" }, + cssPaddingProp = { link = "GruvboxAqua" }, + cssDimensionProp = { link = "GruvboxAqua" }, + cssRenderProp = { link = "GruvboxAqua" }, + cssColorProp = { link = "GruvboxAqua" }, + cssGeneratedContentProp = { link = "GruvboxAqua" }, + javaScriptBraces = { link = "GruvboxFg1" }, + javaScriptFunction = { link = "GruvboxAqua" }, + javaScriptIdentifier = { link = "GruvboxRed" }, + javaScriptMember = { link = "GruvboxBlue" }, + javaScriptNumber = { link = "GruvboxPurple" }, + javaScriptNull = { link = "GruvboxPurple" }, + javaScriptParens = { link = "GruvboxFg3" }, + typescriptReserved = { link = "GruvboxAqua" }, + typescriptLabel = { link = "GruvboxAqua" }, + typescriptFuncKeyword = { link = "GruvboxAqua" }, + typescriptIdentifier = { link = "GruvboxOrange" }, + typescriptBraces = { link = "GruvboxFg1" }, + typescriptEndColons = { link = "GruvboxFg1" }, + typescriptDOMObjects = { link = "GruvboxFg1" }, + typescriptAjaxMethods = { link = "GruvboxFg1" }, + typescriptLogicSymbols = { link = "GruvboxFg1" }, + typescriptDocSeeTag = { link = "Comment" }, + typescriptDocParam = { link = "Comment" }, + typescriptDocTags = { link = "vimCommentTitle" }, + typescriptGlobalObjects = { link = "GruvboxFg1" }, + typescriptParens = { link = "GruvboxFg3" }, + typescriptOpSymbols = { link = "GruvboxFg3" }, + typescriptHtmlElemProperties = { link = "GruvboxFg1" }, + typescriptNull = { link = "GruvboxPurple" }, + typescriptInterpolationDelimiter = { link = "GruvboxAqua" }, + purescriptModuleKeyword = { link = "GruvboxAqua" }, + purescriptModuleName = { link = "GruvboxFg1" }, + purescriptWhere = { link = "GruvboxAqua" }, + purescriptDelimiter = { link = "GruvboxFg4" }, + purescriptType = { link = "GruvboxFg1" }, + purescriptImportKeyword = { link = "GruvboxAqua" }, + purescriptHidingKeyword = { link = "GruvboxAqua" }, + purescriptAsKeyword = { link = "GruvboxAqua" }, + purescriptStructure = { link = "GruvboxAqua" }, + purescriptOperator = { link = "GruvboxBlue" }, + purescriptTypeVar = { link = "GruvboxFg1" }, + purescriptConstructor = { link = "GruvboxFg1" }, + purescriptFunction = { link = "GruvboxFg1" }, + purescriptConditional = { link = "GruvboxOrange" }, + purescriptBacktick = { link = "GruvboxOrange" }, + coffeeExtendedOp = { link = "GruvboxFg3" }, + coffeeSpecialOp = { link = "GruvboxFg3" }, + coffeeCurly = { link = "GruvboxOrange" }, + coffeeParen = { link = "GruvboxFg3" }, + coffeeBracket = { link = "GruvboxOrange" }, + rubyStringDelimiter = { link = "GruvboxGreen" }, + rubyInterpolationDelimiter = { link = "GruvboxAqua" }, + rubyDefinedOperator = { link = "rubyKeyword" }, + objcTypeModifier = { link = "GruvboxRed" }, + objcDirective = { link = "GruvboxBlue" }, + goDirective = { link = "GruvboxAqua" }, + goConstants = { link = "GruvboxPurple" }, + goDeclaration = { link = "GruvboxRed" }, + goDeclType = { link = "GruvboxBlue" }, + goBuiltins = { link = "GruvboxOrange" }, + luaIn = { link = "GruvboxRed" }, + luaFunction = { link = "GruvboxAqua" }, + luaTable = { link = "GruvboxOrange" }, + moonSpecialOp = { link = "GruvboxFg3" }, + moonExtendedOp = { link = "GruvboxFg3" }, + moonFunction = { link = "GruvboxFg3" }, + moonObject = { link = "GruvboxYellow" }, + javaAnnotation = { link = "GruvboxBlue" }, + javaDocTags = { link = "GruvboxAqua" }, + javaCommentTitle = { link = "vimCommentTitle" }, + javaParen = { link = "GruvboxFg3" }, + javaParen1 = { link = "GruvboxFg3" }, + javaParen2 = { link = "GruvboxFg3" }, + javaParen3 = { link = "GruvboxFg3" }, + javaParen4 = { link = "GruvboxFg3" }, + javaParen5 = { link = "GruvboxFg3" }, + javaOperator = { link = "GruvboxOrange" }, + javaVarArg = { link = "GruvboxGreen" }, + elixirDocString = { link = "Comment" }, + elixirStringDelimiter = { link = "GruvboxGreen" }, + elixirInterpolationDelimiter = { link = "GruvboxAqua" }, + elixirModuleDeclaration = { link = "GruvboxYellow" }, + scalaNameDefinition = { link = "GruvboxFg1" }, + scalaCaseFollowing = { link = "GruvboxFg1" }, + scalaCapitalWord = { link = "GruvboxFg1" }, + scalaTypeExtension = { link = "GruvboxFg1" }, + scalaKeyword = { link = "GruvboxRed" }, + scalaKeywordModifier = { link = "GruvboxRed" }, + scalaSpecial = { link = "GruvboxAqua" }, + scalaOperator = { link = "GruvboxFg1" }, + scalaTypeDeclaration = { link = "GruvboxYellow" }, + scalaTypeTypePostDeclaration = { link = "GruvboxYellow" }, + scalaInstanceDeclaration = { link = "GruvboxFg1" }, + scalaInterpolation = { link = "GruvboxAqua" }, + markdownItalic = { fg = colors.fg3, italic = true }, + markdownBold = { fg = colors.fg3, bold = config.bold }, + markdownBoldItalic = { fg = colors.fg3, bold = config.bold, italic = true }, + markdownH1 = { link = "GruvboxGreenBold" }, + markdownH2 = { link = "GruvboxGreenBold" }, + markdownH3 = { link = "GruvboxYellowBold" }, + markdownH4 = { link = "GruvboxYellowBold" }, + markdownH5 = { link = "GruvboxYellow" }, + markdownH6 = { link = "GruvboxYellow" }, + markdownCode = { link = "GruvboxAqua" }, + markdownCodeBlock = { link = "GruvboxAqua" }, + markdownCodeDelimiter = { link = "GruvboxAqua" }, + markdownBlockquote = { link = "GruvboxGray" }, + markdownListMarker = { link = "GruvboxGray" }, + markdownOrderedListMarker = { link = "GruvboxGray" }, + markdownRule = { link = "GruvboxGray" }, + markdownHeadingRule = { link = "GruvboxGray" }, + markdownUrlDelimiter = { link = "GruvboxFg3" }, + markdownLinkDelimiter = { link = "GruvboxFg3" }, + markdownLinkTextDelimiter = { link = "GruvboxFg3" }, + markdownHeadingDelimiter = { link = "GruvboxOrange" }, + markdownUrl = { link = "GruvboxPurple" }, + markdownUrlTitleDelimiter = { link = "GruvboxGreen" }, + markdownLinkText = { fg = colors.gray, underline = config.underline }, + markdownIdDeclaration = { link = "markdownLinkText" }, + haskellType = { link = "GruvboxBlue" }, + haskellIdentifier = { link = "GruvboxAqua" }, + haskellSeparator = { link = "GruvboxFg4" }, + haskellDelimiter = { link = "GruvboxOrange" }, + haskellOperators = { link = "GruvboxPurple" }, + haskellBacktick = { link = "GruvboxOrange" }, + haskellStatement = { link = "GruvboxPurple" }, + haskellConditional = { link = "GruvboxPurple" }, + haskellLet = { link = "GruvboxRed" }, + haskellDefault = { link = "GruvboxRed" }, + haskellWhere = { link = "GruvboxRed" }, + haskellBottom = { link = "GruvboxRedBold" }, + haskellImportKeywords = { link = "GruvboxPurpleBold" }, + haskellDeclKeyword = { link = "GruvboxOrange" }, + haskellDecl = { link = "GruvboxOrange" }, + haskellDeriving = { link = "GruvboxPurple" }, + haskellAssocType = { link = "GruvboxAqua" }, + haskellNumber = { link = "GruvboxAqua" }, + haskellPragma = { link = "GruvboxRedBold" }, + haskellTH = { link = "GruvboxAquaBold" }, + haskellForeignKeywords = { link = "GruvboxGreen" }, + haskellKeyword = { link = "GruvboxRed" }, + haskellFloat = { link = "GruvboxAqua" }, + haskellInfix = { link = "GruvboxPurple" }, + haskellQuote = { link = "GruvboxGreenBold" }, + haskellShebang = { link = "GruvboxYellowBold" }, + haskellLiquid = { link = "GruvboxPurpleBold" }, + haskellQuasiQuoted = { link = "GruvboxBlueBold" }, + haskellRecursiveDo = { link = "GruvboxPurple" }, + haskellQuotedType = { link = "GruvboxRed" }, + haskellPreProc = { link = "GruvboxFg4" }, + haskellTypeRoles = { link = "GruvboxRedBold" }, + haskellTypeForall = { link = "GruvboxRed" }, + haskellPatternKeyword = { link = "GruvboxBlue" }, + jsonKeyword = { link = "GruvboxGreen" }, + jsonQuote = { link = "GruvboxGreen" }, + jsonBraces = { link = "GruvboxFg1" }, + jsonString = { link = "GruvboxFg1" }, + mailQuoted1 = { link = "GruvboxAqua" }, + mailQuoted2 = { link = "GruvboxPurple" }, + mailQuoted3 = { link = "GruvboxYellow" }, + mailQuoted4 = { link = "GruvboxGreen" }, + mailQuoted5 = { link = "GruvboxRed" }, + mailQuoted6 = { link = "GruvboxOrange" }, + mailSignature = { link = "Comment" }, + csBraces = { link = "GruvboxFg1" }, + csEndColon = { link = "GruvboxFg1" }, + csLogicSymbols = { link = "GruvboxFg1" }, + csParens = { link = "GruvboxFg3" }, + csOpSymbols = { link = "GruvboxFg3" }, + csInterpolationDelimiter = { link = "GruvboxFg3" }, + csInterpolationAlignDel = { link = "GruvboxAquaBold" }, + csInterpolationFormat = { link = "GruvboxAqua" }, + csInterpolationFormatDel = { link = "GruvboxAquaBold" }, + rustSigil = { link = "GruvboxOrange" }, + rustEscape = { link = "GruvboxAqua" }, + rustStringContinuation = { link = "GruvboxAqua" }, + rustEnum = { link = "GruvboxAqua" }, + rustStructure = { link = "GruvboxAqua" }, + rustModPathSep = { link = "GruvboxFg2" }, + rustCommentLineDoc = { link = "Comment" }, + rustDefault = { link = "GruvboxAqua" }, + ocamlOperator = { link = "GruvboxFg1" }, + ocamlKeyChar = { link = "GruvboxOrange" }, + ocamlArrow = { link = "GruvboxOrange" }, + ocamlInfixOpKeyword = { link = "GruvboxRed" }, + ocamlConstructor = { link = "GruvboxOrange" }, + LspSagaCodeActionTitle = { link = "Title" }, + LspSagaCodeActionBorder = { link = "GruvboxFg1" }, + LspSagaCodeActionContent = { fg = colors.green, bold = config.bold }, + LspSagaLspFinderBorder = { link = "GruvboxFg1" }, + LspSagaAutoPreview = { link = "GruvboxOrange" }, + TargetWord = { fg = colors.blue, bold = config.bold }, + FinderSeparator = { link = "GruvboxAqua" }, + LspSagaDefPreviewBorder = { link = "GruvboxBlue" }, + LspSagaHoverBorder = { link = "GruvboxOrange" }, + LspSagaRenameBorder = { link = "GruvboxBlue" }, + LspSagaDiagnosticSource = { link = "GruvboxOrange" }, + LspSagaDiagnosticBorder = { link = "GruvboxPurple" }, + LspSagaDiagnosticHeader = { link = "GruvboxGreen" }, + LspSagaSignatureHelpBorder = { link = "GruvboxGreen" }, + SagaShadow = { link = "GruvboxBg0" }, + DashboardShortCut = { link = "GruvboxOrange" }, + DashboardHeader = { link = "GruvboxAqua" }, + DashboardCenter = { link = "GruvboxYellow" }, + DashboardFooter = { fg = colors.purple, italic = true }, + MasonHighlight = { link = "GruvboxAqua" }, + MasonHighlightBlock = { fg = colors.bg0, bg = colors.blue }, + MasonHighlightBlockBold = { fg = colors.bg0, bg = colors.blue, bold = true }, + MasonHighlightSecondary = { fg = colors.yellow }, + MasonHighlightBlockSecondary = { fg = colors.bg0, bg = colors.yellow }, + MasonHighlightBlockBoldSecondary = { fg = colors.bg0, bg = colors.yellow, bold = true }, + MasonHeader = { link = "MasonHighlightBlockBoldSecondary" }, + MasonHeaderSecondary = { link = "MasonHighlightBlockBold" }, + MasonMuted = { fg = colors.fg4 }, + MasonMutedBlock = { fg = colors.bg0, bg = colors.fg4 }, + MasonMutedBlockBold = { fg = colors.bg0, bg = colors.fg4, bold = true }, + LspInlayHint = { link = "comment" }, + CarbonFile = { link = "GruvboxFg1" }, + CarbonExe = { link = "GruvboxYellow" }, + CarbonSymlink = { link = "GruvboxAqua" }, + CarbonBrokenSymlink = { link = "GruvboxRed" }, + CarbonIndicator = { link = "GruvboxGray" }, + CarbonDanger = { link = "GruvboxRed" }, + CarbonPending = { link = "GruvboxYellow" }, + NoiceCursor = { link = "TermCursor" }, + NoiceCmdlinePopupBorder = { fg = colors.blue, bg = nil }, + NoiceCmdlineIcon = { link = "NoiceCmdlinePopupBorder" }, + NoiceConfirmBorder = { link = "NoiceCmdlinePopupBorder" }, + NoiceCmdlinePopupBorderSearch = { fg = colors.yellow, bg = nil }, + NoiceCmdlineIconSearch = { link = "NoiceCmdlinePopupBorderSearch" }, + NotifyDEBUGBorder = { link = "GruvboxBlue" }, + NotifyDEBUGIcon = { link = "GruvboxBlue" }, + NotifyDEBUGTitle = { link = "GruvboxBlue" }, + NotifyERRORBorder = { link = "GruvboxRed" }, + NotifyERRORIcon = { link = "GruvboxRed" }, + NotifyERRORTitle = { link = "GruvboxRed" }, + NotifyINFOBorder = { link = "GruvboxAqua" }, + NotifyINFOIcon = { link = "GruvboxAqua" }, + NotifyINFOTitle = { link = "GruvboxAqua" }, + NotifyTRACEBorder = { link = "GruvboxGreen" }, + NotifyTRACEIcon = { link = "GruvboxGreen" }, + NotifyTRACETitle = { link = "GruvboxGreen" }, + NotifyWARNBorder = { link = "GruvboxYellow" }, + NotifyWARNIcon = { link = "GruvboxYellow" }, + NotifyWARNTitle = { link = "GruvboxYellow" }, + IlluminatedWordText = { link = "LspReferenceText" }, + IlluminatedWordRead = { link = "LspReferenceRead" }, + IlluminatedWordWrite = { link = "LspReferenceWrite" }, + TSRainbowRed = { fg = colors.red }, + TSRainbowOrange = { fg = colors.orange }, + TSRainbowYellow = { fg = colors.yellow }, + TSRainbowGreen = { fg = colors.green }, + TSRainbowBlue = { fg = colors.blue }, + TSRainbowViolet = { fg = colors.purple }, + TSRainbowCyan = { fg = colors.aqua }, + RainbowDelimiterRed = { fg = colors.red }, + RainbowDelimiterOrange = { fg = colors.orange }, + RainbowDelimiterYellow = { fg = colors.yellow }, + RainbowDelimiterGreen = { fg = colors.green }, + RainbowDelimiterBlue = { fg = colors.blue }, + RainbowDelimiterViolet = { fg = colors.purple }, + RainbowDelimiterCyan = { fg = colors.aqua }, + DapBreakpointSymbol = { fg = colors.red, bg = colors.bg1 }, + DapStoppedSymbol = { fg = colors.green, bg = colors.bg1 }, + DapUIBreakpointsCurrentLine = { link = "GruvboxYellow" }, + DapUIBreakpointsDisabledLine = { link = "GruvboxGray" }, + DapUIBreakpointsInfo = { link = "GruvboxAqua" }, + DapUIBreakpointsLine = { link = "GruvboxYellow" }, + DapUIBreakpointsPath = { link = "GruvboxBlue" }, + DapUICurrentFrameName = { link = "GruvboxPurple" }, + DapUIDecoration = { link = "GruvboxPurple" }, + DapUIEndofBuffer = { link = "EndOfBuffer" }, + DapUIFloatBorder = { link = "GruvboxAqua" }, + DapUILineNumber = { link = "GruvboxYellow" }, + DapUIModifiedValue = { link = "GruvboxRed" }, + DapUIPlayPause = { fg = colors.green, bg = colors.bg1 }, + DapUIRestart = { fg = colors.green, bg = colors.bg1 }, + DapUIScope = { link = "GruvboxBlue" }, + DapUISource = { link = "GruvboxFg1" }, + DapUIStepBack = { fg = colors.blue, bg = colors.bg1 }, + DapUIStepInto = { fg = colors.blue, bg = colors.bg1 }, + DapUIStepOut = { fg = colors.blue, bg = colors.bg1 }, + DapUIStepOver = { fg = colors.blue, bg = colors.bg1 }, + DapUIStop = { fg = colors.red, bg = colors.bg1 }, + DapUIStoppedThread = { link = "GruvboxBlue" }, + DapUIThread = { link = "GruvboxBlue" }, + DapUIType = { link = "GruvboxOrange" }, + DapUIUnavailable = { link = "GruvboxGray" }, + DapUIWatchesEmpty = { link = "GruvboxGray" }, + DapUIWatchesError = { link = "GruvboxRed" }, + DapUIWatchesValue = { link = "GruvboxYellow" }, + DapUIWinSelect = { link = "GruvboxYellow" }, + NeogitDiffDelete = { link = "DiffDelete" }, + NeogitDiffAdd = { link = "DiffAdd" }, + NeogitHunkHeader = { link = "WinBar" }, + NeogitHunkHeaderHighlight = { link = "WinBarNC" }, + DiffviewStatusModified = { link = "GruvboxGreenBold" }, + DiffviewFilePanelInsertions = { link = "GruvboxGreenBold" }, + DiffviewFilePanelDeletions = { link = "GruvboxRedBold" }, + MiniAnimateCursor = { reverse = true, nocombine = true }, + MiniAnimateNormalFloat = { fg = colors.fg1, bg = colors.bg1 }, + MiniClueBorder = { link = "FloatBorder" }, + MiniClueDescGroup = { link = "DiagnosticFloatingWarn" }, + MiniClueDescSingle = { link = "NormalFloat" }, + MiniClueNextKey = { link = "DiagnosticFloatingHint" }, + MiniClueNextKeyWithPostkeys = { link = "DiagnosticFloatingError" }, + MiniClueSeparator = { link = "DiagnosticFloatingInfo" }, + MiniClueTitle = { link = "FloatTitle" }, + MiniCompletionActiveParameter = { underline = true }, + MiniCursorword = { underline = true }, + MiniCursorwordCurrent = { underline = true }, + MiniDepsChangeAdded = { link = "GruvboxGreen" }, + MiniDepsChangeRemoved = { link = "GruvboxRed" }, + MiniDepsHint = { link = "DiagnosticHint" }, + MiniDepsInfo = { link = "DiagnosticInfo" }, + MiniDepsMsgBreaking = { link = "DiagnosticWarn" }, + MiniDepsPlaceholder = { link = "Comment" }, + MiniDepsTitle = { link = "Title" }, + MiniDepsTitleError = { link = "DiffDelete" }, + MiniDepsTitleSame = { link = "DiffChange" }, + MiniDepsTitleUpdate = { link = "DiffAdd" }, + MiniDiffOverAdd = { link = "DiffAdd" }, + MiniDiffOverChange = { link = "DiffText" }, + MiniDiffOverContext = { link = "DiffChange" }, + MiniDiffOverDelete = { link = "DiffDelete" }, + MiniDiffSignAdd = { link = "GruvboxGreen" }, + MiniDiffSignChange = { link = "GruvboxAqua" }, + MiniDiffSignDelete = { link = "GruvboxRed" }, + MiniFilesBorder = { link = "FloatBorder" }, + MiniFilesBorderModified = { link = "DiagnosticFloatingWarn" }, + MiniFilesCursorLine = { bg = colors.bg2 }, + MiniFilesDirectory = { link = "Directory" }, + MiniFilesFile = { link = "GruvboxFg1" }, + MiniFilesNormal = { link = "NormalFloat" }, + MiniFilesTitle = { link = "FloatTitle" }, + MiniFilesTitleFocused = { link = "GruvboxOrangeBold" }, + MiniHipatternsFixme = { fg = colors.bg0, bg = colors.red, bold = config.bold }, + MiniHipatternsHack = { fg = colors.bg0, bg = colors.yellow, bold = config.bold }, + MiniHipatternsNote = { fg = colors.bg0, bg = colors.blue, bold = config.bold }, + MiniHipatternsTodo = { fg = colors.bg0, bg = colors.aqua, bold = config.bold }, + MiniIconsAzure = { link = "GruvboxBlue" }, + MiniIconsBlue = { link = "GruvboxBlue" }, + MiniIconsCyan = { link = "GruvboxAqua" }, + MiniIconsGreen = { link = "GruvboxGreen" }, + MiniIconsGrey = { link = "GruvboxFg0" }, + MiniIconsOrange = { link = "GruvboxOrange" }, + MiniIconsPurple = { link = "GruvboxPurple" }, + MiniIconsRed = { link = "GruvboxRed" }, + MiniIconsYellow = { link = "GruvboxYellow" }, + MiniIndentscopeSymbol = { link = "GruvboxGray" }, + MiniIndentscopeSymbolOff = { link = "GruvboxYellow" }, + MiniJump = { link = "GruvboxOrangeUnderline" }, + MiniJump2dDim = { link = "GruvboxGray" }, + MiniJump2dSpot = { fg = colors.orange, bold = config.bold, nocombine = true }, + MiniJump2dSpotAhead = { fg = colors.aqua, bg = colors.bg0, nocombine = true }, + MiniJump2dSpotUnique = { fg = colors.yellow, bold = config.bold, nocombine = true }, + MiniMapNormal = { link = "NormalFloat" }, + MiniMapSymbolCount = { link = "Special" }, + MiniMapSymbolLine = { link = "Title" }, + MiniMapSymbolView = { link = "Delimiter" }, + MiniNotifyBorder = { link = "FloatBorder" }, + MiniNotifyNormal = { link = "NormalFloat" }, + MiniNotifyTitle = { link = "FloatTitle" }, + MiniOperatorsExchangeFrom = { link = "IncSearch" }, + MiniPickBorder = { link = "FloatBorder" }, + MiniPickBorderBusy = { link = "DiagnosticFloatingWarn" }, + MiniPickBorderText = { link = "FloatTitle" }, + MiniPickIconDirectory = { link = "Directory" }, + MiniPickIconFile = { link = "MiniPickNormal" }, + MiniPickHeader = { link = "DiagnosticFloatingHint" }, + MiniPickMatchCurrent = { bg = colors.bg2 }, + MiniPickMatchMarked = { link = "Visual" }, + MiniPickMatchRanges = { link = "DiagnosticFloatingHint" }, + MiniPickNormal = { link = "NormalFloat" }, + MiniPickPreviewLine = { link = "CursorLine" }, + MiniPickPreviewRegion = { link = "IncSearch" }, + MiniPickPrompt = { link = "DiagnosticFloatingInfo" }, + MiniStarterCurrent = { nocombine = true }, + MiniStarterFooter = { link = "GruvboxGray" }, + MiniStarterHeader = { link = "Title" }, + MiniStarterInactive = { link = "Comment" }, + MiniStarterItem = { link = "Normal" }, + MiniStarterItemBullet = { link = "Delimiter" }, + MiniStarterItemPrefix = { link = "WarningMsg" }, + MiniStarterSection = { link = "Delimiter" }, + MiniStarterQuery = { link = "MoreMsg" }, + MiniStatuslineDevinfo = { link = "StatusLine" }, + MiniStatuslineFileinfo = { link = "StatusLine" }, + MiniStatuslineFilename = { link = "StatusLineNC" }, + MiniStatuslineInactive = { link = "StatusLineNC" }, + MiniStatuslineModeCommand = { fg = colors.bg0, bg = colors.yellow, bold = config.bold, nocombine = true }, + MiniStatuslineModeInsert = { fg = colors.bg0, bg = colors.blue, bold = config.bold, nocombine = true }, + MiniStatuslineModeNormal = { fg = colors.bg0, bg = colors.fg1, bold = config.bold, nocombine = true }, + MiniStatuslineModeOther = { fg = colors.bg0, bg = colors.aqua, bold = config.bold, nocombine = true }, + MiniStatuslineModeReplace = { fg = colors.bg0, bg = colors.red, bold = config.bold, nocombine = true }, + MiniStatuslineModeVisual = { fg = colors.bg0, bg = colors.green, bold = config.bold, nocombine = true }, + MiniSurround = { link = "IncSearch" }, + MiniTablineCurrent = { fg = colors.green, bg = colors.bg1, bold = config.bold, reverse = config.invert_tabline }, + MiniTablineFill = { link = "TabLineFill" }, + MiniTablineHidden = { fg = colors.bg4, bg = colors.bg1, reverse = config.invert_tabline }, + MiniTablineModifiedCurrent = { + fg = colors.bg1, + bg = colors.green, + bold = config.bold, + reverse = config.invert_tabline, + }, + MiniTablineModifiedHidden = { fg = colors.bg1, bg = colors.bg4, reverse = config.invert_tabline }, + MiniTablineModifiedVisible = { fg = colors.bg1, bg = colors.fg1, reverse = config.invert_tabline }, + MiniTablineTabpagesection = { link = "Search" }, + MiniTablineVisible = { fg = colors.fg1, bg = colors.bg1, reverse = config.invert_tabline }, + MiniTestEmphasis = { bold = config.bold }, + MiniTestFail = { link = "GruvboxRedBold" }, + MiniTestPass = { link = "GruvboxGreenBold" }, + MiniTrailspace = { bg = colors.red }, + WhichKeyTitle = { link = "NormalFloat" }, + NeoTreeFloatBorder = { link = "GruvboxGray" }, + NeoTreeTitleBar = { fg = colors.fg1, bg = colors.bg2 }, + NeoTreeDirectoryIcon = { link = "GruvboxGreen" }, + NeoTreeDirectoryName = { link = "GruvboxGreenBold" }, + ["@comment"] = { link = "Comment" }, + ["@none"] = { bg = "NONE", fg = "NONE" }, + ["@preproc"] = { link = "PreProc" }, + ["@define"] = { link = "Define" }, + ["@operator"] = { link = "Operator" }, + ["@punctuation.delimiter"] = { link = "Delimiter" }, + ["@punctuation.bracket"] = { link = "Delimiter" }, + ["@punctuation.special"] = { link = "Delimiter" }, + ["@string"] = { link = "String" }, + ["@string.regex"] = { link = "String" }, + ["@string.regexp"] = { link = "String" }, + ["@string.escape"] = { link = "SpecialChar" }, + ["@string.special"] = { link = "SpecialChar" }, + ["@string.special.path"] = { link = "Underlined" }, + ["@string.special.symbol"] = { link = "Identifier" }, + ["@string.special.url"] = { link = "Underlined" }, + ["@character"] = { link = "Character" }, + ["@character.special"] = { link = "SpecialChar" }, + ["@boolean"] = { link = "Boolean" }, + ["@number"] = { link = "Number" }, + ["@number.float"] = { link = "Float" }, + ["@float"] = { link = "Float" }, + ["@function"] = { link = "Function" }, + ["@function.builtin"] = { link = "Special" }, + ["@function.call"] = { link = "Function" }, + ["@function.macro"] = { link = "Macro" }, + ["@function.method"] = { link = "Function" }, + ["@method"] = { link = "Function" }, + ["@method.call"] = { link = "Function" }, + ["@constructor"] = { link = "Special" }, + ["@parameter"] = { link = "Identifier" }, + ["@keyword"] = { link = "Keyword" }, + ["@keyword.conditional"] = { link = "Conditional" }, + ["@keyword.debug"] = { link = "Debug" }, + ["@keyword.directive"] = { link = "PreProc" }, + ["@keyword.directive.define"] = { link = "Define" }, + ["@keyword.exception"] = { link = "Exception" }, + ["@keyword.function"] = { link = "Keyword" }, + ["@keyword.import"] = { link = "Include" }, + ["@keyword.operator"] = { link = "GruvboxRed" }, + ["@keyword.repeat"] = { link = "Repeat" }, + ["@keyword.return"] = { link = "Keyword" }, + ["@keyword.storage"] = { link = "StorageClass" }, + ["@conditional"] = { link = "Conditional" }, + ["@repeat"] = { link = "Repeat" }, + ["@debug"] = { link = "Debug" }, + ["@label"] = { link = "Label" }, + ["@include"] = { link = "Include" }, + ["@exception"] = { link = "Exception" }, + ["@type"] = { link = "Type" }, + ["@type.builtin"] = { link = "Type" }, + ["@type.definition"] = { link = "Typedef" }, + ["@type.qualifier"] = { link = "Type" }, + ["@storageclass"] = { link = "StorageClass" }, + ["@attribute"] = { link = "PreProc" }, + ["@field"] = { link = "Identifier" }, + ["@property"] = { link = "Identifier" }, + ["@variable"] = { link = "GruvboxFg1" }, + ["@variable.builtin"] = { link = "Special" }, + ["@variable.member"] = { link = "Identifier" }, + ["@variable.parameter"] = { link = "Identifier" }, + ["@constant"] = { link = "Constant" }, + ["@constant.builtin"] = { link = "Special" }, + ["@constant.macro"] = { link = "Define" }, + ["@markup"] = { link = "GruvboxFg1" }, + ["@markup.strong"] = { bold = config.bold }, + ["@markup.italic"] = { link = "@text.emphasis" }, + ["@markup.underline"] = { underline = config.underline }, + ["@markup.strikethrough"] = { strikethrough = config.strikethrough }, + ["@markup.heading"] = { link = "Title" }, + ["@markup.raw"] = { link = "String" }, + ["@markup.math"] = { link = "Special" }, + ["@markup.environment"] = { link = "Macro" }, + ["@markup.environment.name"] = { link = "Type" }, + ["@markup.link"] = { link = "Underlined" }, + ["@markup.link.label"] = { link = "SpecialChar" }, + ["@markup.list"] = { link = "Delimiter" }, + ["@markup.list.checked"] = { link = "GruvboxGreen" }, + ["@markup.list.unchecked"] = { link = "GruvboxGray" }, + ["@comment.todo"] = { link = "Todo" }, + ["@comment.note"] = { link = "SpecialComment" }, + ["@comment.warning"] = { link = "WarningMsg" }, + ["@comment.error"] = { link = "ErrorMsg" }, + ["@diff.plus"] = { link = "diffAdded" }, + ["@diff.minus"] = { link = "diffRemoved" }, + ["@diff.delta"] = { link = "diffChanged" }, + ["@module"] = { link = "GruvboxFg1" }, + ["@namespace"] = { link = "GruvboxFg1" }, + ["@symbol"] = { link = "Identifier" }, + ["@text"] = { link = "GruvboxFg1" }, + ["@text.strong"] = { bold = config.bold }, + ["@text.emphasis"] = { italic = config.italic.emphasis }, + ["@text.underline"] = { underline = config.underline }, + ["@text.strike"] = { strikethrough = config.strikethrough }, + ["@text.title"] = { link = "Title" }, + ["@text.literal"] = { link = "String" }, + ["@text.uri"] = { link = "Underlined" }, + ["@text.math"] = { link = "Special" }, + ["@text.environment"] = { link = "Macro" }, + ["@text.environment.name"] = { link = "Type" }, + ["@text.reference"] = { link = "Constant" }, + ["@text.todo"] = { link = "Todo" }, + ["@text.todo.checked"] = { link = "GruvboxGreen" }, + ["@text.todo.unchecked"] = { link = "GruvboxGray" }, + ["@text.note"] = { link = "SpecialComment" }, + ["@text.note.comment"] = { fg = colors.purple, bold = config.bold }, + ["@text.warning"] = { link = "WarningMsg" }, + ["@text.danger"] = { link = "ErrorMsg" }, + ["@text.danger.comment"] = { fg = colors.fg0, bg = colors.red, bold = config.bold }, + ["@text.diff.add"] = { link = "diffAdded" }, + ["@text.diff.delete"] = { link = "diffRemoved" }, + ["@tag"] = { link = "Tag" }, + ["@tag.attribute"] = { link = "Identifier" }, + ["@tag.delimiter"] = { link = "Delimiter" }, + ["@punctuation"] = { link = "Delimiter" }, + ["@macro"] = { link = "Macro" }, + ["@structure"] = { link = "Structure" }, + ["@lsp.type.class"] = { link = "@type" }, + ["@lsp.type.comment"] = { link = "@comment" }, + ["@lsp.type.decorator"] = { link = "@macro" }, + ["@lsp.type.enum"] = { link = "@type" }, + ["@lsp.type.enumMember"] = { link = "@constant" }, + ["@lsp.type.function"] = { link = "@function" }, + ["@lsp.type.interface"] = { link = "@constructor" }, + ["@lsp.type.macro"] = { link = "@macro" }, + ["@lsp.type.method"] = { link = "@method" }, + ["@lsp.type.modifier.java"] = { link = "@keyword.type.java" }, + ["@lsp.type.namespace"] = { link = "@namespace" }, + ["@lsp.type.parameter"] = { link = "@parameter" }, + ["@lsp.type.property"] = { link = "@property" }, + ["@lsp.type.struct"] = { link = "@type" }, + ["@lsp.type.type"] = { link = "@type" }, + ["@lsp.type.typeParameter"] = { link = "@type.definition" }, + ["@lsp.type.variable"] = { link = "@variable" }, + + -- NeoTreeDirectoryName = { link = "Directory" }, + -- NeoTreeDotfile = { fg = colors.fg4 }, + -- NeoTreeFadeText1 = { fg = colors.fg3 }, + -- NeoTreeFadeText2 = { fg = colors.fg4 }, + -- NeoTreeFileIcon = { fg = colors.blue }, + -- NeoTreeFileName = { fg = colors.fg1 }, + -- NeoTreeFileNameOpened = { fg = colors.fg1, bold = true }, + -- NeoTreeFileStats = { fg = colors.fg3 }, + -- NeoTreeFileStatsHeader = { fg = colors.fg2, italic = true }, + -- NeoTreeFilterTerm = { link = "SpecialChar" }, + -- NeoTreeHiddenByName = { link = "NeoTreeDotfile" }, + -- NeoTreeIndentMarker = { fg = colors.fg4 }, + -- NeoTreeMessage = { fg = colors.fg3, italic = true }, + -- NeoTreeModified = { fg = colors.yellow }, + -- NeoTreeRootName = { fg = colors.fg1, bold = true, italic = true }, + -- NeoTreeSymbolicLinkTarget = { link = "NeoTreeFileName" }, + -- NeoTreeExpander = { fg = colors.fg4 }, + -- NeoTreeWindowsHidden = { link = "NeoTreeDotfile" }, + -- NeoTreePreview = { link = "Search" }, + -- NeoTreeGitAdded = { link = "GitGutterAdd" }, + -- NeoTreeGitConflict = { fg = colors.orange, bold = true, italic = true }, + -- NeoTreeGitDeleted = { link = "GitGutterDelete" }, + -- NeoTreeGitIgnored = { link = "NeoTreeDotfile" }, + -- NeoTreeGitModified = { link = "GitGutterChange" }, + -- NeoTreeGitRenamed = { link = "NeoTreeGitModified" }, + -- NeoTreeGitStaged = { link = "NeoTreeGitAdded" }, + -- NeoTreeGitUntracked = { fg = colors.orange, italic = true }, + -- NeoTreeGitUnstaged = { link = "NeoTreeGitConflict" }, + -- NeoTreeTabActive = { fg = colors.fg1, bold = true }, + -- NeoTreeTabInactive = { fg = colors.fg4, bg = colors.bg1 }, + -- NeoTreeTabSeparatorActive = { fg = colors.bg1 }, + -- NeoTreeTabSeparatorInactive = { fg = colors.bg2, bg = colors.bg1 }, + } + + for group, hl in pairs(config.overrides) do + if groups[group] then + -- "link" should not mix with other configs (:h hi-link) + groups[group].link = nil + end + + groups[group] = vim.tbl_extend("force", groups[group] or {}, hl) + end + + return groups +end + +---@param config GruvboxConfig? +Gruvbox.setup = function(config) + Gruvbox.config = vim.deepcopy(default_config) + Gruvbox.config = vim.tbl_deep_extend("force", Gruvbox.config, config or {}) +end + +--- main load function +Gruvbox.load = function() + if vim.version().minor < 8 then + vim.notify_once("gruvbox.nvim: you must use neovim 0.8 or higher") + return + end + + -- reset colors + if vim.g.colors_name then + vim.cmd.hi("clear") + end + vim.g.colors_name = "gruvbox" + vim.o.termguicolors = true + + local groups = get_groups() + + -- add highlights + for group, settings in pairs(groups) do + vim.api.nvim_set_hl(0, group, settings) + end +end + +return Gruvbox diff --git a/.config/nvim/nvim-pack-lock.json b/.config/nvim/nvim-pack-lock.json new file mode 100644 index 0000000..e0114c0 --- /dev/null +++ b/.config/nvim/nvim-pack-lock.json @@ -0,0 +1,72 @@ +{ + "plugins": { + "mason-lspconfig.nvim": { + "rev": "80c0130c5f16b551865a69e832f1feadeedb5fbe", + "src": "https://github.com/mason-org/mason-lspconfig.nvim" + }, + "mason-tool-installer.nvim": { + "rev": "517ef5994ef9d6b738322664d5fdd948f0fdeb46", + "src": "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim" + }, + "mason.nvim": { + "rev": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65", + "src": "https://github.com/mason-org/mason.nvim" + }, + "mini-git": { + "rev": "df3881fec1d2fd7f8b9334821861de511e71f69e", + "src": "https://github.com/nvim-mini/mini-git" + }, + "mini.animate": { + "rev": "0365de8b69331c25d0d0d7573407a7dc7719e578", + "src": "https://github.com/nvim-mini/mini.animate" + }, + "mini.clue": { + "rev": "e2f0c1eb3ce652e34b1e9a9c504a780acf3bd4e3", + "src": "https://github.com/nvim-mini/mini.clue" + }, + "mini.completion": { + "rev": "4d451f82f193f6751719935a63d16ccb79a76e0b", + "src": "https://github.com/nvim-mini/mini.completion" + }, + "mini.diff": { + "rev": "6010e588e9ed14724880f244d7fa3df8f0be3f46", + "src": "https://github.com/nvim-mini/mini.diff" + }, + "mini.hipatterns": { + "rev": "add8d8abad602787377ec5d81f6b248605828e0f", + "src": "https://github.com/nvim-mini/mini.hipatterns" + }, + "mini.icons": { + "rev": "efc85e42262cd0c9e1fdbf806c25cb0be6de115c", + "src": "https://github.com/nvim-mini/mini.icons" + }, + "mini.notify": { + "rev": "29ec27f60bf4b63e447c851d9061c434d80795a6", + "src": "https://github.com/nvim-mini/mini.notify" + }, + "mini.snippets": { + "rev": "b4065ca6b33e4df2897672d3bb760cfc93f4390a", + "src": "https://github.com/nvim-mini/mini.snippets" + }, + "mini.statusline": { + "rev": "3e96596ebe51b899874d8174409cdc4f3c749d9a", + "src": "https://github.com/nvim-mini/mini.statusline" + }, + "mini.tabline": { + "rev": "caf23615b9b99bacc79ecd60f61c4e6a8ec18c84", + "src": "https://github.com/nvim-mini/mini.tabline" + }, + "nvim-lspconfig": { + "rev": "92ee7d42320edfbb81f3cad851314ab197fa324a", + "src": "https://github.com/neovim/nvim-lspconfig" + }, + "nvim-treesitter": { + "rev": "5a7e5638e7d220575b1c22c8a2e099b52231886e", + "src": "https://github.com/nvim-treesitter/nvim-treesitter" + }, + "tree-sitter-latex": { + "rev": "7e0ecdc02926c7b9b2e0c76003d4fe7b0944f957", + "src": "https://github.com/latex-lsp/tree-sitter-latex" + } + } +} \ No newline at end of file