base16.lua (23441B)
1 -- start color 2 -- base16-nvim (https://github.com/wincent/base16-nvim) 3 -- by Greg Hurrell (https://github.com/wincent) 4 -- based on 5 -- base16-vim (https://github.com/chriskempson/base16-vim) 6 -- by Chris Kempson (https://github.com/chriskempson) 7 -- Gruvbox dark, hard scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox) 8 local gui00 = '#1d2021' 9 local gui01 = '#3c3836' 10 local gui02 = '#504945' 11 local gui03 = '#665c54' 12 local gui04 = '#bdae93' 13 local gui05 = '#d5c4a1' 14 local gui06 = '#ebdbb2' 15 local gui07 = '#fbf1c7' 16 local gui08 = '#fb4934' 17 local gui09 = '#fe8019' 18 local gui0A = '#fabd2f' 19 local gui0B = '#b8bb26' 20 local gui0C = '#8ec07c' 21 local gui0D = '#83a598' 22 local gui0E = '#d3869b' 23 local gui0F = '#d65d0e' 24 25 local cterm00 = 0 26 local cterm03 = 8 27 local cterm05 = 7 28 local cterm07 = 15 29 local cterm08 = 1 30 local cterm0A = 3 31 local cterm0B = 2 32 local cterm0C = 6 33 local cterm0D = 4 34 local cterm0E = 5 35 local cterm01 = 10 36 local cterm02 = 11 37 local cterm04 = 12 38 local cterm06 = 13 39 local cterm09 = 9 40 local cterm0F = 14 41 42 vim.cmd [[ 43 highlight clear 44 syntax reset 45 ]] 46 vim.g.colors_name = 'base16-gruvbox-dark-hard' 47 48 -- Vim editor colors fg bg ctermfg ctermbg attr guisp 49 vim.api.nvim_set_hl(0, 'Normal', { fg = gui05, bg = gui00, ctermfg = cterm05, ctermbg = cterm00 }) 50 vim.api.nvim_set_hl(0, 'Bold', { bold = true }) 51 vim.api.nvim_set_hl(0, 'Debug', { fg = gui08, ctermfg = cterm08 }) 52 vim.api.nvim_set_hl(0, 'Directory', { fg = gui0D, ctermfg = cterm0D }) 53 vim.api.nvim_set_hl(0, 'Error', { fg = gui00, bg = gui08, ctermfg = cterm00, ctermbg = cterm08 }) 54 vim.api.nvim_set_hl(0, 'ErrorMsg', { fg = gui08, bg = gui00, ctermfg = cterm08, ctermbg = cterm00 }) 55 vim.api.nvim_set_hl(0, 'Exception', { fg = gui08, ctermfg = cterm08 }) 56 vim.api.nvim_set_hl(0, 'FoldColumn', { fg = gui0C, bg = gui01, ctermfg = cterm0C, ctermbg = cterm01 }) 57 vim.api.nvim_set_hl(0, 'Folded', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 58 vim.api.nvim_set_hl(0, 'IncSearch', { fg = gui01, bg = gui09, ctermfg = cterm01, ctermbg = cterm09 }) 59 vim.api.nvim_set_hl(0, 'Italic', {}) 60 vim.api.nvim_set_hl(0, 'Macro', { fg = gui08, ctermfg = cterm08 }) 61 vim.api.nvim_set_hl(0, 'MatchParen', { bg = gui03, ctermbg = cterm03 }) 62 vim.api.nvim_set_hl(0, 'ModeMsg', { fg = gui0B, ctermfg = cterm0B }) 63 vim.api.nvim_set_hl(0, 'MoreMsg', { fg = gui0B, ctermfg = cterm0B }) 64 vim.api.nvim_set_hl(0, 'Question', { fg = gui0D, ctermfg = cterm0D }) 65 vim.api.nvim_set_hl(0, 'Search', { fg = gui01, bg = gui0A, ctermfg = cterm01, ctermbg = cterm0A }) 66 vim.api.nvim_set_hl(0, 'Substitute', { fg = gui01, bg = gui0A, ctermfg = cterm01, ctermbg = cterm0A }) 67 vim.api.nvim_set_hl(0, 'SpecialKey', { fg = gui03, ctermfg = cterm03 }) 68 vim.api.nvim_set_hl(0, 'TooLong', { fg = gui08, ctermfg = cterm08 }) 69 vim.api.nvim_set_hl(0, 'Underlined', { fg = gui08, ctermfg = cterm08 }) 70 vim.api.nvim_set_hl(0, 'Visual', { bg = gui02, ctermbg = cterm02 }) 71 vim.api.nvim_set_hl(0, 'VisualNOS', { fg = gui08, ctermfg = cterm08 }) 72 vim.api.nvim_set_hl(0, 'WarningMsg', { fg = gui08, ctermfg = cterm08 }) 73 vim.api.nvim_set_hl(0, 'WildMenu', { fg = gui08, bg = gui0A, ctermfg = cterm08 }) 74 vim.api.nvim_set_hl(0, 'Title', { fg = gui0D, ctermfg = cterm0D }) 75 vim.api.nvim_set_hl(0, 'Conceal', { fg = gui0D, bg = gui00, ctermfg = cterm0D, ctermbg = cterm00 }) 76 vim.api.nvim_set_hl(0, 'Cursor', { fg = gui00, bg = gui05, ctermfg = cterm00, ctermbg = cterm05 }) 77 vim.api.nvim_set_hl(0, 'NonText', { fg = gui03, ctermfg = cterm03 }) 78 vim.api.nvim_set_hl(0, 'LineNr', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 79 vim.api.nvim_set_hl(0, 'SignColumn', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 80 vim.api.nvim_set_hl(0, 'StatusLine', { fg = gui04, bg = gui02, ctermfg = cterm04, ctermbg = cterm02 }) 81 vim.api.nvim_set_hl(0, 'StatusLineNC', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 82 vim.api.nvim_set_hl(0, 'VertSplit', { fg = gui02, bg = gui02, ctermfg = cterm02, ctermbg = cterm02 }) 83 vim.api.nvim_set_hl(0, 'ColorColumn', { bg = gui01, ctermbg = cterm01 }) 84 vim.api.nvim_set_hl(0, 'CursorColumn', { bg = gui01, ctermbg = cterm01 }) 85 vim.api.nvim_set_hl(0, 'CursorLine', { bg = gui01, ctermbg = cterm01 }) 86 vim.api.nvim_set_hl(0, 'CursorLineNr', { fg = gui04, bg = gui01, ctermfg = cterm04, ctermbg = cterm01 }) 87 vim.api.nvim_set_hl(0, 'QuickFixLine', { bg = gui01, ctermbg = cterm01 }) 88 vim.api.nvim_set_hl(0, 'PMenu', { fg = gui05, bg = gui01, ctermfg = cterm05, ctermbg = cterm01 }) 89 vim.api.nvim_set_hl(0, 'PMenuSel', { fg = gui01, bg = gui05, ctermfg = cterm01, ctermbg = cterm05 }) 90 vim.api.nvim_set_hl(0, 'TabLine', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 91 vim.api.nvim_set_hl(0, 'TabLineFill', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 92 vim.api.nvim_set_hl(0, 'TabLineSel', { fg = gui0B, bg = gui01, ctermfg = cterm0B, ctermbg = cterm01 }) 93 94 -- Standard syntax highlighting 95 vim.api.nvim_set_hl(0, 'Boolean', { fg = gui09, ctermfg = cterm09 }) 96 vim.api.nvim_set_hl(0, 'Character', { fg = gui08, ctermfg = cterm08 }) 97 vim.api.nvim_set_hl(0, 'Comment', { fg = gui03, ctermfg = cterm03 }) 98 vim.api.nvim_set_hl(0, 'Conditional', { fg = gui0E, ctermfg = cterm0E }) 99 vim.api.nvim_set_hl(0, 'Constant', { fg = gui09, ctermfg = cterm09 }) 100 vim.api.nvim_set_hl(0, 'Define', { fg = gui0E, ctermfg = cterm0E }) 101 vim.api.nvim_set_hl(0, 'Delimiter', { fg = gui0F, ctermfg = cterm0F }) 102 vim.api.nvim_set_hl(0, 'Float', { fg = gui09, ctermfg = cterm09 }) 103 vim.api.nvim_set_hl(0, 'Function', { fg = gui0D, ctermfg = cterm0D }) 104 vim.api.nvim_set_hl(0, 'Identifier', { fg = gui05, ctermfg = cterm05 }) 105 vim.api.nvim_set_hl(0, 'Include', { fg = gui0D, ctermfg = cterm0D }) 106 vim.api.nvim_set_hl(0, 'Keyword', { fg = gui0E, ctermfg = cterm0E }) 107 vim.api.nvim_set_hl(0, 'Label', { fg = gui0A, ctermfg = cterm0A }) 108 vim.api.nvim_set_hl(0, 'Number', { fg = gui09, ctermfg = cterm09 }) 109 vim.api.nvim_set_hl(0, 'Operator', { fg = gui05, ctermfg = cterm05 }) 110 vim.api.nvim_set_hl(0, 'PreProc', { fg = gui0A, ctermfg = cterm0A }) 111 vim.api.nvim_set_hl(0, 'Repeat', { fg = gui0A, ctermfg = cterm0A }) 112 vim.api.nvim_set_hl(0, 'Special', { fg = gui0C, ctermfg = cterm0C }) 113 vim.api.nvim_set_hl(0, 'SpecialChar', { fg = gui0F, ctermfg = cterm0F }) 114 vim.api.nvim_set_hl(0, 'Statement', { fg = gui0E, ctermfg = cterm0E }) 115 vim.api.nvim_set_hl(0, 'StorageClass', { fg = gui0A, ctermfg = cterm0A }) 116 vim.api.nvim_set_hl(0, 'String', { fg = gui0B, ctermfg = cterm0B }) 117 vim.api.nvim_set_hl(0, 'Structure', { fg = gui0E, ctermfg = cterm0E }) 118 vim.api.nvim_set_hl(0, 'Tag', { fg = gui0A, ctermfg = cterm0A }) 119 vim.api.nvim_set_hl(0, 'Todo', { fg = gui0A, bg = gui01, ctermfg = cterm0A, ctermbg = cterm01 }) 120 vim.api.nvim_set_hl(0, 'Type', { fg = gui0A, ctermfg = cterm0A }) 121 vim.api.nvim_set_hl(0, 'Typedef', { fg = gui0A, ctermfg = cterm0A }) 122 123 -- C highlighting 124 vim.api.nvim_set_hl(0, 'cOperator', { fg = gui0C, ctermfg = cterm0C }) 125 vim.api.nvim_set_hl(0, 'cPreCondit', { fg = gui0E, ctermfg = cterm0E }) 126 127 -- C# highlighting 128 vim.api.nvim_set_hl(0, 'csClass', { fg = gui0A, ctermfg = cterm0A }) 129 vim.api.nvim_set_hl(0, 'csAttribute', { fg = gui0A, ctermfg = cterm0A }) 130 vim.api.nvim_set_hl(0, 'csModifier', { fg = gui0E, ctermfg = cterm0E }) 131 vim.api.nvim_set_hl(0, 'csType', { fg = gui08, ctermfg = cterm08 }) 132 vim.api.nvim_set_hl(0, 'csUnspecifiedStatement', { fg = gui0D, ctermfg = cterm0D }) 133 vim.api.nvim_set_hl(0, 'csContextualStatement', { fg = gui0E, ctermfg = cterm0E }) 134 vim.api.nvim_set_hl(0, 'csNewDecleration', { fg = gui08, ctermfg = cterm08 }) 135 136 -- CSS highlighting 137 vim.api.nvim_set_hl(0, 'cssBraces', { fg = gui05, ctermfg = cterm05 }) 138 vim.api.nvim_set_hl(0, 'cssClassName', { fg = gui0E, ctermfg = cterm0E }) 139 vim.api.nvim_set_hl(0, 'cssColor', { fg = gui0C, ctermfg = cterm0C }) 140 141 -- Diff highlighting 142 vim.api.nvim_set_hl(0, 'DiffAdd', { fg = gui0B, bg = gui01, ctermfg = cterm0B, ctermbg = cterm01 }) 143 vim.api.nvim_set_hl(0, 'DiffChange', { fg = gui03, bg = gui01, ctermfg = cterm03, ctermbg = cterm01 }) 144 vim.api.nvim_set_hl(0, 'DiffDelete', { fg = gui08, bg = gui01, ctermfg = cterm08, ctermbg = cterm01 }) 145 vim.api.nvim_set_hl(0, 'DiffText', { fg = gui0D, bg = gui01, ctermfg = cterm0D, ctermbg = cterm01 }) 146 vim.api.nvim_set_hl(0, 'DiffAdded', { fg = gui0B, bg = gui00, ctermfg = cterm0B, ctermbg = cterm00 }) 147 vim.api.nvim_set_hl(0, 'DiffFile', { fg = gui08, bg = gui00, ctermfg = cterm08, ctermbg = cterm00 }) 148 vim.api.nvim_set_hl(0, 'DiffNewFile', { fg = gui0B, bg = gui00, ctermfg = cterm0B, ctermbg = cterm00 }) 149 vim.api.nvim_set_hl(0, 'DiffLine', { fg = gui0D, bg = gui00, ctermfg = cterm0D, ctermbg = cterm00 }) 150 vim.api.nvim_set_hl(0, 'DiffRemoved', { fg = gui08, bg = gui00, ctermfg = cterm08, ctermbg = cterm00 }) 151 152 -- Git highlighting 153 vim.api.nvim_set_hl(0, 'gitcommitOverflow', { fg = gui08, ctermfg = cterm08 }) 154 vim.api.nvim_set_hl(0, 'gitcommitSummary', { fg = gui0B, ctermfg = cterm0B }) 155 vim.api.nvim_set_hl(0, 'gitcommitComment', { fg = gui03, ctermfg = cterm03 }) 156 vim.api.nvim_set_hl(0, 'gitcommitUntracked', { fg = gui03, ctermfg = cterm03 }) 157 vim.api.nvim_set_hl(0, 'gitcommitDiscarded', { fg = gui03, ctermfg = cterm03 }) 158 vim.api.nvim_set_hl(0, 'gitcommitSelected', { fg = gui03, ctermfg = cterm03 }) 159 vim.api.nvim_set_hl(0, 'gitcommitHeader', { fg = gui0E, ctermfg = cterm0E }) 160 vim.api.nvim_set_hl(0, 'gitcommitSelectedType', { fg = gui0D, ctermfg = cterm0D }) 161 vim.api.nvim_set_hl(0, 'gitcommitUnmergedType', { fg = gui0D, ctermfg = cterm0D }) 162 vim.api.nvim_set_hl(0, 'gitcommitDiscardedType', { fg = gui0D, ctermfg = cterm0D }) 163 vim.api.nvim_set_hl(0, 'gitcommitBranch', { fg = gui09, ctermfg = cterm09, bold = true }) 164 vim.api.nvim_set_hl(0, 'gitcommitUntrackedFile', { fg = gui0A, ctermfg = cterm0A }) 165 vim.api.nvim_set_hl(0, 'gitcommitUnmergedFile', { fg = gui08, ctermfg = cterm08, bold = true }) 166 vim.api.nvim_set_hl(0, 'gitcommitDiscardedFile', { fg = gui08, ctermfg = cterm08, bold = true }) 167 vim.api.nvim_set_hl(0, 'gitcommitSelectedFile', { fg = gui0B, ctermfg = cterm0B, bold = true }) 168 169 -- GitGutter highlighting 170 vim.api.nvim_set_hl(0, 'GitGutterAdd', { fg = gui0B, bg = gui01, ctermfg = cterm0B, ctermbg = cterm01 }) 171 vim.api.nvim_set_hl(0, 'GitGutterChange', { fg = gui0D, bg = gui01, ctermfg = cterm0D, ctermbg = cterm01 }) 172 vim.api.nvim_set_hl(0, 'GitGutterDelete', { fg = gui08, bg = gui01, ctermfg = cterm08, ctermbg = cterm01 }) 173 vim.api.nvim_set_hl(0, 'GitGutterChangeDelete', { fg = gui0E, bg = gui01, ctermfg = cterm0E, ctermbg = cterm01 }) 174 175 -- HTML highlighting 176 vim.api.nvim_set_hl(0, 'htmlBold', { fg = gui0A, ctermfg = cterm0A }) 177 vim.api.nvim_set_hl(0, 'htmlItalic', { fg = gui0E, ctermfg = cterm0E }) 178 vim.api.nvim_set_hl(0, 'htmlEndTag', { fg = gui05, ctermfg = cterm05 }) 179 vim.api.nvim_set_hl(0, 'htmlTag', { fg = gui05, ctermfg = cterm05 }) 180 181 -- JavaScript highlighting 182 vim.api.nvim_set_hl(0, 'javaScript', { fg = gui05, ctermfg = cterm05 }) 183 vim.api.nvim_set_hl(0, 'javaScriptBraces', { fg = gui05, ctermfg = cterm05 }) 184 vim.api.nvim_set_hl(0, 'javaScriptNumber', { fg = gui09, ctermfg = cterm09 }) 185 186 -- pangloss/vim-javascript highlighting 187 vim.api.nvim_set_hl(0, 'jsOperator', { fg = gui0D, ctermfg = cterm0D }) 188 vim.api.nvim_set_hl(0, 'jsStatement', { fg = gui0E, ctermfg = cterm0E }) 189 vim.api.nvim_set_hl(0, 'jsReturn', { fg = gui0E, ctermfg = cterm0E }) 190 vim.api.nvim_set_hl(0, 'jsThis', { fg = gui08, ctermfg = cterm08 }) 191 vim.api.nvim_set_hl(0, 'jsClassDefinition', { fg = gui0A, ctermfg = cterm0A }) 192 vim.api.nvim_set_hl(0, 'jsFunction', { fg = gui0E, ctermfg = cterm0E }) 193 vim.api.nvim_set_hl(0, 'jsFuncName', { fg = gui0D, ctermfg = cterm0D }) 194 vim.api.nvim_set_hl(0, 'jsFuncCall', { fg = gui0D, ctermfg = cterm0D }) 195 vim.api.nvim_set_hl(0, 'jsClassFuncName', { fg = gui0D, ctermfg = cterm0D }) 196 vim.api.nvim_set_hl(0, 'jsClassMethodType', { fg = gui0E, ctermfg = cterm0E }) 197 vim.api.nvim_set_hl(0, 'jsRegexpString', { fg = gui0C, ctermfg = cterm0C }) 198 vim.api.nvim_set_hl(0, 'jsGlobalObjects', { fg = gui0A, ctermfg = cterm0A }) 199 vim.api.nvim_set_hl(0, 'jsGlobalNodeObjects', { fg = gui0A, ctermfg = cterm0A }) 200 vim.api.nvim_set_hl(0, 'jsExceptions', { fg = gui0A, ctermfg = cterm0A }) 201 vim.api.nvim_set_hl(0, 'jsBuiltins', { fg = gui0A, ctermfg = cterm0A }) 202 203 -- LSP highlighting 204 vim.api.nvim_set_hl(0, 'LspDiagnosticsDefaultError', { fg = gui08, ctermfg = cterm08 }) 205 vim.api.nvim_set_hl(0, 'LspDiagnosticsDefaultWarning', { fg = gui09, ctermfg = cterm09 }) 206 vim.api.nvim_set_hl(0, 'LspDiagnosticsDefaultHnformation', { fg = gui05, ctermfg = cterm05 }) 207 vim.api.nvim_set_hl(0, 'LspDiagnosticsDefaultHint', { fg = gui03, ctermfg = cterm03 }) 208 209 -- Mail highlighting 210 vim.api.nvim_set_hl(0, 'mailQuoted1', { fg = gui0A, ctermfg = cterm0A }) 211 vim.api.nvim_set_hl(0, 'mailQuoted2', { fg = gui0B, ctermfg = cterm0B }) 212 vim.api.nvim_set_hl(0, 'mailQuoted3', { fg = gui0E, ctermfg = cterm0E }) 213 vim.api.nvim_set_hl(0, 'mailQuoted4', { fg = gui0C, ctermfg = cterm0C }) 214 vim.api.nvim_set_hl(0, 'mailQuoted5', { fg = gui0D, ctermfg = cterm0D }) 215 vim.api.nvim_set_hl(0, 'mailQuoted6', { fg = gui0A, ctermfg = cterm0A }) 216 vim.api.nvim_set_hl(0, 'mailURL', { fg = gui0D, ctermfg = cterm0D }) 217 vim.api.nvim_set_hl(0, 'mailEmail', { fg = gui0D, ctermfg = cterm0D }) 218 219 -- Markdown highlighting 220 vim.api.nvim_set_hl(0, 'markdownCode', { fg = gui0B, ctermfg = cterm0B }) 221 vim.api.nvim_set_hl(0, 'markdownError', { fg = gui05, bg = gui00, ctermfg = cterm05, ctermbg = cterm00 }) 222 vim.api.nvim_set_hl(0, 'markdownCodeBlock', { fg = gui0B, ctermfg = cterm0B }) 223 vim.api.nvim_set_hl(0, 'markdownHeadingDelimiter', { fg = gui0D, ctermfg = cterm0D }) 224 225 -- NERDTree highlighting 226 vim.api.nvim_set_hl(0, 'NERDTreeDirSlash', { fg = gui0D, ctermfg = cterm0D }) 227 vim.api.nvim_set_hl(0, 'NERDTreeExecFile', { fg = gui05, ctermfg = cterm05 }) 228 229 -- PHP highlighting 230 vim.api.nvim_set_hl(0, 'phpMemberSelector', { fg = gui05, ctermfg = cterm05 }) 231 vim.api.nvim_set_hl(0, 'phpComparison', { fg = gui05, ctermfg = cterm05 }) 232 vim.api.nvim_set_hl(0, 'phpParent', { fg = gui05, ctermfg = cterm05 }) 233 vim.api.nvim_set_hl(0, 'phpMethodsVar', { fg = gui0C, ctermfg = cterm0C }) 234 235 -- Python highlighting 236 vim.api.nvim_set_hl(0, 'pythonOperator', { fg = gui0E, ctermfg = cterm0E }) 237 vim.api.nvim_set_hl(0, 'pythonRepeat', { fg = gui0E, ctermfg = cterm0E }) 238 vim.api.nvim_set_hl(0, 'pythonInclude', { fg = gui0E, ctermfg = cterm0E }) 239 vim.api.nvim_set_hl(0, 'pythonStatement', { fg = gui0E, ctermfg = cterm0E }) 240 241 -- Ruby highlighting 242 vim.api.nvim_set_hl(0, 'rubyAttribute', { fg = gui0D, ctermfg = cterm0D }) 243 vim.api.nvim_set_hl(0, 'rubyConstant', { fg = gui0A, ctermfg = cterm0A }) 244 vim.api.nvim_set_hl(0, 'rubyInterpolationDelimiter', { fg = gui0F, ctermfg = cterm0F }) 245 vim.api.nvim_set_hl(0, 'rubyRegexp', { fg = gui0C, ctermfg = cterm0C }) 246 vim.api.nvim_set_hl(0, 'rubySymbol', { fg = gui0B, ctermfg = cterm0B }) 247 vim.api.nvim_set_hl(0, 'rubyStringDelimiter', { fg = gui0B, ctermfg = cterm0B }) 248 249 -- SASS highlighting 250 vim.api.nvim_set_hl(0, 'sassidChar', { fg = gui08, ctermfg = cterm08 }) 251 vim.api.nvim_set_hl(0, 'sassClassChar', { fg = gui09, ctermfg = cterm09 }) 252 vim.api.nvim_set_hl(0, 'sassInclude', { fg = gui0E, ctermfg = cterm0E }) 253 vim.api.nvim_set_hl(0, 'sassMixing', { fg = gui0E, ctermfg = cterm0E }) 254 vim.api.nvim_set_hl(0, 'sassMixinName', { fg = gui0D, ctermfg = cterm0D }) 255 256 -- Signify highlighting 257 vim.api.nvim_set_hl(0, 'SignifySignAdd', { fg = gui0B, bg = gui01, ctermfg = cterm0B, ctermbg = cterm01 }) 258 vim.api.nvim_set_hl(0, 'SignifySignChange', { fg = gui0D, bg = gui01, ctermfg = cterm0D, ctermbg = cterm01 }) 259 vim.api.nvim_set_hl(0, 'SignifySignDelete', { fg = gui08, bg = gui01, ctermfg = cterm08, ctermbg = cterm01 }) 260 261 -- Spelling highlighting 262 vim.api.nvim_set_hl(0, 'SpellBad', { undercurl = true }) 263 vim.api.nvim_set_hl(0, 'SpellLocal', { undercurl = true }) 264 vim.api.nvim_set_hl(0, 'SpellCap', { undercurl = true }) 265 vim.api.nvim_set_hl(0, 'SpellRare', { undercurl = true }) 266 267 -- Startify highlighting 268 vim.api.nvim_set_hl(0, 'StartifyBracket', { fg = gui03, ctermfg = cterm03 }) 269 vim.api.nvim_set_hl(0, 'StartifyFile', { fg = gui07, ctermfg = cterm07 }) 270 vim.api.nvim_set_hl(0, 'StartifyFooter', { fg = gui03, ctermfg = cterm03 }) 271 vim.api.nvim_set_hl(0, 'StartifyHeader', { fg = gui0B, ctermfg = cterm0B }) 272 vim.api.nvim_set_hl(0, 'StartifyNumber', { fg = gui09, ctermfg = cterm09 }) 273 vim.api.nvim_set_hl(0, 'StartifyPath', { fg = gui03, ctermfg = cterm03 }) 274 vim.api.nvim_set_hl(0, 'StartifySection', { fg = gui0E, ctermfg = cterm0E }) 275 vim.api.nvim_set_hl(0, 'StartifySelect', { fg = gui0C, ctermfg = cterm0C }) 276 vim.api.nvim_set_hl(0, 'StartifySlash', { fg = gui03, ctermfg = cterm03 }) 277 vim.api.nvim_set_hl(0, 'StartifySpecial', { fg = gui03, ctermfg = cterm03 }) 278 279 -- Java highlighting 280 vim.api.nvim_set_hl(0, 'javaOperator', { fg = gui0D, ctermfg = cterm0D }) 281 282 -- vim: filetype=lua 283 -- end color 284 -- 285 286 vim.api.nvim_set_hl(0, 'LineNr', { fg = gui03, bg = gui00 }) 287 vim.api.nvim_set_hl(0, 'SignColumn', { fg = gui03, bg = gui00 }) 288 vim.api.nvim_set_hl(0, 'StatusLine', { fg = gui04, bg = gui01 }) 289 vim.api.nvim_set_hl(0, 'TreesitterContext', { bg = gui01 }) 290 vim.api.nvim_set_hl(0, 'NormalFloat', {}) 291 vim.api.nvim_set_hl(0, 'WinSeparator', {}) 292 vim.api.nvim_set_hl(0, 'FloatBorder', {}) 293 vim.api.nvim_set_hl(0, 'StatusLine', { fg = 'background', bg = 'background' }) 294 vim.api.nvim_set_hl(0, 'Identifier', { fg = gui05, ctermfg = cterm05 }) 295 296 vim.api.nvim_set_hl(0, 'Beacon', { bg = 'fg' }) 297 vim.api.nvim_set_hl(0, 'LspInlayHint', { fg = gui03 }) 298 299 -- cmp 300 vim.api.nvim_set_hl(0, 'CmpItemKindFunction', { fg = gui0E }) 301 vim.api.nvim_set_hl(0, 'CmpItemKindMethod', { link = 'CmpItemKindFunction' }) 302 vim.api.nvim_set_hl(0, 'CmpItemKindClass', { fg = gui0A }) 303 vim.api.nvim_set_hl(0, 'CmpItemKindConstructor', { fg = gui0D }) 304 305 -- leap 306 vim.api.nvim_set_hl(0, 'LeapBackdrop', { link = 'Comment' }) 307 vim.api.nvim_set_hl(0, 'LeapMatch', { fg = '#00ff00' }) 308 vim.api.nvim_set_hl(0, 'LeapLabelPrimary', { fg = '#ffff00' }) 309 vim.api.nvim_set_hl(require('tms.p.leap').ast_ns, 'LeapLabelPrimary', { link = 'LeapMatch' }) 310 vim.api.nvim_set_hl(0, 'LeapLabelSecondary', { fg = '#ff0000' }) 311 312 -- Diff highlighting 313 vim.api.nvim_set_hl(0, 'DiffAdd', { fg = gui0B, bg = gui00 }) 314 vim.api.nvim_set_hl(0, 'DiffChange', { fg = gui03, bg = gui00 }) 315 vim.api.nvim_set_hl(0, 'DiffDelete', { fg = gui08, bg = gui00 }) 316 vim.api.nvim_set_hl(0, 'DiffText', { fg = gui0D, bg = gui00 }) 317 vim.api.nvim_set_hl(0, 'DiffAdded', { fg = gui0B, bg = gui00 }) 318 vim.api.nvim_set_hl(0, 'DiffFile', { fg = gui08, bg = gui00 }) 319 vim.api.nvim_set_hl(0, 'DiffNewFile', { fg = gui0B, bg = gui00 }) 320 vim.api.nvim_set_hl(0, 'DiffLine', { fg = gui0D, bg = gui00 }) 321 vim.api.nvim_set_hl(0, 'DiffRemoved', { fg = gui08, bg = gui00 }) 322 323 -- GitGutter highlighting 324 vim.api.nvim_set_hl(0, 'GitGutterAdd', { fg = gui0B, bg = gui00 }) 325 vim.api.nvim_set_hl(0, 'GitGutterChange', { fg = gui0D, bg = gui00 }) 326 vim.api.nvim_set_hl(0, 'GitGutterDelete', { fg = gui08, bg = gui00 }) 327 vim.api.nvim_set_hl(0, 'GitGutterChangeDelete', { fg = gui0E, bg = gui00 }) 328 329 vim.api.nvim_set_hl(0, 'CodeiumSuggestion', { link = 'Comment' }) 330 331 -- Hide all semantic highlights 332 -- for _, group in ipairs(vim.fn.getcompletion('@lsp', 'highlight')) do 333 -- vim.api.nvim_set_hl(0, group, {}) 334 -- end 335 336 vim.api.nvim_set_hl(0, 'LspReferenceText', { underline = true }) 337 vim.api.nvim_set_hl(0, 'LspReferenceRead', { undercurl = true }) 338 339 -- relink @lsp to @treesitter 340 local links = { 341 ['@lsp.type.namespace'] = '@namespace', 342 ['@lsp.type.type'] = '@type', 343 ['@lsp.type.class'] = '@type', 344 ['@lsp.type.enum'] = '@type', 345 ['@lsp.type.interface'] = '@type', 346 ['@lsp.type.struct'] = '@structure', 347 ['@lsp.type.typeParameter'] = 'TypeDef', 348 ['@lsp.type.parameter'] = '@parameter', 349 ['@lsp.type.variable'] = '@variable', 350 ['@lsp.type.property'] = '@property', 351 ['@lsp.type.enumMember'] = '@constant', 352 ['@lsp.type.function'] = '@function', 353 ['@lsp.type.method'] = '@method', 354 ['@lsp.type.macro'] = '@macro', 355 ['@lsp.type.decorator'] = '@function', 356 ['@lsp.type.keyword'] = '@keyword', 357 } 358 for newgroup, oldgroup in pairs(links) do 359 vim.api.nvim_set_hl(0, newgroup, { link = oldgroup, default = true }) 360 end 361 362 vim.api.nvim_set_hl(0, '@lsp.mod.annotation', { italic = true }) 363 vim.api.nvim_set_hl(0, '@lsp.type.type', { bold = true }) 364 -- vim.api.nvim_set_hl(0, '@variable.builtin', { link = 'Keyword' }) 365 366 for tsgroup, opts in pairs({ 367 ['@annotation'] = { italic = true, default = true }, 368 ['@comment'] = { link = 'Comment' }, 369 ['@none'] = { bg = 'NONE', fg = 'NONE' }, 370 ['@preproc'] = { link = 'PreProc' }, 371 ['@define'] = { link = 'Define' }, 372 ['@operator'] = { link = 'Operator' }, 373 ['@punctuation.delimiter'] = { link = 'Delimiter' }, 374 ['@punctuation.bracket'] = { link = 'Delimiter' }, 375 ['@punctuation.special'] = { link = 'Delimiter' }, 376 ['@string'] = { link = 'String' }, 377 ['@string.regex'] = { link = 'String' }, 378 ['@string.escape'] = { link = 'SpecialChar' }, 379 ['@string.special'] = { link = 'SpecialChar' }, 380 ['@character'] = { link = 'Character' }, 381 ['@character.special'] = { link = 'SpecialChar' }, 382 ['@boolean'] = { link = 'Boolean' }, 383 ['@number'] = { link = 'Number' }, 384 ['@float'] = { link = 'Float' }, 385 ['@function'] = { link = 'Function' }, 386 ['@function.call'] = { link = 'Function' }, 387 ['@function.builtin'] = { link = 'Special' }, 388 ['@function.macro'] = { link = 'Macro' }, 389 ['@method'] = { link = 'Function' }, 390 ['@method.call'] = { link = 'Function' }, 391 ['@constructor'] = { link = 'Special' }, 392 ['@parameter'] = { link = 'Identifier' }, 393 ['@keyword'] = { link = 'Keyword' }, 394 ['@keyword.function'] = { link = 'Keyword' }, 395 ['@keyword.return'] = { link = 'Keyword' }, 396 ['@conditional'] = { link = 'Conditional' }, 397 ['@repeat'] = { link = 'Repeat' }, 398 ['@debug'] = { link = 'Debug' }, 399 ['@label'] = { link = 'Label' }, 400 ['@include'] = { link = 'Include' }, 401 ['@exception'] = { link = 'Exception' }, 402 ['@type'] = { link = 'Type' }, 403 ['@type.builtin'] = { link = 'Type' }, 404 ['@type.qualifier'] = { link = 'Type' }, 405 ['@type.definition'] = { link = 'Typedef' }, 406 ['@storageclass'] = { link = 'StorageClass' }, 407 ['@attribute'] = { link = 'PreProc' }, 408 ['@field'] = { link = 'Identifier' }, 409 ['@property'] = { link = 'Identifier' }, 410 ['@variable.builtin'] = { link = 'Special' }, 411 ['@constant'] = { link = 'Constant' }, 412 ['@constant.builtin'] = { link = 'Special' }, 413 ['@constant.macro'] = { link = 'Define' }, 414 ['@symbol'] = { link = 'Identifier' }, 415 ['@text.title'] = { link = 'Title' }, 416 ['@text.literal'] = { link = 'String' }, 417 ['@text.uri'] = { link = 'Underlined' }, 418 ['@text.math'] = { link = 'Special' }, 419 ['@text.environment'] = { link = 'Macro' }, 420 ['@text.environment.name'] = { link = 'Type' }, 421 ['@text.reference'] = { link = 'Constant' }, 422 ['@text.todo'] = { link = 'Todo' }, 423 ['@text.todo.unchecked'] = { link = 'Todo' }, 424 ['@text.todo.checked'] = { link = 'Done' }, 425 ['@text.note'] = { link = 'SpecialComment' }, 426 ['@text.warning'] = { link = 'WarningMsg' }, 427 ['@text.danger'] = { link = 'ErrorMsg' }, 428 ['@text.diff.add'] = { link = 'diffAdded' }, 429 ['@text.diff.delete'] = { link = 'diffRemoved' }, 430 ['@tag'] = { link = 'Tag' }, 431 ['@tag.attribute'] = { link = 'Identifier' }, 432 ['@tag.delimiter'] = { link = 'Delimiter' }, 433 434 -- nvim-treesitter (0.8 overrides) 435 -- ['@text.strong'] = { bold = true }, 436 -- ['@text.strike'] = { strikethrough = true }, 437 -- ['@text.emphasis'] = { italic = true }, 438 -- ['@text.underline'] = { underline = true }, 439 }) do 440 vim.api.nvim_set_hl(0, tsgroup, opts) 441 end