fix: gemini own deep research

This commit is contained in:
Brian Pooe 2025-09-27 12:44:19 +02:00
parent be3df6baca
commit a430881a53

View file

@ -2,750 +2,380 @@
-- A Neovim theme inspired by the JetBrains Darcula theme. -- A Neovim theme inspired by the JetBrains Darcula theme.
-- Author: brianpooe -- Author: brianpooe
-- License: MIT -- License: MIT
-- Updated based on canonical JetBrains Darcula specification.
local lush = require("lush") local lush = require("lush")
local hsl = lush.hsl local hsl = lush.hsl
-- The official Darcula color palette -- The Canonical JetBrains Darcula Color Palette
-- Sourced from JetBrains IDEs official specifications -- Sourced from the official Darcula Look and Feel implementation.
local p = { local p = {
-- Base Colors (Updated to match JetBrains exactly) -- Editor and UI Colors
bg = hsl("#2B2B2B"), -- Editor background editor_bg = hsl("#2B2B2B"), -- The primary background color of the code editor pane.
bg_light = hsl("#3C3F41"), -- UI elements like statusline, popups ui_bg = hsl("#3C3F41"), -- Background for UI elements like sidebars, status bars, and tool windows.
bg_darker = hsl("#242424"), -- Darker background for some UI elements gutter_bg = hsl("#313335"), -- Background for the editor gutter where line numbers are displayed.
bg_gutter = hsl("#313335"), -- Gutter background current_line_bg = hsl("#323232"), -- A slightly lighter shade for the current line background.
bg_visual = hsl("#214283"), -- Visual selection background selection_bg = hsl("#214283"), -- The background color for selected text.
bg_search = hsl("#32593D"), -- Search highlight search_result_bg = hsl("#32593D"), -- Background color for the primary search result.
bg_current_line = hsl("#323232"), -- Current line background other_search_results_bg = hsl("#4D4D2F"), -- Background for other occurrences of a search term.
fg = hsl("#A9B7C6"), -- Default foreground -- Foreground Colors
fg_dark = hsl("#606366"), -- Gutter numbers, inactive elements fg = hsl("#A9B7C6"), -- The default color for plain text, parameters, and general code.
fg_comment = hsl("#808080"), -- Comments gutter_fg = hsl("#606366"), -- The color of line numbers in the gutter.
fg_light = hsl("#BBBBBB"), -- Lighter text comment = hsl("#808080"), -- Used for all code comments (line and block).
white = hsl("#FFFFFF"), -- Pure white for high contrast text on dark selections.
-- Syntax Colors (Refined to match JetBrains) -- Syntax Colors
orange = hsl("#CC7832"), -- Keywords (if, else, for), statements keyword = hsl("#CC7832"), -- Keywords (if, for, return), storage classes (static, const).
yellow = hsl("#FFC66D"), -- Functions, methods string = hsl("#6A8759"), -- All string literals and character constants.
yellow_dark = hsl("#BBB529"), -- Macros number = hsl("#6897BB"), -- Integer, float, and other numeric constants.
green = hsl("#6A8759"), -- Strings (darker green) function_call = hsl("#FFC66D"), -- The color used for function and method invocations.
green_bright = hsl("#A5C25C"), -- Alternative string color (brighter) annotation = hsl("#BBB529"), -- Annotations (Java), decorators (Python), attributes (Rust).
purple = hsl("#9876AA"), -- Variables, properties, constants constant = hsl("#9876AA"), -- Named constants, enumeration members.
purple_dark = hsl("#94558D"), -- Builtin variables member_variable = hsl("#9876AA"), -- Instance or class-level variables and properties. Often italicized.
cyan = hsl("#6897BB"), -- Numbers
cyan_bright = hsl("#5394EC"), -- Info, links
pink = hsl("#CB77B4"), -- Tags, annotations
blue = hsl("#287BDE"), -- Links, special blues
blue_dark = hsl("#4A86C7"), -- Darker blue variant
white = hsl("#FFFFFF"),
-- Additional semantic colors -- Diagnostic Colors
gray = hsl("#606060"), -- Various UI elements error = hsl("#BC3F3C"), -- Color for error text and squiggly underlines.
gray_light = hsl("#767676"), -- Lighter gray warning = hsl("#BE9117"), -- Color for warning text and squiggly underlines.
brown = hsl("#A68A64"), -- Special uses info = hsl("#525A52"), -- Color for informational diagnostic underlines.
error_bg = hsl("#562B2C"), -- A subtle background for error text.
warning_bg = hsl("#554825"), -- A subtle background for warning text.
info_bg = hsl("#354736"), -- A subtle background for info text.
-- Diagnostic Colors (JetBrains spec) -- Diff Colors
error = hsl("#C75450"), -- More accurate error color diff_add = hsl("#4A8F4A"), -- Background color for added lines in a diff view.
error_bg = hsl("#3D2929"), -- Error background diff_mod = hsl("#385570"), -- Background color for modified lines in a diff view.
warning = hsl("#D6BF55"), -- Updated warning diff_del = hsl("#632F34"), -- Background color for deleted lines in a diff view.
warning_bg = hsl("#3D3D29"), -- Warning background diff_text = hsl("#A9B7C6"), -- Text color for diffs, typically the default foreground.
info = hsl("#5394EC"),
info_bg = hsl("#293D48"), -- Info background
hint = hsl("#499C54"), -- Success/hint green
hint_bg = hsl("#294F33"), -- Hint background
-- Diff colors
diff_add = hsl("#294F33"),
diff_change = hsl("#3D3D0A"),
diff_delete = hsl("#484A4A"),
diff_text = hsl("#656E76"),
-- UI Border -- UI Border
border = hsl("#616161"), border = hsl("#515658"), -- A slightly lighter border for active UI elements.
border_dark = hsl("#424242"),
} }
-- Terminal colors for integrated terminal -- Terminal colors for integrated terminal, aligned with the Darcula palette
vim.g.terminal_color_0 = "#2B2B2B" -- black vim.g.terminal_color_0 = "#2B2B2B" -- black (editor_bg)
vim.g.terminal_color_1 = "#FF6B68" -- red vim.g.terminal_color_1 = "#BC3F3C" -- red (error)
vim.g.terminal_color_2 = "#A8C023" -- green vim.g.terminal_color_2 = "#6A8759" -- green (string)
vim.g.terminal_color_3 = "#D6BF55" -- yellow vim.g.terminal_color_3 = "#FFC66D" -- yellow (function_call)
vim.g.terminal_color_4 = "#5394EC" -- blue vim.g.terminal_color_4 = "#6897BB" -- blue (number)
vim.g.terminal_color_5 = "#AE8ABE" -- magenta vim.g.terminal_color_5 = "#9876AA" -- magenta (constant)
vim.g.terminal_color_6 = "#299999" -- cyan vim.g.terminal_color_6 = "#6897BB" -- cyan (number)
vim.g.terminal_color_7 = "#A9B7C6" -- white vim.g.terminal_color_7 = "#A9B7C6" -- white (fg)
vim.g.terminal_color_8 = "#606366" -- bright black vim.g.terminal_color_8 = "#606366" -- bright black (gutter_fg)
vim.g.terminal_color_9 = "#FF9980" -- bright red vim.g.terminal_color_9 = "#CC7832" -- bright red (keyword)
vim.g.terminal_color_10 = "#C3D82C" -- bright green vim.g.terminal_color_10 = "#A9B7C6" -- bright green (fg)
vim.g.terminal_color_11 = "#FFFF00" -- bright yellow vim.g.terminal_color_11 = "#BBB529" -- bright yellow (annotation)
vim.g.terminal_color_12 = "#6FB3D2" -- bright blue vim.g.terminal_color_12 = "#A9B7C6" -- bright blue (fg)
vim.g.terminal_color_13 = "#D197D9" -- bright magenta vim.g.terminal_color_13 = "#9876AA" -- bright magenta (constant)
vim.g.terminal_color_14 = "#4DD0E1" -- bright cyan vim.g.terminal_color_14 = "#6897BB" -- bright cyan (number)
vim.g.terminal_color_15 = "#FFFFFF" -- bright white vim.g.terminal_color_15 = "#FFFFFF" -- bright white (white)
-- The theme definition using lush.nvim -- The theme definition using lush.nvim
return lush(function() return lush(function()
return { return {
-- == Neovim UI Groups == -- -- == Neovim UI Groups == --
Normal({ bg = p.bg, fg = p.fg }), Normal({ bg = p.editor_bg, fg = p.fg }),
NormalNC({ bg = p.bg, fg = p.fg }), -- Non-current windows NormalNC({ bg = p.editor_bg, fg = p.fg }), -- Non-current windows
NormalFloat({ bg = p.bg_light, fg = p.fg }), -- Floating windows NormalFloat({ bg = p.ui_bg, fg = p.fg }), -- Floating windows
FloatBorder({ bg = p.bg_light, fg = p.border }), FloatBorder({ bg = p.ui_bg, fg = p.border }),
SignColumn({ bg = p.bg, fg = p.fg_dark }), SignColumn({ bg = p.gutter_bg, fg = p.gutter_fg }),
LineNr({ bg = p.bg, fg = p.fg_dark }), LineNr({ bg = p.gutter_bg, fg = p.gutter_fg }),
CursorLineNr({ bg = p.bg, fg = p.yellow, style = "bold" }), CursorLineNr({ bg = p.gutter_bg, fg = p.fg, style = "bold" }),
CursorLine({ bg = p.bg_current_line }), CursorLine({ bg = p.current_line_bg }),
CursorColumn({ bg = p.bg_current_line }), CursorColumn({ bg = p.current_line_bg }),
ColorColumn({ bg = p.bg_light }), ColorColumn({ bg = p.current_line_bg }),
Visual({ bg = p.bg_visual }), Visual({ bg = p.selection_bg }),
VisualNOS({ bg = p.bg_visual }), VisualNOS({ bg = p.selection_bg }),
Pmenu({ bg = p.bg_light, fg = p.fg }), Pmenu({ bg = p.ui_bg, fg = p.fg }),
PmenuSel({ bg = p.bg_visual, fg = p.white }), PmenuSel({ bg = p.selection_bg, fg = p.white }),
PmenuSbar({ bg = p.bg_light }), PmenuSbar({ bg = p.ui_bg }),
PmenuThumb({ bg = p.fg_dark }), PmenuThumb({ bg = p.gutter_fg }),
StatusLine({ bg = p.bg_light, fg = p.fg }), StatusLine({ bg = p.ui_bg, fg = p.fg, style = "NONE" }),
StatusLineNC({ bg = p.bg_gutter, fg = p.fg_dark }), StatusLineNC({ bg = p.gutter_bg, fg = p.gutter_fg }),
TabLine({ bg = p.bg_gutter, fg = p.fg_dark }), TabLine({ bg = p.gutter_bg, fg = p.gutter_fg }),
TabLineFill({ bg = p.bg_gutter }), TabLineFill({ bg = p.gutter_bg }),
TabLineSel({ bg = p.bg_light, fg = p.white }), TabLineSel({ bg = p.ui_bg, fg = p.white }),
VertSplit({ fg = p.border_dark, bg = p.bg }), VertSplit({ fg = p.gutter_fg, bg = p.editor_bg }),
WinSeparator({ fg = p.border_dark, bg = p.bg }), WinSeparator({ fg = p.gutter_fg, bg = p.editor_bg }),
Search({ bg = p.bg_search, fg = p.white }), Search({ bg = p.search_result_bg, fg = p.white }),
IncSearch({ bg = hsl("#474131"), fg = p.yellow }), IncSearch({ bg = p.other_search_results_bg, fg = p.white }),
CurSearch({ link = "IncSearch" }), CurSearch({ link = "IncSearch" }),
Substitute({ bg = p.warning, fg = p.bg }), Substitute({ bg = p.warning, fg = p.editor_bg }),
Title({ fg = p.orange, style = "bold" }), Title({ fg = p.function_call, style = "bold" }),
Directory({ fg = p.cyan }), Directory({ fg = p.number }),
ErrorMsg({ fg = p.error }), ErrorMsg({ fg = p.error }),
WarningMsg({ fg = p.warning }), WarningMsg({ fg = p.warning }),
MoreMsg({ fg = p.green_bright }), MoreMsg({ fg = p.string }),
Question({ fg = p.cyan }), Question({ fg = p.number }),
ModeMsg({ fg = p.fg, style = "bold" }), ModeMsg({ fg = p.fg, style = "bold" }),
Conceal({ fg = p.fg_dark, bg = p.bg }), Conceal({ fg = p.gutter_fg, bg = p.editor_bg }),
Folded({ fg = p.fg_comment, bg = p.bg_darker }), Folded({ fg = p.comment, bg = p.editor_bg }),
FoldColumn({ bg = p.bg, fg = p.fg_dark }), FoldColumn({ bg = p.gutter_bg, fg = p.gutter_fg }),
MatchParen({ bg = p.gray, fg = p.yellow }), MatchParen({ bg = p.selection_bg, fg = p.function_call, style = "bold" }),
NonText({ fg = p.fg_dark }), NonText({ fg = p.gutter_fg }),
SpecialKey({ fg = p.gray }), SpecialKey({ fg = p.gutter_fg }),
Whitespace({ fg = p.gray }), Whitespace({ fg = p.gutter_fg }),
EndOfBuffer({ fg = p.bg }), EndOfBuffer({ fg = p.editor_bg }),
-- Spell checking -- Spell checking
SpellBad({ sp = p.error, style = "undercurl" }), SpellBad({ sp = p.error, style = "undercurl" }),
SpellCap({ sp = p.warning, style = "undercurl" }), SpellCap({ sp = p.warning, style = "undercurl" }),
SpellLocal({ sp = p.info, style = "undercurl" }), SpellLocal({ sp = p.number, style = "undercurl" }),
SpellRare({ sp = p.hint, style = "undercurl" }), SpellRare({ sp = p.constant, style = "undercurl" }),
-- == Standard Syntax Groups (Fallback for no Tree-sitter) == -- -- == Standard Syntax Groups (Fallback for no Tree-sitter) == --
Comment({ fg = p.fg_comment, style = "italic" }), Comment({ fg = p.comment, style = "italic" }),
String({ fg = p.green_bright }), String({ fg = p.string }),
Number({ fg = p.cyan }), Number({ fg = p.number }),
Constant({ fg = p.purple }), Constant({ fg = p.constant }),
Character({ fg = p.green_bright }), Character({ fg = p.string }),
Boolean({ fg = p.orange, style = "italic" }), Boolean({ fg = p.keyword }),
Keyword({ fg = p.orange, style = "bold" }), Keyword({ fg = p.keyword }),
Statement({ fg = p.orange, style = "bold" }), Statement({ fg = p.keyword }),
Operator({ fg = p.fg }), Operator({ fg = p.fg }),
Conditional({ fg = p.orange, style = "bold" }), Conditional({ fg = p.keyword }),
Repeat({ fg = p.orange, style = "bold" }), Repeat({ fg = p.keyword }),
Identifier({ fg = p.fg }), Identifier({ fg = p.fg }),
Function({ fg = p.yellow }), Function({ fg = p.function_call }),
Type({ fg = p.fg }), Type({ fg = p.fg }),
StorageClass({ fg = p.orange }), StorageClass({ fg = p.keyword }),
Structure({ fg = p.orange }), Structure({ fg = p.keyword }),
Typedef({ fg = p.orange }), Typedef({ fg = p.keyword }),
PreProc({ fg = p.orange }), PreProc({ fg = p.keyword }),
Include({ fg = p.orange }), Include({ fg = p.keyword }),
Define({ fg = p.orange }), Define({ fg = p.keyword }),
Macro({ fg = p.yellow_dark }), Macro({ fg = p.annotation }),
Special({ fg = p.pink }), Special({ fg = p.constant }),
SpecialChar({ fg = p.pink }), SpecialChar({ fg = p.constant }),
SpecialComment({ fg = p.gray_light, style = "italic" }), SpecialComment({ fg = p.comment, style = "italic" }),
Todo({ bg = p.bg_darker, fg = p.green_bright, style = "bold" }), Todo({ bg = p.ui_bg, fg = p.string, style = "bold" }),
Underlined({ fg = p.blue, style = "underline" }), Underlined({ fg = p.number, style = "underline" }),
Error({ fg = p.error }), Error({ fg = p.error }),
-- == Complete Tree-sitter Highlight Groups == -- -- == Complete Tree-sitter Highlight Groups (Aligned with JetBrains Darcula) == --
-- Comments -- Comments
["@comment"] = { fg = p.fg_comment, style = "italic" }, ["@comment"] = { fg = p.comment, style = "italic" },
["@comment.documentation"] = { fg = p.fg_comment, style = "italic" }, ["@comment.documentation"] = { fg = p.comment, style = "italic" },
["@comment.todo"] = { fg = p.green_bright, bg = p.bg_darker, style = "bold" }, ["@comment.todo"] = { fg = p.string, bg = p.ui_bg, style = "bold" },
["@comment.warning"] = { fg = p.warning, bg = p.warning_bg, style = "bold" }, ["@comment.warning"] = { fg = p.warning, bg = p.warning_bg, style = "bold" },
["@comment.error"] = { fg = p.error, bg = p.error_bg, style = "bold" }, ["@comment.error"] = { fg = p.error, bg = p.error_bg, style = "bold" },
["@comment.note"] = { fg = p.info, bg = p.info_bg, style = "bold" }, ["@comment.note"] = { fg = p.number, bg = p.info_bg, style = "bold" },
-- Strings -- Strings
["@string"] = { fg = p.green_bright }, ["@string"] = { fg = p.string },
["@string.documentation"] = { fg = p.green_bright, style = "italic" }, ["@string.documentation"] = { fg = p.string, style = "italic" },
["@string.regex"] = { fg = p.pink }, ["@string.regex"] = { fg = p.constant },
["@string.escape"] = { fg = p.pink }, ["@string.escape"] = { fg = p.keyword },
["@string.special"] = { fg = p.pink }, ["@string.special"] = { fg = p.constant },
["@character"] = { fg = p.green_bright }, ["@character"] = { fg = p.string },
["@character.special"] = { fg = p.pink }, ["@character.special"] = { fg = p.constant },
-- Numbers and Booleans -- Numbers and Booleans
["@number"] = { fg = p.cyan }, ["@number"] = { fg = p.number },
["@boolean"] = { fg = p.orange, style = "italic" }, ["@boolean"] = { fg = p.keyword },
["@float"] = { fg = p.cyan }, ["@float"] = { fg = p.number },
-- Functions and Methods -- Functions and Methods
["@function"] = { fg = p.yellow }, ["@function"] = { fg = p.fg }, -- Definitions are default color
["@function.builtin"] = { fg = p.blue_dark, style = "italic" }, ["@function.builtin"] = { fg = p.function_call },
["@function.call"] = { fg = p.fg }, ["@function.call"] = { fg = p.function_call },
["@function.macro"] = { fg = p.yellow_dark }, ["@function.macro"] = { fg = p.annotation },
["@function.method"] = { fg = p.yellow }, ["@method"] = { fg = p.fg }, -- Definitions are default color
["@function.method.call"] = { fg = p.fg }, ["@method.call"] = { fg = p.function_call },
["@method"] = { fg = p.yellow }, ["@constructor"] = { fg = p.fg },
["@method.call"] = { fg = p.fg },
["@constructor"] = { fg = p.yellow },
["@parameter"] = { fg = p.fg }, ["@parameter"] = { fg = p.fg },
["@parameter.reference"] = { fg = p.fg, style = "italic" }, ["@parameter.reference"] = { fg = p.fg, style = "italic" },
-- Keywords -- Keywords
["@keyword"] = { fg = p.orange, style = "bold" }, ["@keyword"] = { fg = p.keyword },
["@keyword.function"] = { fg = p.orange, style = "bold" }, ["@keyword.function"] = { fg = p.keyword },
["@keyword.operator"] = { fg = p.orange, style = "bold" }, ["@keyword.operator"] = { fg = p.keyword },
["@keyword.return"] = { fg = p.orange, style = "bold" }, ["@keyword.return"] = { fg = p.keyword },
["@keyword.conditional"] = { fg = p.orange, style = "bold" }, ["@keyword.import"] = { fg = p.keyword },
["@keyword.conditional.ternary"] = { fg = p.orange }, ["@keyword.storage"] = { fg = p.keyword },
["@keyword.repeat"] = { fg = p.orange, style = "bold" }, ["@keyword.directive"] = { fg = p.keyword },
["@keyword.import"] = { fg = p.orange, style = "bold" }, ["@keyword.directive.define"] = { fg = p.keyword },
["@keyword.storage"] = { fg = p.orange, style = "bold" },
["@keyword.directive"] = { fg = p.orange },
["@keyword.directive.define"] = { fg = p.orange },
["@conditional"] = { fg = p.orange, style = "bold" }, ["@conditional"] = { fg = p.keyword },
["@conditional.ternary"] = { fg = p.orange }, ["@repeat"] = { fg = p.keyword },
["@repeat"] = { fg = p.orange, style = "bold" }, ["@label"] = { fg = p.annotation },
["@label"] = { fg = p.pink },
["@operator"] = { fg = p.fg }, ["@operator"] = { fg = p.fg },
["@exception"] = { fg = p.orange, style = "bold" }, ["@exception"] = { fg = p.keyword },
-- Types -- Types
["@type"] = { fg = p.fg }, ["@type"] = { fg = p.fg },
["@type.builtin"] = { fg = p.fg, style = "italic" }, ["@type.builtin"] = { fg = p.keyword },
["@type.qualifier"] = { fg = p.orange }, ["@type.qualifier"] = { fg = p.keyword },
["@type.definition"] = { fg = p.fg }, ["@type.definition"] = { fg = p.fg },
["@storageclass"] = { fg = p.orange }, ["@storageclass"] = { fg = p.keyword },
["@attribute"] = { fg = p.pink }, ["@attribute"] = { fg = p.annotation },
["@field"] = { fg = p.purple }, ["@field"] = { fg = p.member_variable, style = "italic" },
["@property"] = { fg = p.purple }, ["@property"] = { fg = p.member_variable, style = "italic" },
-- Variables and Constants -- Variables and Constants
["@variable"] = { fg = p.fg }, ["@variable"] = { fg = p.fg },
["@variable.builtin"] = { fg = p.purple_dark, style = "italic" }, ["@variable.builtin"] = { fg = p.constant, style = "italic" },
["@variable.parameter"] = { fg = p.fg }, ["@variable.parameter"] = { fg = p.fg },
["@variable.member"] = { fg = p.purple }, ["@variable.member"] = { fg = p.member_variable, style = "italic" },
["@constant"] = { fg = p.purple }, ["@constant"] = { fg = p.constant },
["@constant.builtin"] = { fg = p.purple, style = "italic" }, ["@constant.builtin"] = { fg = p.constant },
["@constant.macro"] = { fg = p.purple }, ["@constant.macro"] = { fg = p.constant },
-- Namespaces and Includes -- Namespaces and Includes
["@module"] = { fg = p.fg }, ["@module"] = { fg = p.fg },
["@namespace"] = { fg = p.fg }, ["@namespace"] = { fg = p.fg },
["@symbol"] = { fg = p.purple }, ["@symbol"] = { fg = p.fg },
["@annotation"] = { fg = p.pink }, ["@annotation"] = { fg = p.annotation },
["@include"] = { fg = p.orange, style = "bold" }, ["@include"] = { fg = p.keyword },
["@preproc"] = { fg = p.orange }, ["@preproc"] = { fg = p.keyword },
["@define"] = { fg = p.orange }, ["@define"] = { fg = p.keyword },
["@macro"] = { fg = p.yellow_dark }, ["@macro"] = { fg = p.annotation },
-- Punctuation -- Punctuation
["@punctuation.delimiter"] = { fg = p.fg }, ["@punctuation.delimiter"] = { fg = p.fg },
["@punctuation.bracket"] = { fg = p.fg }, ["@punctuation.bracket"] = { fg = p.fg },
["@punctuation.special"] = { fg = p.pink }, ["@punctuation.special"] = { fg = p.keyword },
-- Markup (for markdown, etc.) -- Markup (for markdown, etc.)
["@markup"] = { fg = p.fg }, ["@text.title"] = { fg = p.function_call, style = "bold" },
["@markup.heading"] = { fg = p.orange, style = "bold" }, ["@text.uri"] = { fg = p.string, style = "underline" },
["@markup.heading.1"] = { fg = p.orange, style = "bold" }, ["@text.literal"] = { fg = p.string },
["@markup.heading.2"] = { fg = p.orange, style = "bold" },
["@markup.heading.3"] = { fg = p.orange, style = "bold" },
["@markup.heading.4"] = { fg = p.orange, style = "bold" },
["@markup.heading.5"] = { fg = p.orange, style = "bold" },
["@markup.heading.6"] = { fg = p.orange, style = "bold" },
["@markup.list"] = { fg = p.cyan },
["@markup.list.checked"] = { fg = p.hint },
["@markup.list.unchecked"] = { fg = p.fg_dark },
["@markup.bold"] = { style = "bold" },
["@markup.italic"] = { style = "italic" },
["@markup.strikethrough"] = { style = "strikethrough" },
["@markup.underline"] = { style = "underline" },
["@markup.link"] = { fg = p.blue, style = "underline" },
["@markup.link.label"] = { fg = p.cyan, style = "underline" },
["@markup.link.url"] = { fg = p.blue, style = "underline" },
["@markup.raw"] = { fg = p.green_bright },
["@markup.raw.block"] = { fg = p.green_bright },
["@markup.quote"] = { fg = p.fg_comment, style = "italic" },
["@markup.math"] = { fg = p.cyan },
["@markup.environment"] = { fg = p.orange },
["@markup.environment.name"] = { fg = p.orange },
-- Tags (HTML/XML)
["@tag"] = { fg = p.orange },
["@tag.attribute"] = { fg = p.purple, style = "italic" },
["@tag.delimiter"] = { fg = p.fg_dark },
-- Text
["@text"] = { fg = p.fg },
["@text.strong"] = { style = "bold" }, ["@text.strong"] = { style = "bold" },
["@text.emphasis"] = { style = "italic" }, ["@text.emphasis"] = { style = "italic" },
["@text.underline"] = { style = "underline" },
["@text.strike"] = { style = "strikethrough" }, ["@text.strike"] = { style = "strikethrough" },
["@text.title"] = { fg = p.orange, style = "bold" }, ["@text.underline"] = { style = "underline" },
["@text.literal"] = { fg = p.green_bright }, ["@text.quote"] = { fg = p.comment, style = "italic" },
["@text.uri"] = { fg = p.blue, style = "underline" }, ["@text.todo"] = { fg = p.string, bg = p.ui_bg, style = "bold" },
["@text.reference"] = { fg = p.cyan },
["@text.todo"] = { fg = p.green_bright, bg = p.bg_darker, style = "bold" },
["@text.warning"] = { fg = p.warning, style = "bold" }, ["@text.warning"] = { fg = p.warning, style = "bold" },
["@text.danger"] = { fg = p.error, style = "bold" }, ["@text.danger"] = { fg = p.error, style = "bold" },
["@text.note"] = { fg = p.info, style = "bold" }, ["@text.note"] = { fg = p.number, style = "bold" },
-- Tags (HTML/XML)
["@tag"] = { fg = p.fg },
["@tag.attribute"] = { fg = p.member_variable },
["@tag.delimiter"] = { fg = p.fg },
-- Diff (Tree-sitter) -- Diff (Tree-sitter)
["@text.diff.add"] = { bg = p.diff_add }, ["@text.diff.add"] = { bg = p.diff_add },
["@text.diff.delete"] = { bg = p.diff_delete, fg = p.diff_text }, ["@text.diff.delete"] = { bg = p.diff_del },
["@text.diff.change"] = { bg = p.diff_change }, ["@text.diff.change"] = { bg = p.diff_mod },
-- == LSP Semantic Token Support == -- -- == LSP Semantic Token Support == --
["@lsp.type.class"] = { fg = p.fg }, ["@lsp.type.class"] = { fg = p.fg },
["@lsp.type.struct"] = { fg = p.fg }, ["@lsp.type.struct"] = { fg = p.fg },
["@lsp.type.enum"] = { fg = p.fg }, ["@lsp.type.enum"] = { fg = p.fg },
["@lsp.type.enumMember"] = { fg = p.purple }, ["@lsp.type.enumMember"] = { fg = p.constant },
["@lsp.type.interface"] = { fg = p.fg }, ["@lsp.type.interface"] = { fg = p.fg, style = "italic" },
["@lsp.type.typeParameter"] = { fg = p.fg }, ["@lsp.type.typeParameter"] = { fg = p.fg },
["@lsp.type.namespace"] = { fg = p.fg }, ["@lsp.type.namespace"] = { fg = p.fg },
["@lsp.type.parameter"] = { fg = p.fg }, ["@lsp.type.parameter"] = { fg = p.fg },
["@lsp.type.variable"] = { fg = p.fg }, ["@lsp.type.variable"] = { fg = p.fg },
["@lsp.type.property"] = { fg = p.purple }, ["@lsp.type.property"] = { fg = p.member_variable, style = "italic" },
["@lsp.type.event"] = { fg = p.purple }, ["@lsp.type.function"] = { fg = p.fg },
["@lsp.type.function"] = { fg = p.yellow }, ["@lsp.type.method"] = { fg = p.function_call },
["@lsp.type.method"] = { fg = p.yellow }, ["@lsp.type.macro"] = { fg = p.annotation },
["@lsp.type.macro"] = { fg = p.yellow_dark }, ["@lsp.type.keyword"] = { fg = p.keyword },
["@lsp.type.keyword"] = { fg = p.orange, style = "bold" }, ["@lsp.type.comment"] = { fg = p.comment, style = "italic" },
["@lsp.type.comment"] = { fg = p.fg_comment, style = "italic" }, ["@lsp.type.string"] = { fg = p.string },
["@lsp.type.string"] = { fg = p.green_bright }, ["@lsp.type.number"] = { fg = p.number },
["@lsp.type.number"] = { fg = p.cyan },
["@lsp.type.regexp"] = { fg = p.pink },
["@lsp.type.operator"] = { fg = p.fg }, ["@lsp.type.operator"] = { fg = p.fg },
["@lsp.type.decorator"] = { fg = p.pink }, ["@lsp.type.decorator"] = { fg = p.annotation },
-- LSP Modifiers -- LSP Modifiers
["@lsp.mod.deprecated"] = { style = "strikethrough" }, ["@lsp.mod.deprecated"] = { style = "strikethrough" },
["@lsp.mod.readonly"] = { style = "italic" },
["@lsp.mod.static"] = { style = "italic" }, ["@lsp.mod.static"] = { style = "italic" },
["@lsp.mod.abstract"] = { style = "italic" },
["@lsp.mod.async"] = { style = "italic" }, ["@lsp.mod.async"] = { style = "italic" },
["@lsp.mod.documentation"] = { style = "italic" }, ["@lsp.mod.readonly"] = { fg = p.constant },
["@lsp.mod.defaultLibrary"] = { style = "italic" },
-- Combined type-modifier highlights
["@lsp.typemod.function.readonly"] = { fg = p.yellow, style = "italic" },
["@lsp.typemod.variable.readonly"] = { fg = p.purple, style = "italic" },
["@lsp.typemod.variable.static"] = { fg = p.purple, style = "italic" },
["@lsp.typemod.property.readonly"] = { fg = p.purple, style = "italic" },
["@lsp.typemod.class.deprecated"] = { fg = p.fg, style = "strikethrough" },
["@lsp.typemod.function.deprecated"] = { fg = p.yellow, style = "strikethrough" },
-- == LSP Diagnostics == -- -- == LSP Diagnostics == --
DiagnosticError({ fg = p.error }), DiagnosticError({ fg = p.error }),
DiagnosticWarn({ fg = p.warning }), DiagnosticWarn({ fg = p.warning }),
DiagnosticInfo({ fg = p.info }), DiagnosticInfo({ fg = p.fg }),
DiagnosticHint({ fg = p.hint }), DiagnosticHint({ fg = p.string }),
DiagnosticOk({ fg = p.hint }),
DiagnosticVirtualTextError({ fg = p.error, bg = p.error_bg }), DiagnosticVirtualTextError({ fg = p.error, bg = p.error_bg }),
DiagnosticVirtualTextWarn({ fg = p.warning, bg = p.warning_bg }), DiagnosticVirtualTextWarn({ fg = p.warning, bg = p.warning_bg }),
DiagnosticVirtualTextInfo({ fg = p.info, bg = p.info_bg }), DiagnosticVirtualTextInfo({ fg = p.fg, bg = p.info_bg }),
DiagnosticVirtualTextHint({ fg = p.hint, bg = p.hint_bg }),
DiagnosticVirtualTextOk({ fg = p.hint, bg = p.hint_bg }),
DiagnosticUnderlineError({ sp = p.error, style = "undercurl" }), DiagnosticUnderlineError({ sp = p.error, style = "undercurl" }),
DiagnosticUnderlineWarn({ sp = p.warning, style = "undercurl" }), DiagnosticUnderlineWarn({ sp = p.warning, style = "undercurl" }),
DiagnosticUnderlineInfo({ sp = p.info, style = "undercurl" }), DiagnosticUnderlineInfo({ sp = p.info, style = "undercurl" }),
DiagnosticUnderlineHint({ sp = p.hint, style = "undercurl" }), DiagnosticUnderlineHint({ sp = p.string, style = "undercurl" }),
DiagnosticUnderlineOk({ sp = p.hint, style = "undercurl" }),
DiagnosticFloatingError({ fg = p.error, bg = p.bg_light }), DiagnosticSignError({ fg = p.error, bg = p.gutter_bg }),
DiagnosticFloatingWarn({ fg = p.warning, bg = p.bg_light }), DiagnosticSignWarn({ fg = p.warning, bg = p.gutter_bg }),
DiagnosticFloatingInfo({ fg = p.info, bg = p.bg_light }), DiagnosticSignInfo({ fg = p.number, bg = p.gutter_bg }),
DiagnosticFloatingHint({ fg = p.hint, bg = p.bg_light }), DiagnosticSignHint({ fg = p.string, bg = p.gutter_bg }),
DiagnosticFloatingOk({ fg = p.hint, bg = p.bg_light }),
DiagnosticSignError({ fg = p.error, bg = p.bg }), -- Legacy LSP Diagnostics Links
DiagnosticSignWarn({ fg = p.warning, bg = p.bg }),
DiagnosticSignInfo({ fg = p.info, bg = p.bg }),
DiagnosticSignHint({ fg = p.hint, bg = p.bg }),
DiagnosticSignOk({ fg = p.hint, bg = p.bg }),
-- Legacy LSP Diagnostics (for compatibility)
LspDiagnosticsDefaultError({ link = "DiagnosticError" }), LspDiagnosticsDefaultError({ link = "DiagnosticError" }),
LspDiagnosticsDefaultWarning({ link = "DiagnosticWarn" }), LspDiagnosticsDefaultWarning({ link = "DiagnosticWarn" }),
LspDiagnosticsDefaultInformation({ link = "DiagnosticInfo" }), LspDiagnosticsDefaultInformation({ link = "DiagnosticInfo" }),
LspDiagnosticsDefaultHint({ link = "DiagnosticHint" }), LspDiagnosticsDefaultHint({ link = "DiagnosticHint" }),
LspDiagnosticsVirtualTextError({ link = "DiagnosticVirtualTextError" }),
LspDiagnosticsVirtualTextWarning({ link = "DiagnosticVirtualTextWarn" }),
LspDiagnosticsVirtualTextInformation({ link = "DiagnosticVirtualTextInfo" }),
LspDiagnosticsVirtualTextHint({ link = "DiagnosticVirtualTextHint" }),
LspDiagnosticsUnderlineError({ link = "DiagnosticUnderlineError" }), LspDiagnosticsUnderlineError({ link = "DiagnosticUnderlineError" }),
LspDiagnosticsUnderlineWarning({ link = "DiagnosticUnderlineWarn" }), LspDiagnosticsUnderlineWarning({ link = "DiagnosticUnderlineWarn" }),
LspDiagnosticsUnderlineInformation({ link = "DiagnosticUnderlineInfo" }), LspDiagnosticsUnderlineInformation({ link = "DiagnosticUnderlineInfo" }),
LspDiagnosticsUnderlineHint({ link = "DiagnosticUnderlineHint" }), LspDiagnosticsUnderlineHint({ link = "DiagnosticUnderlineHint" }),
-- LSP References
LspReferenceText({ bg = p.bg_darker }),
LspReferenceRead({ bg = p.bg_darker }),
LspReferenceWrite({ bg = p.bg_darker, style = "underline" }),
-- LSP Code Lens
LspCodeLens({ fg = p.gray_light }),
LspCodeLensSeparator({ fg = p.gray }),
-- == Plugin Support == -- -- == Plugin Support == --
-- NvimTree -- NvimTree
NvimTreeNormal({ bg = p.bg, fg = p.fg }), NvimTreeNormal({ bg = p.editor_bg, fg = p.fg }),
NvimTreeVertSplit({ fg = p.border_dark, bg = p.bg }), NvimTreeVertSplit({ fg = p.gutter_fg, bg = p.editor_bg }),
NvimTreeWinSeparator({ fg = p.border_dark, bg = p.bg }), NvimTreeRootFolder({ fg = p.function_call, style = "bold" }),
NvimTreeEndOfBuffer({ fg = p.bg }), NvimTreeFolderIcon({ fg = p.number }),
NvimTreeFolderIcon({ fg = p.cyan }), NvimTreeSymlink({ fg = p.number, style = "underline" }),
NvimTreeFolderName({ fg = p.fg }),
NvimTreeOpenedFolderName({ fg = p.cyan, style = "bold" }),
NvimTreeEmptyFolderName({ fg = p.fg_dark }),
NvimTreeRootFolder({ fg = p.orange, style = "bold" }),
NvimTreeSpecialFile({ fg = p.yellow, style = "underline" }),
NvimTreeExecFile({ fg = p.hint }),
NvimTreeImageFile({ fg = p.purple }),
NvimTreeSymlink({ fg = p.cyan, style = "underline" }),
NvimTreeGitDirty({ fg = p.warning }), NvimTreeGitDirty({ fg = p.warning }),
NvimTreeGitStaged({ fg = p.hint }), NvimTreeGitStaged({ fg = p.string }),
NvimTreeGitMerge({ fg = p.error }), NvimTreeGitNew({ fg = p.string }),
NvimTreeGitNew({ fg = p.hint }),
NvimTreeGitDeleted({ fg = p.error }), NvimTreeGitDeleted({ fg = p.error }),
-- Telescope -- Telescope
TelescopeNormal({ bg = p.bg_light, fg = p.fg }), TelescopeNormal({ bg = p.ui_bg, fg = p.fg }),
TelescopeBorder({ fg = p.border, bg = p.bg_light }), TelescopeBorder({ fg = p.border, bg = p.ui_bg }),
TelescopePromptNormal({ bg = p.bg_light, fg = p.fg }), TelescopePromptTitle({ fg = p.keyword, bg = p.ui_bg, style = "bold" }),
TelescopePromptBorder({ fg = p.border, bg = p.bg_light }), TelescopePreviewTitle({ fg = p.keyword, bg = p.editor_bg, style = "bold" }),
TelescopePromptTitle({ fg = p.orange, bg = p.bg_light, style = "bold" }), TelescopeSelection({ bg = p.selection_bg, fg = p.fg }),
TelescopePromptPrefix({ fg = p.orange }), TelescopeMatching({ fg = p.function_call, style = "bold" }),
TelescopeResultsNormal({ bg = p.bg_light, fg = p.fg }),
TelescopeResultsBorder({ fg = p.border, bg = p.bg_light }),
TelescopeResultsTitle({ fg = p.orange, bg = p.bg_light, style = "bold" }),
TelescopePreviewNormal({ bg = p.bg, fg = p.fg }),
TelescopePreviewBorder({ fg = p.border, bg = p.bg }),
TelescopePreviewTitle({ fg = p.orange, bg = p.bg, style = "bold" }),
TelescopeSelection({ bg = p.bg_visual, fg = p.fg }),
TelescopeSelectionCaret({ fg = p.orange, bg = p.bg_visual }),
TelescopeMultiSelection({ bg = p.bg_darker, fg = p.fg }),
TelescopeMatching({ fg = p.yellow, style = "bold" }),
-- nvim-cmp -- nvim-cmp
CmpItemAbbr({ fg = p.fg }), CmpItemAbbr({ fg = p.fg }),
CmpItemAbbrDeprecated({ fg = p.fg_dark, style = "strikethrough" }), CmpItemAbbrDeprecated({ fg = p.gutter_fg, style = "strikethrough" }),
CmpItemAbbrMatch({ fg = p.yellow, style = "bold" }), CmpItemAbbrMatch({ fg = p.function_call, style = "bold" }),
CmpItemAbbrMatchFuzzy({ fg = p.yellow, style = "bold" }), CmpItemAbbrMatchFuzzy({ fg = p.function_call, style = "bold" }),
CmpItemKind({ fg = p.purple }), CmpItemKind({ fg = p.constant }),
CmpItemKindText({ fg = p.fg }), CmpItemKindMethod({ fg = p.function_call }),
CmpItemKindMethod({ fg = p.yellow }), CmpItemKindFunction({ fg = p.function_call }),
CmpItemKindFunction({ fg = p.yellow }), CmpItemKindConstructor({ fg = p.annotation }),
CmpItemKindConstructor({ fg = p.yellow }), CmpItemKindField({ fg = p.member_variable }),
CmpItemKindField({ fg = p.purple }), CmpItemKindProperty({ fg = p.member_variable }),
CmpItemKindVariable({ fg = p.fg }), CmpItemKindKeyword({ fg = p.keyword }),
CmpItemKindClass({ fg = p.fg }), CmpItemKindSnippet({ fg = p.string }),
CmpItemKindInterface({ fg = p.fg }), CmpItemKindConstant({ fg = p.constant }),
CmpItemKindModule({ fg = p.fg }), CmpItemKindEnumMember({ fg = p.constant }),
CmpItemKindProperty({ fg = p.purple }),
CmpItemKindUnit({ fg = p.cyan }),
CmpItemKindValue({ fg = p.cyan }),
CmpItemKindEnum({ fg = p.fg }),
CmpItemKindKeyword({ fg = p.orange }),
CmpItemKindSnippet({ fg = p.green_bright }),
CmpItemKindColor({ fg = p.purple }),
CmpItemKindFile({ fg = p.cyan }),
CmpItemKindReference({ fg = p.cyan }),
CmpItemKindFolder({ fg = p.cyan }),
CmpItemKindEnumMember({ fg = p.purple }),
CmpItemKindConstant({ fg = p.purple }),
CmpItemKindStruct({ fg = p.fg }),
CmpItemKindEvent({ fg = p.purple }),
CmpItemKindOperator({ fg = p.fg }),
CmpItemKindTypeParameter({ fg = p.fg }),
CmpItemMenu({ fg = p.fg_comment }),
-- GitSigns -- GitSigns & Diff
GitSignsAdd({ fg = p.hint }), GitSignsAdd({ fg = p.string }),
GitSignsAddNr({ fg = p.hint }),
GitSignsAddLn({ bg = p.diff_add }),
GitSignsChange({ fg = p.warning }), GitSignsChange({ fg = p.warning }),
GitSignsChangeNr({ fg = p.warning }),
GitSignsChangeLn({ bg = p.diff_change }),
GitSignsDelete({ fg = p.error }), GitSignsDelete({ fg = p.error }),
GitSignsDeleteNr({ fg = p.error }), GitSignsCurrentLineBlame({ fg = p.comment }),
GitSignsDeleteLn({ bg = p.diff_delete }), DiffAdd({ bg = hsl(p.diff_add):darken(25) }),
GitSignsCurrentLineBlame({ fg = p.fg_comment }), DiffChange({ bg = hsl(p.diff_mod):darken(25) }),
DiffDelete({ bg = hsl(p.diff_del):darken(25) }),
-- Diff DiffText({ bg = hsl(p.diff_mod):darken(10) }),
DiffAdd({ bg = p.diff_add }),
DiffChange({ bg = p.diff_change }),
DiffDelete({ bg = p.diff_delete, fg = p.diff_text }),
DiffText({ bg = p.warning_bg, fg = p.warning }),
-- Neogit
NeogitBranch({ fg = p.purple }),
NeogitRemote({ fg = p.cyan }),
NeogitHunkHeader({ bg = p.bg_light, fg = p.fg }),
NeogitHunkHeaderHighlight({ bg = p.bg_visual, fg = p.orange }),
NeogitDiffContextHighlight({ bg = p.bg_current_line }),
NeogitDiffDeleteHighlight({ bg = p.diff_delete, fg = p.diff_text }),
NeogitDiffAddHighlight({ bg = p.diff_add }),
-- vim-fugitive
fugitiveHeader({ fg = p.orange, style = "bold" }),
fugitiveUntrackedModifier({ fg = p.error }),
fugitiveUnstagedModifier({ fg = p.warning }),
fugitiveStagedModifier({ fg = p.hint }),
-- indent-blankline -- indent-blankline
IndentBlanklineChar({ fg = p.bg_gutter }), IndentBlanklineChar({ fg = p.gutter_bg }),
IndentBlanklineContextChar({ fg = p.gray }), IndentBlanklineContextChar({ fg = p.border }),
IndentBlanklineContextStart({ sp = p.gray, style = "underline" }),
IndentBlanklineSpaceChar({ fg = p.bg_gutter }),
IndentBlanklineSpaceCharBlankline({ fg = p.bg_gutter }),
-- nvim-notify
NotifyERRORBorder({ fg = p.error }),
NotifyERRORIcon({ fg = p.error }),
NotifyERRORTitle({ fg = p.error }),
NotifyWARNBorder({ fg = p.warning }),
NotifyWARNIcon({ fg = p.warning }),
NotifyWARNTitle({ fg = p.warning }),
NotifyINFOBorder({ fg = p.info }),
NotifyINFOIcon({ fg = p.info }),
NotifyINFOTitle({ fg = p.info }),
NotifyDEBUGBorder({ fg = p.fg_comment }),
NotifyDEBUGIcon({ fg = p.fg_comment }),
NotifyDEBUGTitle({ fg = p.fg_comment }),
NotifyTRACEBorder({ fg = p.purple }),
NotifyTRACEIcon({ fg = p.purple }),
NotifyTRACETitle({ fg = p.purple }),
-- nvim-dap (debugging)
DapBreakpoint({ fg = p.error }),
DapBreakpointCondition({ fg = p.warning }),
DapBreakpointRejected({ fg = p.fg_dark }),
DapLogPoint({ fg = p.info }),
DapStopped({ bg = p.bg_visual, fg = p.yellow }),
-- nvim-dap-ui
DapUIVariable({ fg = p.fg }),
DapUIValue({ fg = p.cyan }),
DapUIFrameName({ fg = p.yellow }),
DapUIThread({ fg = p.hint }),
DapUIWatchesValue({ fg = p.cyan }),
DapUIBreakpointsInfo({ fg = p.info }),
DapUIBreakpointsPath({ fg = p.cyan }),
DapUIBreakpointsCurrentLine({ fg = p.yellow, style = "bold" }),
DapUIStoppedThread({ fg = p.hint }),
-- lualine support (for custom themes)
LualineNormal({ bg = p.bg_light, fg = p.fg }),
LualineInsert({ bg = p.hint, fg = p.bg }),
LualineVisual({ bg = p.bg_visual, fg = p.fg }),
LualineReplace({ bg = p.error, fg = p.bg }),
LualineCommand({ bg = p.orange, fg = p.bg }),
LualineInactive({ bg = p.bg_gutter, fg = p.fg_dark }),
-- which-key
WhichKey({ fg = p.orange, style = "bold" }),
WhichKeyGroup({ fg = p.purple }),
WhichKeyDesc({ fg = p.fg }),
WhichKeySeperator({ fg = p.fg_comment }),
WhichKeySeparator({ fg = p.fg_comment }),
WhichKeyFloat({ bg = p.bg_light }),
WhichKeyValue({ fg = p.cyan }),
-- dashboard-nvim
DashboardHeader({ fg = p.orange }),
DashboardCenter({ fg = p.purple }),
DashboardFooter({ fg = p.fg_comment, style = "italic" }),
DashboardKey({ fg = p.orange, style = "bold" }),
DashboardDesc({ fg = p.fg }),
DashboardIcon({ fg = p.cyan }),
-- alpha-nvim
AlphaHeader({ fg = p.orange }),
AlphaButtons({ fg = p.purple }),
AlphaShortcut({ fg = p.orange, style = "bold" }),
AlphaFooter({ fg = p.fg_comment, style = "italic" }),
-- neo-tree
NeoTreeNormal({ bg = p.bg, fg = p.fg }),
NeoTreeNormalNC({ bg = p.bg, fg = p.fg }),
NeoTreeVertSplit({ fg = p.border_dark, bg = p.bg }),
NeoTreeWinSeparator({ fg = p.border_dark, bg = p.bg }),
NeoTreeEndOfBuffer({ fg = p.bg }),
NeoTreeRootName({ fg = p.orange, style = "bold" }),
NeoTreeFileName({ fg = p.fg }),
NeoTreeFileIcon({ fg = p.fg }),
NeoTreeFileNameOpened({ fg = p.cyan, style = "bold" }),
NeoTreeIndentMarker({ fg = p.fg_dark }),
NeoTreeGitAdded({ fg = p.hint }),
NeoTreeGitConflict({ fg = p.error }),
NeoTreeGitModified({ fg = p.warning }),
NeoTreeGitUntracked({ fg = p.fg_comment }),
NeoTreeTitleBar({ bg = p.bg_light, fg = p.orange, style = "bold" }),
NeoTreeFloatBorder({ fg = p.border }),
NeoTreeFloatTitle({ fg = p.orange, style = "bold" }),
NeoTreeTabActive({ bg = p.bg, fg = p.orange, style = "bold" }),
NeoTreeTabInactive({ bg = p.bg_gutter, fg = p.fg_dark }),
NeoTreeTabSeparatorActive({ fg = p.border, bg = p.bg }),
NeoTreeTabSeparatorInactive({ fg = p.border_dark, bg = p.bg_gutter }),
-- bufferline.nvim
BufferLineIndicatorSelected({ fg = p.orange }),
BufferLineFill({ bg = p.bg_darker }),
BufferLineBufferSelected({ fg = p.fg, style = "bold" }),
BufferLineBackground({ bg = p.bg_gutter, fg = p.fg_dark }),
-- leap.nvim
LeapMatch({ bg = p.bg_visual, fg = p.yellow, style = "bold" }),
LeapLabelPrimary({ bg = p.orange, fg = p.bg, style = "bold" }),
LeapLabelSecondary({ bg = p.cyan, fg = p.bg, style = "bold" }),
LeapBackdrop({ fg = p.fg_dark }),
-- hop.nvim
HopNextKey({ fg = p.orange, style = "bold" }),
HopNextKey1({ fg = p.cyan, style = "bold" }),
HopNextKey2({ fg = p.purple }),
HopUnmatched({ fg = p.fg_dark }),
HopCursor({ bg = p.orange, fg = p.bg }),
HopPreview({ bg = p.bg_visual, fg = p.yellow }),
-- nvim-treesitter-context
TreesitterContext({ bg = p.bg_darker }),
TreesitterContextLineNumber({ bg = p.bg_darker, fg = p.yellow }),
TreesitterContextBottom({ style = "underline", sp = p.border_dark }),
-- nvim-scrollbar
ScrollbarHandle({ bg = p.bg_light }),
ScrollbarSearchHandle({ bg = p.bg_visual, fg = p.yellow }),
ScrollbarSearch({ fg = p.yellow }),
ScrollbarErrorHandle({ bg = p.bg_light, fg = p.error }),
ScrollbarError({ fg = p.error }),
ScrollbarWarnHandle({ bg = p.bg_light, fg = p.warning }),
ScrollbarWarn({ fg = p.warning }),
ScrollbarInfoHandle({ bg = p.bg_light, fg = p.info }),
ScrollbarInfo({ fg = p.info }),
ScrollbarHintHandle({ bg = p.bg_light, fg = p.hint }),
ScrollbarHint({ fg = p.hint }),
ScrollbarMiscHandle({ bg = p.bg_light, fg = p.purple }),
ScrollbarMisc({ fg = p.purple }),
-- trouble.nvim
TroubleText({ fg = p.fg }),
TroubleCount({ bg = p.bg_visual, fg = p.yellow, style = "bold" }),
TroubleNormal({ bg = p.bg, fg = p.fg }),
TroubleSignError({ fg = p.error }),
TroubleSignWarning({ fg = p.warning }),
TroubleSignInformation({ fg = p.info }),
TroubleSignHint({ fg = p.hint }),
TroubleSignOther({ fg = p.purple }),
TroubleFoldIcon({ fg = p.orange }),
TroubleIndent({ fg = p.fg_dark }),
TroubleLocation({ fg = p.fg_comment }),
-- mason.nvim
MasonNormal({ bg = p.bg_light, fg = p.fg }),
MasonHeader({ bg = p.orange, fg = p.bg, style = "bold" }),
MasonHeaderSecondary({ bg = p.cyan, fg = p.bg, style = "bold" }),
MasonHighlight({ fg = p.cyan }),
MasonHighlightBlock({ bg = p.bg_visual, fg = p.cyan }),
MasonHighlightBlockBold({ bg = p.bg_visual, fg = p.cyan, style = "bold" }),
MasonHighlightSecondary({ fg = p.yellow }),
MasonHighlightBlockSecondary({ bg = p.bg_visual, fg = p.yellow }),
MasonHighlightBlockBoldSecondary({ bg = p.bg_visual, fg = p.yellow, style = "bold" }),
MasonMuted({ fg = p.fg_comment }),
MasonMutedBlock({ bg = p.bg_darker, fg = p.fg_comment }),
MasonMutedBlockBold({ bg = p.bg_darker, fg = p.fg_comment, style = "bold" }),
-- noice.nvim
NoiceNormal({ bg = p.bg_light, fg = p.fg }),
NoiceBorder({ fg = p.border, bg = p.bg_light }),
NoiceCmdlinePopupBorder({ fg = p.border }),
NoiceCmdlineIcon({ fg = p.orange }),
NoiceConfirmBorder({ fg = p.border }),
NoiceFormatTitle({ fg = p.orange, style = "bold" }),
-- nvim-navic
NavicIconsFile({ fg = p.fg }),
NavicIconsModule({ fg = p.fg }),
NavicIconsNamespace({ fg = p.fg }),
NavicIconsPackage({ fg = p.fg }),
NavicIconsClass({ fg = p.fg }),
NavicIconsMethod({ fg = p.yellow }),
NavicIconsProperty({ fg = p.purple }),
NavicIconsField({ fg = p.purple }),
NavicIconsConstructor({ fg = p.yellow }),
NavicIconsEnum({ fg = p.fg }),
NavicIconsInterface({ fg = p.fg }),
NavicIconsFunction({ fg = p.yellow }),
NavicIconsVariable({ fg = p.fg }),
NavicIconsConstant({ fg = p.purple }),
NavicIconsString({ fg = p.green_bright }),
NavicIconsNumber({ fg = p.cyan }),
NavicIconsBoolean({ fg = p.orange }),
NavicIconsArray({ fg = p.fg }),
NavicIconsObject({ fg = p.fg }),
NavicIconsKey({ fg = p.purple }),
NavicIconsNull({ fg = p.orange }),
NavicIconsEnumMember({ fg = p.purple }),
NavicIconsStruct({ fg = p.fg }),
NavicIconsEvent({ fg = p.purple }),
NavicIconsOperator({ fg = p.fg }),
NavicIconsTypeParameter({ fg = p.fg }),
NavicText({ fg = p.fg }),
NavicSeparator({ fg = p.fg_comment }),
-- symbols-outline.nvim
FocusedSymbol({ bg = p.bg_visual, fg = p.yellow, style = "bold" }),
SymbolsOutlineConnector({ fg = p.fg_dark }),
-- aerial.nvim
AerialNormal({ bg = p.bg, fg = p.fg }),
AerialBorder({ fg = p.border }),
AerialLine({ bg = p.bg_visual }),
AerialLineNC({ bg = p.bg_current_line }),
-- nvim-ufo (folding)
UfoFoldedBg({ bg = p.bg_darker }),
UfoFoldedFg({ fg = p.fg }),
UfoCursorFoldedLine({ bg = p.bg_current_line, style = "bold" }),
UfoPreviewSbar({ bg = p.bg_gutter }),
UfoPreviewThumb({ bg = p.fg_dark }),
UfoPreviewWinBar({ bg = p.bg, fg = p.fg }),
UfoFoldedEllipsis({ fg = p.fg_comment }),
-- headlines.nvim (markdown)
Headline1({ bg = hsl("#3C2E26") }),
Headline2({ bg = hsl("#36302C") }),
Headline3({ bg = hsl("#303231") }),
Headline4({ bg = hsl("#2A3135") }),
Headline5({ bg = hsl("#2D2E3A") }),
Headline6({ bg = hsl("#312D39") }),
CodeBlock({ bg = p.bg_darker }),
Dash({ fg = p.orange, style = "bold" }),
} }
end) end)