summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2022-04-15 15:11:35 +0200
committerRobert Günzler <r@gnzler.io>2022-04-15 15:11:35 +0200
commitf9fa365ca490ab36b4ea13de53531f4d6b1596ad (patch)
tree02239308047192e24b3ee0918b7c085fc03ebae6
parentab78451231d1852844bcbd11d4320126edb1c693 (diff)
vim: update colors
-rw-r--r--.vim/lua/color_palette.lua12
-rw-r--r--.vim/lua/colors.lua323
2 files changed, 150 insertions, 185 deletions
diff --git a/.vim/lua/color_palette.lua b/.vim/lua/color_palette.lua
index 6c1ed79..14cc74e 100644
--- a/.vim/lua/color_palette.lua
+++ b/.vim/lua/color_palette.lua
@@ -15,7 +15,7 @@ return {
     green   = '#24936e',
     yellow  = '#f7d94c',
     blue    = '#2ea9df',
-    magenta = '#986db2',
+    magenta = '#b481bb',
     cyan    = '#81c7d4',
     white   = '#fffffb',
   },
@@ -23,10 +23,10 @@ return {
     black   = '#080808',
     red     = '#9f353a',
     green   = '#36563c',
-    yellow  = '#a28c37',
-    blue    = '#005caf',
-    magenta = '#4a225d',
-    cyan    = '#1e88a8',
-    white   = '#4f4f48',
+    yellow  = '#d19826',
+    blue    = '#113285',
+    magenta = '#77428d',
+    cyan    = '#0d5661',
+    white   = '#434343',
   },
 }
