From bb5f48a470dc533929290ef4953bb84f3640b917 Mon Sep 17 00:00:00 2001 From: "J. S. Brown" Date: Fri, 13 Feb 2026 22:42:16 -0800 Subject: [PATCH] Tune popup, indent, and gutter highlight overrides --- lua/biscuit.lua | 130 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/lua/biscuit.lua b/lua/biscuit.lua index 1ad6b57..52aaf29 100644 --- a/lua/biscuit.lua +++ b/lua/biscuit.lua @@ -815,6 +815,136 @@ M.setup = function() HI(0, "PreProc", { fg = "#959A6B" }) HI(0, "@lsp.type.namespace", { link = "@namespace" }) HI(0, "IlluminatedWordText", { sp = "#9C8181", underline = true }) + + -- Final popup/completion overrides so plugin/theme reloads keep a consistent palette. + local popup_bg = "#1A1515" + local popup_light_bg = "#453636" + local popup_fg = "#ffe9c7" + local popup_border = "#725a5a" + local popup_accent = "#f07342" + local indent = "#453636" + local scope = "#725a5a" + local cmp_kinds = { + "Text", + "Method", + "Function", + "Constructor", + "Field", + "Variable", + "Class", + "Interface", + "Module", + "Property", + "Unit", + "Value", + "Enum", + "Keyword", + "Snippet", + "Color", + "File", + "Reference", + "Folder", + "EnumMember", + "Constant", + "Struct", + "Event", + "Operator", + "TypeParameter", + } + + local function apply_popup_highlights() + HI(0, "NormalFloat", { bg = popup_bg, fg = popup_fg }) + HI(0, "FloatBorder", { bg = popup_bg, fg = popup_border }) + HI(0, "Pmenu", { bg = popup_bg, fg = popup_fg }) + HI(0, "PmenuSel", { bg = popup_border, fg = popup_fg, bold = true }) + HI(0, "PmenuSbar", { bg = popup_bg }) + HI(0, "PmenuThumb", { bg = popup_border }) + HI(0, "PmenuKind", { bg = popup_bg, fg = popup_accent }) + HI(0, "PmenuExtra", { bg = popup_bg, fg = popup_border }) + HI(0, "PmenuKindSel", { bg = popup_border, fg = popup_accent, bold = true }) + HI(0, "PmenuExtraSel", { bg = popup_border, fg = popup_fg, bold = true }) + HI(0, "WildMenu", { bg = popup_border, fg = popup_fg, bold = true }) + HI(0, "WildSel", { bg = popup_border, fg = popup_fg, bold = true }) + + HI(0, "BlinkCmpMenu", { bg = popup_light_bg, fg = popup_fg }) + HI(0, "BlinkCmpMenuBorder", { bg = popup_light_bg, fg = popup_border }) + HI(0, "BlinkCmpMenuSelection", { bg = popup_border, fg = popup_fg, bold = true }) + HI(0, "BlinkCmpScrollBarGutter", { bg = popup_light_bg }) + HI(0, "BlinkCmpScrollBarThumb", { bg = popup_border }) + HI(0, "BlinkCmpDoc", { bg = popup_light_bg, fg = popup_fg }) + HI(0, "BlinkCmpDocBorder", { bg = popup_light_bg, fg = popup_border }) + HI(0, "BlinkCmpDocSeparator", { bg = popup_light_bg, fg = popup_border }) + HI(0, "BlinkCmpLabel", { fg = popup_fg }) + HI(0, "BlinkCmpLabelMatch", { fg = popup_accent, bold = true }) + HI(0, "BlinkCmpLabelDetail", { fg = popup_border }) + HI(0, "BlinkCmpLabelDescription", { fg = popup_border }) + HI(0, "BlinkCmpSource", { fg = popup_accent }) + HI(0, "BlinkCmpKind", { fg = popup_accent }) + + for _, kind in ipairs(cmp_kinds) do + HI(0, "BlinkCmpKind" .. kind, { fg = popup_accent }) + end + + HI(0, "CmpItemAbbr", { fg = popup_fg }) + HI(0, "CmpItemAbbrMatch", { fg = popup_accent, bold = true }) + HI(0, "CmpItemMenu", { fg = popup_border }) + HI(0, "CmpItemKind", { fg = popup_accent }) + + for _, kind in ipairs(cmp_kinds) do + HI(0, "CmpItemKind" .. kind, { fg = popup_accent }) + end + + HI(0, "NoiceCmdlinePopup", { bg = popup_bg, fg = popup_fg }) + HI(0, "NoiceCmdlinePopupBorder", { bg = popup_bg, fg = popup_border }) + HI(0, "NoiceCmdlineIcon", { fg = popup_accent }) + + HI(0, "IblIndent", { fg = indent, nocombine = true }) + HI(0, "IblWhitespace", { fg = indent, nocombine = true }) + HI(0, "IblScope", { fg = scope, nocombine = true }) + HI(0, "IndentBlanklineChar", { fg = indent, nocombine = true }) + HI(0, "IndentBlanklineContextChar", { fg = scope, nocombine = true }) + + HI(0, "RainbowRed", { fg = "#F07342" }) + HI(0, "RainbowYellow", { fg = "#E39C45" }) + HI(0, "RainbowBlue", { fg = "#614F76" }) + HI(0, "RainbowOrange", { fg = "#959A6B" }) + HI(0, "RainbowGreen", { fg = "#768F80" }) + HI(0, "RainbowViolet", { fg = "#7B3D79" }) + HI(0, "RainbowCyan", { fg = "#AE3F82" }) + + HI(0, "SignColumn", { bg = "#1A1515" }) + HI(0, "GitSignsAdd", { fg = "#768F80", bg = "NONE" }) + HI(0, "GitSignsChange", { fg = "#756D94", bg = "NONE" }) + HI(0, "GitSignsDelete", { fg = "#F07342", bg = "NONE" }) + HI(0, "GitSignsTopdelete", { fg = "#F07342", bg = "NONE" }) + HI(0, "GitSignsChangedelete", { fg = "#E39C45", bg = "NONE" }) + HI(0, "GitSignsUntracked", { fg = "#9C8181", bg = "NONE" }) + HI(0, "MiniDiffSignAdd", { fg = "#768F80", bg = "NONE" }) + HI(0, "MiniDiffSignChange", { fg = "#756D94", bg = "NONE" }) + HI(0, "MiniDiffSignDelete", { fg = "#F07342", bg = "NONE" }) + end + + apply_popup_highlights() + local group = vim.api.nvim_create_augroup("BiscuitPopupColors", { clear = true }) + + vim.api.nvim_create_autocmd("ColorScheme", { + group = group, + callback = function() + if vim.g.colors_name == "biscuit" then + apply_popup_highlights() + end + end, + }) + + vim.api.nvim_create_autocmd("User", { + group = group, + pattern = { "BlinkCmpMenuOpen", "BlinkCmpShow" }, + callback = function() + if vim.g.colors_name == "biscuit" then + apply_popup_highlights() + end + end, + }) end return M