(import-macros {: setv!} :nvrc.macro.set) (local colors {:bg "#1d2021" :bar "#32302f" :fg "#d4be98" :white "#e4be98" :black "#1d2021" :bblack "#3c3836" :dgrey "#282828" :mgrey "#504945" :grey "#928374" :red "#ea6962" :orange "#e79a42" :yellow "#d8a657" :green "#a9b665" :skyblue "#89b482" :blue "#7daea3" :violet "#d3869b"}) (lambda colors.apply [colorscheme] (import-macros {: highlight! : link!} :nvrc.macro.color) ; FIXME: introduces unused variables when using other themes (setv! background :dark) (setv! gruvbox_material_background :hard) (setv! gruvbox_material_sign_column_background :none) (setv! gruvbox_material_menu_selection_background :aqua) (vim.cmd (.. "colorscheme " colorscheme)) ; Statusline (highlight! :StatusLine {:fg (. colors :fg) :bg (. colors :bar)}) (highlight! :StatusLineNC {:fg (. colors :grey) :bg (. colors :black) :underline true}) (highlight! :StatusLinePad {:fg (. colors :skyblue) :bg (. colors :bar)}) (highlight! :StatusLineAccent {:fg (. colors :green) :bg (. colors :bar)}) (highlight! :StatusLineInsertAccent {:fg (. colors :red) :bg (. colors :bar)}) (highlight! :StatusLineVisualAccent {:fg (. colors :yellow) :bg (. colors :bar)}) (highlight! :StatusLineReplaceAccent {:fg (. colors :violet) :bg (. colors :bar)}) (highlight! :StatusLineCmdLineAccent {:fg (. colors :green) :bg (. colors :bar)}) (highlight! :StatusLineTerminalAccent {:fg (. colors :skyblue) :bg (. colors :bar)}) (highlight! :StatusLineFile {:fg (. colors :orange) :bg (. colors :bar) :bold true}) (highlight! :StatusLineFileData {:fg (. colors :violet) :bg (. colors :bar) :bold true}) ; Buffer (highlight! :EndOfBuffer {:fg (. colors :bar)}) (highlight! :FloatBorder {:fg (. colors :blue)}) (highlight! :NormalFloat {:bg (. colors :bblack)}) ; Pmenu (highlight! :Pmenu {:bg (. colors :bblack)}) (highlight! :PmenuSbar {:bg (. colors :bblack)}) (highlight! :PmenuSel {:fg (. colors :orange) :bg (. colors :dgrey)}) (highlight! :PmenuThumb {:bg (. colors :skyblue)}) (highlight! :CmpItemAbbr {:fg (. colors :fg)}) (highlight! :CmpItemAbbrMatch {:fg (. colors :fg)}) (highlight! :CmpItemKind {:fg (. colors :fg)}) (highlight! :CmpItemMenu {:fg (. colors :fg)}) ; LSP (highlight! :DiagnosticError {:fg (. colors :red)}) (highlight! :DiagnosticWarn {:fg (. colors :yellow)}) (highlight! :DiagnosticInfo {:fg (. colors :green)}) (highlight! :DiagnosticHint {:fg (. colors :grey)}) (highlight! :DiagnosticSignError {:fg (. colors :red) :bg (. colors :bar)}) (highlight! :DiagnosticSignWarn {:fg (. colors :yellow) :bg (. colors :bar)}) (highlight! :DiagnosticSignInfo {:fg (. colors :green) :bg (. colors :bar)}) (highlight! :DiagnosticSignHint {:fg (. colors :grey) :bg (. colors :bar)}) (highlight! :LspReferenceRead {:underline true}) (highlight! :LspReferenceText {:underline true}) (highlight! :LspReferenceWrite {:underline true}) (highlight! :LspSemantic_variable {:bg :gray}) (link! :LspSemantic_type :Include) (link! :LspSemantic_function :Identifier) (link! :LspSemantic_struct :Number) (link! :LspSemantic_keyword :Structure) ; Lir (highlight! :LirFloatNormal {:bg (. colors :black)}) (highlight! :LirDir {:fg (. colors :skyblue)}) (highlight! :LirSymLink {:fg (. colors :grey)}) (highlight! :LirEmptyDirText {:fg (. colors :blue)}) (highlight! :LirFloatCurdirWindowNormal {:bg (. colors :black)}) (highlight! :LirFloatCurdirWindowDirName {:fg (. colors :skyblue)}) ; Misc (highlight! :TabLine {:fg (. colors :fg) :bg (. colors :mgrey)}) (highlight! :TabLineFill {:fg (. colors :fg) :bg (. colors :bar)}) (highlight! :TabLineSel {:fg (. colors :fg) :bg (. colors :dgrey)}) (highlight! :LineNr {:fg (. colors :grey)}) (highlight! :NvimInternalError {:fg (. colors :red)}) (highlight! :VertSplit {:fg (. colors :grey2)})) colors