diff --git a/.vim/lua/colors.lua b/.vim/lua/colors.lua
index e4d9bea..142d2fc 100644
--- a/.vim/lua/colors.lua
+++ b/.vim/lua/colors.lua
@@ -25,7 +25,7 @@ vim.g.terminal_color_15 = p.bright.white
 return lush(function()
   return {
     -- Meta {{{
-    deEmph { fg = hsl(p.normal.white).darken(40) },
+    deEmph { fg = hsl(p.dim.white).darken(5) },
     -- }}}
 
     -- Base highlights {{{
@@ -35,42 +35,35 @@ return lush(function()
     Reverse    { gui = 'reverse' },
     Underlined { gui = 'underline' }, -- (preferred) text that stands out, HTML links
 
-    ColorColumn  { bg = hsl(p.dim.white).darken(40) }, -- used for the columns set with 'colorcolumn'
     Conceal      { gui = 'none' }, -- placeholder characters substituted for concealed text (see 'conceallevel')
-    Cursor       { Reverse }, -- character under the cursor
-    CursorIM     { Cursor }, -- like Cursor, but used when in IME mode |CursorIM|
-    TermCursor   { Cursor }, -- cursor in a focused terminal
-    TermCursorNC { Cursor }, -- cursor in an unfocused terminal
-    lCursor      { Cursor }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
+    ColorColumn  { bg = hsl(p.dim.white).darken(40) }, -- used for the columns set with 'colorcolumn'
     CursorColumn { ColorColumn }, -- Screen-column at the cursor, when 'cursorcolumn' is set.
     CursorLine   { ColorColumn }, -- Screen-line at the cursor, when 'cursorline' is set.  Low-priority if foreground (ctermfg OR guifg) is not set.
-    CursorLineNr { Cursor }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line.
-    DiffAdd      { fg = hsl(p.bright.black), bg = hsl(p.bright.green) }, -- diff mode: Added line |diff.txt|
-    DiffChange   { fg = hsl(p.bright.black), bg = hsl(p.bright.cyan).darken(20) }, -- diff mode: Changed line |diff.txt|
-    DiffDelete   { fg = hsl(p.bright.black), bg = hsl(p.bright.red) }, -- diff mode: Deleted line |diff.txt|
-    DiffText     { DiffChange }, -- diff mode: Changed text within a changed line |diff.txt|
-    -- Directory    { }, -- directory names (and other special names in listings)
-    EndOfBuffer  { fg = hsl(p.bright.blue) }, -- filler lines (~) after the end of the buffer.  By default, this is highlighted like |hl-NonText|.
-    ErrorMsg     { Bold, fg = hsl(p.bright.white), bg = hsl(p.dim.red) }, -- error messages on the command line
-    Folded       { fg = hsl(p.bright.magenta), bg = 'none' }, -- line used for closed folds
+    CursorLineNr { fg = hsl(p.bright.yellow) }, -- Like LineNr when 'cursorline' or 'relativenumber' is set for the cursor line.
+    DiffAdd      { fg = hsl(p.bright.black), bg = hsl(p.normal.green) }, -- diff mode: Added line |diff.txt|
+    DiffChange   { fg = hsl(p.bright.black), bg = hsl(p.normal.cyan) }, -- diff mode: Changed line |diff.txt|
+    DiffDelete   { fg = hsl(p.bright.black), bg = hsl(p.normal.red) }, -- diff mode: Deleted line |diff.txt|
+    DiffText     { DiffChange, gui = 'italic' }, -- diff mode: Changed text within a changed line |diff.txt|
+    Directory    { fg = hsl(p.bright.cyan) }, -- directory names (and other special names in listings)
+    EndOfBuffer  { deEmph }, -- filler lines (~) after the end of the buffer.  By default, this is highlighted like |hl-NonText|.
+    Folded       { fg = hsl(p.bright.magenta) }, -- line used for closed folds
     FoldColumn   { Folded }, -- 'foldcolumn'
     Search       { Bold, fg = hsl(p.normal.black), bg = hsl(p.bright.white) }, -- Last search pattern highlighting (see 'hlsearch').  Also used for similar items that need to stand out.
     IncSearch    { Search }, -- 'incsearch' highlighting; also used for the text replaced with ":s///c"
     LineNr       { fg = hsl(p.dim.white) }, -- Line number for ":number" and ":#" commands, and when 'number' or 'relativenumber' option is set.
-    MatchParen   { fg = hsl(p.dim.black), bg = hsl(p.bright.magenta) }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
     ModeMsg      { fg = hsl(p.normal.yellow) }, -- 'showmode' message (e.g., "-- INSERT -- ")
     MoreMsg      { fg = hsl(p.normal.cyan) }, -- |more-prompt|
     -- MsgArea      { }, -- Area for messages and cmdline
     -- MsgSeparator { }, -- Separator for scrolled messages, `msgsep` flag of 'display'
     NonText      { EndOfBuffer }, -- '@' at the end of the window, characters from 'showbreak' and other characters that do not really exist in the text (e.g., ">" displayed when a double-wide character doesn't fit at the end of the line). See also |hl-EndOfBuffer|.
     Normal       { fg = hsl(p.bright.white) }, -- normal text
-    NormalFloat  { Normal, bg = hsl(p.dim.white) }, -- Normal text in floating windows.
+    NormalFloat  { Normal, bg = hsl(p.dim.white).darken(30) }, -- Normal text in floating windows.
     NormalNC     { Normal }, -- normal text in non-current windows
-    Question     { fg = hsl(p.normal.green) }, -- |hit-enter| prompt and yes/no questions
+    Question     { fg = hsl(p.bright.green) }, -- |hit-enter| prompt and yes/no questions
     -- QuickFixLine { }, -- Current |quickfix| item in the quickfix window. Combined with |hl-CursorLine| when the cursor is there.
     SignColumn   { gui = 'none' }, -- column where |signs| are displayed
     SpecialKey   { fg = hsl(p.dim.white) }, -- Unprintable characters: text displayed differently from what it really is.  But not 'listchars' whitespace. |hl-Whitespace|
-    SpellBad     { fg = hsl(p.bright.red), gui = 'underline' }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
+    SpellBad     { fg = hsl(p.bright.red), gui = 'undercurl,italic' }, -- Word that is not recognized by the spellchecker. |spell| Combined with the highlighting used otherwise.
     -- SpellCap     { }, -- Word that should start with a capital. |spell| Combined with the highlighting used otherwise.
     -- SpellLocal   { }, --  Word that is recognized by the spellchecker as one that is used in another region. |spell| Combined with the highlighting used otherwise.
     -- SpellRare    { }, -- Word that is recognized by the spellchecker as one that is hardly ever used.  |spell| Combined with the highlighting used otherwise.
@@ -81,17 +74,27 @@ return lush(function()
     TabLineFill  { StatusLineNC }, -- tab pages line, where there are no labels
     TabLineSel   { fg = hsl(p.bright.white), gui = 'bold' }, -- tab pages line, active tab page label
     Title        { fg = hsl(p.bright.blue), gui = 'bold' }, -- titles for output from ":set all", ":autocmd" etc.
-    VertSplit    { fg = hsl(p.dim.white), bg = 'none' }, -- the column separating vertically split windows
     Visual       { fg = hsl(p.bright.white), bg = hsl(p.normal.magenta) }, -- Visual mode selection
     VisualNOS    { Visual }, -- Visual mode selection when vim is "Not Owning the Selection".
     WarningMsg   { fg = hsl(p.normal.yellow) }, -- warning messages
-    Whitespace   { fg = hsl(p.dim.white) }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
+    Whitespace   { deEmph }, -- "nbsp", "space", "tab" and "trail" in 'listchars'
     WildMenu     { bg = hsl(p.bright.black) }, -- current match in 'wildmenu' completion
+    WinSeparator { deEmph },
+    VertSplit    { WinSeparator },
+    FloatBorder  { WinSeparator },
+
+    Cursor       { Normal, gui = 'reverse' }, -- character under the cursor
+    -- CursorIM     { Cursor }, -- like Cursor, but used when in IME mode |CursorIM|
+    -- TermCursor   { Cursor }, -- cursor in a focused terminal
+    -- TermCursorNC { Cursor }, -- cursor in an unfocused terminal
+    -- lCursor      { Cursor }, -- the character under the cursor when |language-mapping| is used (see 'guicursor')
+    -- vCursor      { Visual, gui = 'reverse' },
+    MatchParen   { Underlined }, -- The character under the cursor or just before it, if it is a paired bracket, and its match. |pi_paren.txt|
 
     Pmenu        { NormalFloat }, -- Popup menu: normal item.
     PmenuSel     { Visual }, -- Popup menu: selected item.
     PmenuSbar    { bg = 'none' }, -- Popup menu: scrollbar.
-    PmenuThumb   { bg = hsl(p.bright.white) }, -- Popup menu: Thumb of the scrollbar.
+    PmenuThumb   { PmenuSbar, gui = 'reverse' }, -- Popup menu: Thumb of the scrollbar.
 
     Boolean        { fg = hsl(p.bright.red).lighten(20) }, --  a boolean constant: TRUE, false
     String         { fg = hsl(p.normal.yellow) }, --   a string constant: "this is a string"
@@ -100,22 +103,22 @@ return lush(function()
     Float          { Number }, --    a floating point constant: 2.3e10
     Comment        { Italic, fg = hsl(p.dim.white).lighten(30) },
     Keyword        { fg = hsl(p.normal.green), gui = 'italic' }, --  any other keyword
-    Macro          { Keyword, fg = hsl(p.normal.cyan) }, --    same as Define
+    Macro          { Keyword },
     Constant       { Normal, gui = 'bold' }, -- (preferred) any constant
-    Special        { fg = hsl(p.normal.yellow) }, -- (preferred) any special symbol
-    SpecialComment { Comment, fg = hsl(p.bright.cyan) }, -- special things inside a comment
-    Statement      { fg = hsl(p.bright.blue) }, -- (preferred) any statement
+    Special        { fg = hsl(p.normal.yellow), gui = 'bold,italic' }, -- (preferred) any special symbol
+    SpecialComment { Comment, gui = 'bold,italic' }, -- special things inside a comment
+    Statement      { fg = hsl(p.bright.green), gui = 'bold' }, -- (preferred) any statement
     Tag            { Special, gui = 'underline' }, --    you can use CTRL-] on this
     Type           { fg = hsl(p.bright.green) }, -- (preferred) int, long, char, etc.
     Conditional    { Keyword }, --  if, then, else, endif, switch, etc.
     Define         { Macro }, --   preprocessor #define
-    Delimiter      { Special }, --  character that needs attention
+    Delimiter      { Normal }, --  character that needs attention
     Exception      { Keyword }, --  try, catch, throw
     Function       { Normal }, -- function name (also: methods for classes)
     Identifier     { Normal, gui = 'bold' }, -- (preferred) any variable name
     Include        { Macro }, --  preprocessor #include
     Label          { Keyword, gui = 'bold' }, --    case, default, etc.
-    Operator       { Keyword, gui = 'none' }, -- "sizeof", "+", "*", etc.
+    Operator       { Normal, gui = 'none' }, -- "sizeof", "+", "*", etc.
     PreCondit      { Macro }, --  preprocessor #if, #else, #endif, etc.
     PreProc        { Macro }, -- (preferred) generic Preprocessor
     Repeat         { Keyword }, --   for, do, while, etc.
@@ -126,84 +129,93 @@ return lush(function()
 
     Debug          { Special }, --    debugging statements
     Error          { Bold, fg = hsl(p.normal.red) }, -- (preferred) any erroneous construct
+    ErrorMsg       { Bold, fg = hsl(p.bright.black), bg = hsl(p.normal.red) }, -- error messages on the command line
     Ignore         { None }, -- (preferred) left blank, hidden  |hl-Ignore|
-    Todo           { Bold, fg = hsl(p.bright.yellow) }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
+    Todo           { Special, gui = 'bold,reverse' }, -- (preferred) anything that needs extra attention; mostly the keywords TODO FIXME and XXX
     --- }}}
 
-    -- Lang specific {{{
-    -- C {{{
-    -- cAnsiFunction { Bold },
-    -- cAnsiName {},
-    -- cBraces {},
-    -- cCharacter {},
-    -- cConditional { Bold },
-    -- cCustomFunc {},
-    -- cCustomParen {},
-    -- cDefine {},
-    -- cDelimiter {},
-    -- cFormat {},
-    -- cFunction {},
-    -- cIdentifier {},
-    -- cLabel { fg = hsl(p.dim.black), bg = hsl(p.dim.red) },
-    -- cNumber {},
-    -- cOctalZero { Bold },
-    -- cOperator {},
-    -- cPreCondit {},
-    -- cRepeat {},
-    -- cSemiColon {},
-    -- cStatement {},
-    -- cStorageClass { Bold },
-    -- cTodo { Bold },
-    -- cUserFunction { Function, gui = 'bold' },
-    cBoolean { Boolean, gui = 'bold' },
-    cConstant { Constant, gui = 'bold' },
-    cSpecial { Bold },
-    cStructure { Bold },
-    cType { Type, gui = 'bold' },
+    -- TreeSitter {{{
+    TSError              { Error }, -- For syntax/parser errors.
+    TSPunctDelimiter     { Delimiter }, -- For delimiters ie: `.`
+    TSPunctBracket       { Delimiter }, -- For brackets and parens.
+    TSPunctSpecial       { Delimiter }, -- For special punctutation that does not fall in the catagories before.
+    TSConstant           { Constant }, -- For constants
+    TSConstBuiltin       { Special, gui = 'bold' }, -- For constant that are built in the language: `nil` in Lua.
+    TSConstMacro         { Macro, gui = 'bold' }, -- For constants that are defined by macros: `NULL` in C.
+    TSString             { String }, -- For strings.
+    TSStringRegex        { String }, -- For regexes.
+    TSStringEscape       { Special }, -- For escape characters within a string.
+    TSCharacter          { Character }, -- For characters.
+    TSNumber             { Number }, -- For integers.
+    TSBoolean            { Boolean }, -- For booleans.
+    TSFloat              { Number }, -- For floats.
+    TSFunction           { Function }, -- For function (calls and definitions).
+    TSFuncBuiltin        { Function, fg = hsl(p.normal.magenta) }, -- For builtin functions: `table.insert` in Lua.
+    TSFuncMacro          { Macro }, -- For macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
+    -- TSParameter          { }, -- For parameters of a function.
+    -- TSParameterReference { }, -- For references to parameters of a function.
+    TSMethod             { Function }, -- For method calls and definitions.
+    TSField              { Normal }, -- For fields.
+    TSProperty           { TSField }, -- Same as `TSField`.
+    TSConstructor        { Delimiter }, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors.
+    TSConditional        { Conditional }, -- For keywords related to conditionnals.
+    TSRepeat             { Repeat }, -- For keywords related to loops.
+    TSLabel              { Label }, -- For labels: `label:` in C and `:label:` in Lua.
+    TSOperator           { Operator }, -- For any operator: `+`, but also `->` and `*` in C.
+    TSKeyword            { Keyword }, -- For keywords that don't fall in previous categories.
+    TSKeywordFunction    { Keyword }, -- For keywords used to define a fuction.
+    TSException          { Exception }, -- For exception related keywords.
+    TSType               { Type }, -- For types.
+    TSTypeBuiltin        { Type }, -- For builtin types (you guessed it, right ?).
+    TSNamespace          { Normal }, -- For identifiers referring to modules and namespaces.
+    TSInclude            { Include }, -- For includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
+    TSAnnotation         { StorageClass }, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
+    TSText               { Normal }, -- For strings considered text in a markup language.
+    TSStrong             { Bold }, -- For text to be represented with strong.
+    TSEmphasis           { Italic }, -- For text to be represented with emphasis.
+    TSUnderline          { Underlined }, -- For text to be represented with an underline.
+    TSTitle              { Title }, -- Text that is part of a title.
+    TSLiteral            { Normal }, -- Literal text.
+    TSURI                { Tag, fg = hsl(p.bright.blue) }, -- Any URI like a link or email.
+    TSVariable           { Normal }, -- Any variable name that does not have another highlight.
+    TSVariableBuiltin    { Special }, -- Variable names that are defined by the languages, like `this` or `self`.
     -- }}}
 
     -- Markdown {{{
-    -- mkdCode { markdownCode },
     mkdBlockQuote { Comment },
-    mkdDelimiter { Delimiter },
-    mkdHeading { Title },
-    -- mkdID { Constant },
-    -- mkdLink { Tag },
-    -- mkdLinkTitle { bg = hsl('#ff0000') },
-    -- mkdListItem { Number },
-    -- mkdURL { Tag },
-    mkdBold { Bold },
-    mkdItalic { Italic },
+    mkdDelimiter  { Delimiter },
+    mkdHeading    { Title },
+    mkdBold       { Bold },
+    mkdItalic     { Italic },
     mkdBoldItalic { gui = "bold,italic" },
-    -- }}}
-
-    -- Go {{{
-    -- goType { Type },
-    -- goTSType { Type },
-    -- }}}
-
+    -- mkdCode       { markdownCode },
+    -- mkdID         { Constant },
+    mkdLink       { TSURI },
+    -- mkdLinkTitle  { bg = hsl('#ff0000') },
+    -- mkdListItem   { Number },
+    mkdURL        { TSURI },
     -- }}}
 
     -- LSP {{{
     DiagnosticError            { Error },
     DiagnosticFloatingError    { DiagnosticError },
-    DiagnosticVirtualTextError { fg = DiagnosticError.fg.darken(50), bg = DiagnosticError.fg.darken(90) },
-    DiagnosticSignError        { DiagnosticError },
+    DiagnosticVirtualTextError { DiagnosticError, gui = 'reverse' },
+    DiagnosticSignError        { DiagnosticError, gui = 'reverse' },
 
     DiagnosticWarn             { WarningMsg },
     DiagnosticFloatingWarn     { DiagnosticWarn },
-    DiagnosticVirtualTextWarn  { fg = DiagnosticWarn.fg.darken(40), bg = DiagnosticWarn.fg.darken(90) },
-    DiagnosticSignWarn         { DiagnosticWarn },
+    DiagnosticVirtualTextWarn  { DiagnosticWarn, gui = 'reverse' },
+    DiagnosticSignWarn         { DiagnosticWarn, gui = 'reverse' },
 
     DiagnosticInfo             { MoreMsg },
     DiagnosticFloatingInfo     { DiagnosticInfo },
-    DiagnosticVirtualTextInfo  { fg = DiagnosticInfo.fg.darken(40), bg = DiagnosticInfo.fg.darken(90) },
-    DiagnosticSignInformation  { DiagnosticInfo },
+    DiagnosticVirtualTextInfo  { DiagnosticInfo, gui = 'reverse' },
+    DiagnosticSignInfo         { DiagnosticInfo, gui = 'reverse' },
 
     DiagnosticHint             { fg = hsl(p.normal.white) },
     DiagnosticFloatingHint     { DiagnosticHint },
-    DiagnosticVirtualTextHint  { fg = DiagnosticHint.fg.darken(20), bg = DiagnosticHint.fg.darken(80) },
-    DiagnosticSignHint         { DiagnosticHint },
+    DiagnosticVirtualTextHint  { DiagnosticHint, gui = 'reverse' },
+    DiagnosticSignHint         { DiagnosticHint, gui = 'reverse' },
 
     -- LspDiagnosticsUnderlineError {},
     -- LspDiagnosticsUnderlineWarning {},
@@ -215,127 +227,80 @@ return lush(function()
     -- LspReferenceWrite                 { }, -- used for highlighting "write" references
     -- }}}
 
-    -- TreeSitter {{{
-    TSError              { Error }, -- For syntax/parser errors.
-    -- TSPunctDelimiter     { }, -- For delimiters ie: `.`
-    TSPunctBracket       { Normal }, -- For brackets and parens.
-    -- TSPunctSpecial       { }, -- For special punctutation that does not fall in the catagories before.
-    -- TSConstant           { }, -- For constants
-    -- TSConstBuiltin       { }, -- For constant that are built in the language: `nil` in Lua.
-    -- TSConstMacro         { }, -- For constants that are defined by macros: `NULL` in C.
-    -- TSString             { }, -- For strings.
-    -- TSStringRegex        { }, -- For regexes.
-    -- TSStringEscape       { }, -- For escape characters within a string.
-    -- TSCharacter          { }, -- For characters.
-    -- TSNumber             { }, -- For integers.
-    -- TSBoolean            { }, -- For booleans.
-    -- TSFloat              { }, -- For floats.
-    -- TSFunction           { }, -- For function (calls and definitions).
-    TSFuncBuiltin        { Function, fg = hsl(p.normal.magenta) }, -- For builtin functions: `table.insert` in Lua.
-    -- TSFuncMacro          { }, -- For macro defined fuctions (calls and definitions): each `macro_rules` in Rust.
-    -- TSParameter          { }, -- For parameters of a function.
-    -- TSParameterReference { }, -- For references to parameters of a function.
-    -- TSMethod             { }, -- For method calls and definitions.
-    -- TSField              { }, -- For fields.
-    -- TSProperty           { }, -- Same as `TSField`.
-    -- TSConstructor        { }, -- For constructor calls and definitions: `{ }` in Lua, and Java constructors.
-    -- TSConditional        { }, -- For keywords related to conditionnals.
-    -- TSRepeat             { }, -- For keywords related to loops.
-    -- TSLabel              { }, -- For labels: `label:` in C and `:label:` in Lua.
-    -- TSOperator           { }, -- For any operator: `+`, but also `->` and `*` in C.
-    -- TSKeyword            { }, -- For keywords that don't fall in previous categories.
-    -- TSKeywordFunction    { }, -- For keywords used to define a fuction.
-    -- TSException          { }, -- For exception related keywords.
-    TSType               { Type }, -- For types.
-    TSTypeBuiltin        { Type }, -- For builtin types (you guessed it, right ?).
-    -- TSNamespace          { }, -- For identifiers referring to modules and namespaces.
-    -- TSInclude            { }, -- For includes: `#include` in C, `use` or `extern crate` in Rust, or `require` in Lua.
-    -- TSAnnotation         { }, -- For C++/Dart attributes, annotations that can be attached to the code to denote some kind of meta information.
-    -- TSText               { }, -- For strings considered text in a markup language.
-    -- TSStrong             { }, -- For text to be represented with strong.
-    -- TSEmphasis           { }, -- For text to be represented with emphasis.
-    TSUnderline          { Underlined }, -- For text to be represented with an underline.
-    -- TSTitle              { }, -- Text that is part of a title.
-    -- TSLiteral            { }, -- Literal text.
-    -- TSURI                { }, -- Any URI like a link or email.
-    -- TSVariable           { }, -- Any variable name that does not have another highlight.
-    -- TSVariableBuiltin    { }, -- Variable names that are defined by the languages, like `this` or `self`.
-    -- }}}
-
     -- Plugin configs {{{
-    IndentGuidesOdd { bg = hsl(p.bright.black) },
-    IndentGuidesEven { bg = hsl(p.dim.white).darken(40) },
+    IndentBlanklineChar               { fg = hsl(p.dim.white).darken(30), gui = 'nocombine' },
+    IndentBlanklineSpaceChar          { Whitespace, gui = 'nocombine' },
+    IndentBlanklineSpaceCharBlankline { Whitespace, gui = 'nocombine' },
+    IndentBlanklineContextChar        { fg = IndentBlanklineChar.fg.lighten(30), gui = 'nocombine' },
+    IndentBlanklineContextStart       { guisp = IndentBlanklineContextChar.fg, gui = 'underline' },
 
-    IndentBlanklineChar { fg = hsl(p.dim.white), gui = 'nocombine'},
-
-    -- gitsigns {{{
+    -- git stuff {{{
     GitSignsChangeLn { DiffChange },
-    GitSignsAddLn { DiffAdd },
+    GitSignsAddLn    { DiffAdd },
     GitSignsDeleteLn { DiffDelete },
-    GitSignsChange { fg = GitSignsChangeLn.bg },
-    GitSignsAdd { fg = GitSignsAddLn.bg },
-    GitSignsDelete { fg = GitSignsDeleteLn.bg },
-    -- }}}
+    GitSignsChange   { fg = GitSignsChangeLn.bg },
+    GitSignsAdd      { fg = GitSignsAddLn.bg },
+    GitSignsDelete   { fg = GitSignsDeleteLn.bg },
 
-    -- git {{{
     gitcommitSummary { Bold },
+    gitcommitDiff    { Comment },
+    diffFile         { Special },
+    diffSubname      { diffFile },
+    diffIndexLine    { diffFile },
     -- gitcommitHeader { Bold },
     -- gitcommitSelectedType {},
     -- gitcommitSelectedFile {},
     -- gitcommitUntrackedFile {},
     -- gitcommitBranch {},
     -- gitcommitDiscardedType {},
-    gitcommitDiff { Comment },
-    diffFile { fg = hsl(p.bright.yellow) },
-    diffSubname { diffFile },
-    diffIndexLine { diffFile },
-    diffAdded { DiffAdd },
-    diffRemoved { DiffDelete },
+
+    diffAdded        { DiffAdd },
+    diffRemoved      { DiffDelete },
     -- diffLine {},
     -- diffBDiffer {},
     -- diffNewFile {},
-    -- }}}
 
-    -- git-messenger {{{
-    gitmessengerPopupNormal { CursorLine },
-    gitmessengerHeader { Statement },
-    gitmessengerHash { Special },
-    gitmessengerHistory { Title },
-    gitmessengerEmail { Comment },
+    gitmessengerPopupNormal { NormalFloat },
+    gitmessengerHeader      { Special, gui = 'bold' },
+    gitmessengerHash        { Normal },
+    gitmessengerHistory     { Normal },
+    gitmessengerEmail       { Normal },
     -- }}}
 
-    -- nvim-lightbulb {{{
-    LightBulbFloatWin { DiagnosticFloatingHint },
+    LightBulbFloatWin    { NormalFloat },
     LightBulbVirtualText { DiagnosticVirtualTextHint },
-    -- }}}
 
     CompeDocumentation { NormalFloat },
+    AlphaFortune { Comment },
 
-    -- startify {{{
-    StartifyBracket { fg = hsl(p.bright.blue) },
-    StartifyFile { fg = hsl(p.normal.red), gui = 'bold' },
-    StartifyNumber { fg = hsl(p.bright.blue).darken(20) },
-    StartifyPath { fg = hsl(p.normal.green).lighten(10) },
-    StartifySlash { fg = hsl(p.normal.white) },
-    StartifySection { fg = hsl(p.bright.yellow) },
-    StartifySpecial { fg = hsl(p.normal.red) },
-    StartifyHeader { fg = hsl(p.dim.white) },
-    StartifyFooter { fg = hsl(p.dim.white) },
-    -- }}}
+    DapBreakpoint   { fg = hsl(p.normal.black), bg = MoreMsg.fg },
+    DapStopped      { fg = hsl(p.normal.black), bg = MoreMsg.fg },
+    DapBreakpointLn { DapBreakpoint },
+    DapStoppedLn    { DapStopped },
 
-    AlphaFortune { Comment },
+    CmpItemAbbrMatch { gui = 'bold' },
+    CmpItemAbbrMatchFuzzy { CmpItemAbbrMatch },
+    CmpItemKindVariable { TSVariable },
+    CmpItemKindInterface { Type },
+    CmpItemKindText { Normal },
+    CmpItemKindFunction { Function },
+    CmpItemKindMethod { TSMethod },
+    CmpItemKindKeyword { Keyword },
+    CmpItemKindProperty { TSField },
+    CmpItemKindUnit { Special },
 
     -- Plugin configs END }}}
 
     -- Config specific
-    StatusLineIcon { fg = hsl(p.bright.magenta) },
-    StatusLineInsert { StatusLine },
-    StatusLineCommand { StatusLine },
-    StatusLineVisual { Visual },
-    StatusLineReplace { fg = hsl(p.bright.white), bg = hsl(p.bright.red) },
-    StatusLineJobs { DiagnosticHint },
+    StatusLineIcon        { fg = hsl(p.normal.magenta) },
+    StatusLineInsert      { StatusLine },
+    StatusLineCommand     { StatusLine },
+    StatusLineVisual      { Visual },
+    StatusLineReplace     { fg = hsl(p.bright.white), bg = hsl(p.bright.red) },
+    StatusLineJobs        { DiagnosticHint },
     StatusLineDiagnostics { StatusLine },
-    StatusLineLightbulb { fg = hsl(p.bright.yellow) },
-    StatusLineLsp { fg = hsl(p.normal.black), bg = hsl(p.normal.white) },
+    StatusLineLightbulb   { WarningMsg },
+    StatusLineLsp         { fg = hsl(p.normal.black), bg = hsl(p.normal.white) },
+    StatusLineNotify      { StatusLine, gui = 'none' },
   }
 end)