vim.lua (19291B)
1 -- Name: vim 2 -- Description: Vim's default color scheme 3 -- Author: Bram Moolenaar <Bram@vim.org> 4 -- Maintainer: The Vim Project <https://github.com/vim/vim> 5 -- Website: https://github.com/vim/vim 6 -- License: Same as Vim 7 -- Last Updated: 2023 Aug 10 8 9 -- This is Vim's default color scheme. It doesn't define the Normal 10 -- highlighting, it uses whatever the colors used to be. 11 12 vim.cmd.highlight('clear') 13 vim.g.colors_name = 'vim' 14 15 local hi = function(name, val) 16 -- Force links 17 val.force = true 18 19 -- Make sure that `cterm` attribute is not populated from `gui` 20 val.cterm = val.cterm or {} ---@type vim.api.keyset.highlight 21 22 -- Define global highlight 23 vim.api.nvim_set_hl(0, name, val) 24 end 25 26 --stylua: ignore start 27 -- General 28 hi('Normal', {}) 29 30 hi('Conceal', { fg = 'LightGrey', bg = 'DarkGrey', ctermfg = 'LightGrey', ctermbg = 'DarkGrey' }) 31 hi('Cursor', {}) 32 hi('lCursor', {}) 33 hi('DiffText', { bg = 'Red', bold = true, ctermbg = 'Red', cterm = { bold = true } }) 34 hi('ErrorMsg', { fg = 'White', bg = 'Red', ctermfg = 'White', ctermbg = 'DarkRed' }) 35 hi('IncSearch', { reverse = true, cterm = { reverse = true } }) 36 hi('ModeMsg', { bold = true, cterm = { bold = true } }) 37 hi('NonText', { fg = 'Blue', bold = true, ctermfg = 'Blue' }) 38 hi('PmenuSbar', { bg = 'Grey', ctermbg = 'Grey' }) 39 hi('StatusLine', { reverse = true, bold = true, cterm = { reverse = true, bold = true }}) 40 hi('StatusLineNC', { reverse = true, cterm = { reverse = true } }) 41 hi('TabLineFill', { reverse = true, cterm = { reverse = true } }) 42 hi('TabLineSel', { bold = true, cterm = { bold = true } }) 43 hi('TermCursor', { reverse = true, cterm = { reverse = true } }) 44 hi('WinBar', { bold = true, cterm = { bold = true } }) 45 hi('WildMenu', { fg = 'Black', bg = 'Yellow', ctermfg = 'Black', ctermbg = 'Yellow' }) 46 47 hi('VertSplit', { link = 'Normal' }) 48 hi('WinSeparator', { link = 'VertSplit' }) 49 hi('WinBarNC', { link = 'WinBar' }) 50 hi('DiffTextAdd', { link = 'DiffText' }) 51 hi('EndOfBuffer', { link = 'NonText' }) 52 hi('LineNrAbove', { link = 'LineNr' }) 53 hi('LineNrBelow', { link = 'LineNr' }) 54 hi('QuickFixLine', { link = 'Search' }) 55 hi('CursorLineSign', { link = 'SignColumn' }) 56 hi('CursorLineFold', { link = 'FoldColumn' }) 57 hi('CurSearch', { link = 'Search' }) 58 hi('PmenuKind', { link = 'Pmenu' }) 59 hi('PmenuKindSel', { link = 'PmenuSel' }) 60 hi('PmenuMatch', { link = 'Pmenu' }) 61 hi('PmenuMatchSel', { link = 'PmenuSel' }) 62 hi('PmenuExtra', { link = 'Pmenu' }) 63 hi('PmenuExtraSel', { link = 'PmenuSel' }) 64 hi('PreInsert', { link = 'Added' }) 65 hi('ComplMatchIns', {}) 66 hi('ComplHint', { link = 'NonText' }) 67 hi('ComplHintMore', { link = 'MoreMsg' }) 68 hi('Substitute', { link = 'Search' }) 69 hi('Whitespace', { link = 'NonText' }) 70 hi('MsgSeparator', { link = 'StatusLine' }) 71 hi('NormalFloat', { link = 'Pmenu' }) 72 hi('FloatBorder', { link = 'WinSeparator' }) 73 hi('FloatTitle', { link = 'Title' }) 74 hi('FloatFooter', { link = 'Title' }) 75 76 hi('FloatShadow', { bg = 'Black', blend = 80 }) 77 hi('FloatShadowThrough', { bg = 'Black', blend = 100 }) 78 hi('RedrawDebugNormal', { reverse = true, cterm = { reverse = true } }) 79 hi('RedrawDebugClear', { bg = 'Yellow', ctermbg = 'Yellow' }) 80 hi('RedrawDebugComposed', { bg = 'Green', ctermbg = 'Green' }) 81 hi('RedrawDebugRecompose', { bg = 'Red', ctermbg = 'Red' }) 82 hi('Error', { fg = 'White', bg = 'Red', ctermfg = 'White', ctermbg = 'Red' }) 83 hi('Todo', { fg = 'Blue', bg = 'Yellow', ctermfg = 'Black', ctermbg = 'Yellow' }) 84 85 hi('String', { link = 'Constant' }) 86 hi('Character', { link = 'Constant' }) 87 hi('Number', { link = 'Constant' }) 88 hi('Boolean', { link = 'Constant' }) 89 hi('Float', { link = 'Number' }) 90 hi('Function', { link = 'Identifier' }) 91 hi('Conditional', { link = 'Statement' }) 92 hi('Repeat', { link = 'Statement' }) 93 hi('Label', { link = 'Statement' }) 94 hi('Operator', { link = 'Statement' }) 95 hi('Keyword', { link = 'Statement' }) 96 hi('Exception', { link = 'Statement' }) 97 hi('Include', { link = 'PreProc' }) 98 hi('Define', { link = 'PreProc' }) 99 hi('Macro', { link = 'PreProc' }) 100 hi('PreCondit', { link = 'PreProc' }) 101 hi('StorageClass', { link = 'Type' }) 102 hi('Structure', { link = 'Type' }) 103 hi('Typedef', { link = 'Type' }) 104 hi('Tag', { link = 'Special' }) 105 hi('SpecialChar', { link = 'Special' }) 106 hi('Delimiter', { link = 'Special' }) 107 hi('SpecialComment', { link = 'Special' }) 108 hi('Debug', { link = 'Special' }) 109 110 hi('DiagnosticError', { fg = 'Red', ctermfg = 1 }) 111 hi('DiagnosticWarn', { fg = 'Orange', ctermfg = 3 }) 112 hi('DiagnosticInfo', { fg = 'LightBlue', ctermfg = 4 }) 113 hi('DiagnosticHint', { fg = 'LightGrey', ctermfg = 7 }) 114 hi('DiagnosticOk', { fg = 'LightGreen', ctermfg = 10 }) 115 hi('DiagnosticUnderlineError', { sp = 'Red', underline = true, cterm = { underline = true } }) 116 hi('DiagnosticUnderlineWarn', { sp = 'Orange', underline = true, cterm = { underline = true } }) 117 hi('DiagnosticUnderlineInfo', { sp = 'LightBlue', underline = true, cterm = { underline = true } }) 118 hi('DiagnosticUnderlineHint', { sp = 'LightGrey', underline = true, cterm = { underline = true } }) 119 hi('DiagnosticUnderlineOk', { sp = 'LightGreen', underline = true, cterm = { underline = true } }) 120 hi('DiagnosticVirtualTextError', { link = 'DiagnosticError' }) 121 hi('DiagnosticVirtualTextWarn', { link = 'DiagnosticWarn' }) 122 hi('DiagnosticVirtualTextInfo', { link = 'DiagnosticInfo' }) 123 hi('DiagnosticVirtualTextHint', { link = 'DiagnosticHint' }) 124 hi('DiagnosticVirtualTextOk', { link = 'DiagnosticOk' }) 125 hi('DiagnosticFloatingError', { link = 'DiagnosticError' }) 126 hi('DiagnosticFloatingWarn', { link = 'DiagnosticWarn' }) 127 hi('DiagnosticFloatingInfo', { link = 'DiagnosticInfo' }) 128 hi('DiagnosticFloatingHint', { link = 'DiagnosticHint' }) 129 hi('DiagnosticFloatingOk', { link = 'DiagnosticOk' }) 130 hi('DiagnosticSignError', { link = 'DiagnosticError' }) 131 hi('DiagnosticSignWarn', { link = 'DiagnosticWarn' }) 132 hi('DiagnosticSignInfo', { link = 'DiagnosticInfo' }) 133 hi('DiagnosticSignHint', { link = 'DiagnosticHint' }) 134 hi('DiagnosticSignOk', { link = 'DiagnosticOk' }) 135 hi('DiagnosticDeprecated', { sp = 'Red', strikethrough = true, cterm = { strikethrough = true } }) 136 137 hi('DiagnosticUnnecessary', { link = 'Comment' }) 138 hi('LspInlayHint', { link = 'NonText' }) 139 hi('SnippetTabstop', { link = 'Visual' }) 140 hi('SnippetTabstopActive', { link = 'SnippetTabstop' }) 141 142 -- Text 143 hi('@markup.raw', { link = 'Comment' }) 144 hi('@markup.link', { link = 'Identifier' }) 145 hi('@markup.heading', { link = 'Title' }) 146 hi('@markup.link.url', { link = 'Underlined' }) 147 hi('@markup.underline', { link = 'Underlined' }) 148 hi('@comment.todo', { link = 'Todo' }) 149 150 -- Miscs 151 hi('@comment', { link = 'Comment' }) 152 hi('@punctuation', { link = 'Delimiter' }) 153 154 -- Constants 155 hi('@constant', { link = 'Constant' }) 156 hi('@constant.builtin', { link = 'Special' }) 157 hi('@constant.macro', { link = 'Define' }) 158 hi('@keyword.directive', { link = 'Define' }) 159 hi('@string', { link = 'String' }) 160 hi('@string.escape', { link = 'SpecialChar' }) 161 hi('@string.special', { link = 'SpecialChar' }) 162 hi('@character', { link = 'Character' }) 163 hi('@character.special', { link = 'SpecialChar' }) 164 hi('@number', { link = 'Number' }) 165 hi('@boolean', { link = 'Boolean' }) 166 hi('@number.float', { link = 'Float' }) 167 168 -- Functions 169 hi('@function', { link = 'Function' }) 170 hi('@function.builtin', { link = 'Special' }) 171 hi('@function.macro', { link = 'Macro' }) 172 hi('@function.method', { link = 'Function' }) 173 hi('@variable.parameter', { link = 'Identifier' }) 174 hi('@variable.parameter.builtin', { link = 'Special' }) 175 hi('@variable.member', { link = 'Identifier' }) 176 hi('@property', { link = 'Identifier' }) 177 hi('@attribute', { link = 'Macro' }) 178 hi('@attribute.builtin', { link = 'Special' }) 179 hi('@constructor', { link = 'Special' }) 180 181 -- Keywords 182 hi('@keyword.conditional', { link = 'Conditional' }) 183 hi('@keyword.repeat', { link = 'Repeat' }) 184 hi('@keyword.type', { link = 'Structure' }) 185 hi('@label', { link = 'Label' }) 186 hi('@operator', { link = 'Operator' }) 187 hi('@keyword', { link = 'Keyword' }) 188 hi('@keyword.exception', { link = 'Exception' }) 189 190 hi('@variable', { link = 'Identifier' }) 191 hi('@type', { link = 'Type' }) 192 hi('@type.definition', { link = 'Typedef' }) 193 hi('@module', { link = 'Identifier' }) 194 hi('@keyword.import', { link = 'Include' }) 195 hi('@keyword.directive', { link = 'PreProc' }) 196 hi('@keyword.debug', { link = 'Debug' }) 197 hi('@tag', { link = 'Tag' }) 198 hi('@tag.builtin', { link = 'Special' }) 199 200 -- LSP semantic tokens 201 hi('@lsp.type.class', { link = 'Structure' }) 202 hi('@lsp.type.comment', { link = 'Comment' }) 203 hi('@lsp.type.decorator', { link = 'Function' }) 204 hi('@lsp.type.enum', { link = 'Structure' }) 205 hi('@lsp.type.enumMember', { link = 'Constant' }) 206 hi('@lsp.type.function', { link = 'Function' }) 207 hi('@lsp.type.interface', { link = 'Structure' }) 208 hi('@lsp.type.macro', { link = 'Macro' }) 209 hi('@lsp.type.method', { link = 'Function' }) 210 hi('@lsp.type.namespace', { link = 'Structure' }) 211 hi('@lsp.type.parameter', { link = 'Identifier' }) 212 hi('@lsp.type.property', { link = 'Identifier' }) 213 hi('@lsp.type.struct', { link = 'Structure' }) 214 hi('@lsp.type.type', { link = 'Type' }) 215 hi('@lsp.type.typeParameter', { link = 'TypeDef' }) 216 hi('@lsp.type.variable', { link = 'Identifier' }) 217 218 if vim.o.background == 'light' then 219 -- Default colors only used with a light background. 220 hi('ColorColumn', { bg = 'LightRed', ctermbg = 'LightRed' }) 221 hi('CursorColumn', { bg = 'Grey90', ctermbg = 'LightGrey' }) 222 hi('CursorLine', { bg = 'Grey90', cterm = { underline = true } }) 223 hi('CursorLineNr', { fg = 'Brown', bold = true, ctermfg = 'Brown', cterm = { underline = true } }) 224 hi('DiffAdd', { bg = 'LightBlue', ctermbg = 'LightBlue' }) 225 hi('DiffChange', { bg = 'LightMagenta', ctermbg = 'LightMagenta' }) 226 hi('DiffDelete', { fg = 'Blue', bg = 'LightCyan', bold = true, ctermfg = 'Blue', ctermbg = 'LightCyan' }) 227 hi('Directory', { fg = 'Blue', ctermfg = 'DarkBlue' }) 228 hi('FoldColumn', { fg = 'DarkBlue', bg = 'Grey', ctermfg = 'DarkBlue', ctermbg = 'Grey' }) 229 hi('Folded', { fg = 'DarkBlue', bg = 'LightGrey', ctermfg = 'DarkBlue', ctermbg = 'Grey' }) 230 hi('LineNr', { fg = 'Brown', ctermfg = 'Brown' }) 231 hi('MatchParen', { bg = 'Cyan', ctermbg = 'Cyan' }) 232 hi('MoreMsg', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' }) 233 hi('Pmenu', { bg = 'LightMagenta', ctermfg = 'Black', ctermbg = 'LightMagenta' }) 234 hi('PmenuSel', { bg = 'Grey', ctermfg = 'Black', ctermbg = 'LightGrey' }) 235 hi('PmenuThumb', { bg = 'Black', ctermbg = 'Black' }) 236 hi('Question', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' }) 237 hi('Search', { bg = 'Yellow', ctermbg = 'Yellow' }) 238 hi('SignColumn', { fg = 'DarkBlue', bg = 'Grey', ctermfg = 'DarkBlue', ctermbg = 'Grey' }) 239 hi('SpecialKey', { fg = 'Blue', ctermfg = 'DarkBlue' }) 240 hi('SpellBad', { sp = 'Red', undercurl = true, ctermbg = 'LightRed' }) 241 hi('SpellCap', { sp = 'Blue', undercurl = true, ctermbg = 'LightBlue' }) 242 hi('SpellLocal', { sp = 'DarkCyan', undercurl = true, ctermbg = 'Cyan' }) 243 hi('SpellRare', { sp = 'Magenta', undercurl = true, ctermbg = 'LightMagenta' }) 244 hi('StatusLineTerm', { fg = 'White', bg = 'DarkGreen', bold = true, ctermfg = 'White', ctermbg = 'DarkGreen', cterm = { bold = true } }) 245 hi('StatusLineTermNC', { fg = 'White', bg = 'DarkGreen', ctermfg = 'White', ctermbg = 'DarkGreen' }) 246 hi('TabLine', { bg = 'LightGrey', underline = true, ctermfg = 'Black', ctermbg = 'LightGrey', cterm = { underline = true } }) 247 hi('Title', { fg = 'Magenta', bold = true, ctermfg = 'DarkMagenta' }) 248 hi('Visual', { fg = 'Black', bg = 'LightGrey', ctermfg = 'Black', ctermbg = 'Grey' }) 249 hi('WarningMsg', { fg = 'Red', ctermfg = 'DarkRed' }) 250 hi('Comment', { fg = 'Blue', ctermfg = 'DarkBlue' }) 251 hi('Constant', { fg = 'Magenta', ctermfg = 'DarkRed' }) 252 hi('Special', { fg = '#6a5acd', ctermfg = 'DarkMagenta' }) 253 hi('Identifier', { fg = 'DarkCyan', ctermfg = 'DarkCyan' }) 254 hi('Statement', { fg = 'Brown', bold = true, ctermfg = 'Brown' }) 255 hi('PreProc', { fg = '#6a0dad', ctermfg = 'DarkMagenta' }) 256 hi('Type', { fg = 'SeaGreen', bold = true, ctermfg = 'DarkGreen' }) 257 hi('Underlined', { fg = 'SlateBlue', underline = true, ctermfg = 'DarkMagenta', cterm = { underline = true } }) 258 hi('Ignore', { ctermfg = 'White' }) 259 hi('Added', { fg = 'SeaGreen', ctermfg = 'DarkGreen' }) 260 hi('Changed', { fg = 'DodgerBlue', ctermfg = 'Blue' }) 261 hi('Removed', { fg = 'Red', ctermfg = 'Red' }) 262 else 263 -- Default colors only used with a dark background. 264 hi('ColorColumn', { bg = 'DarkRed', ctermbg = 'DarkRed' }) 265 hi('CursorColumn', { bg = 'Grey40', ctermbg = 'DarkGrey' }) 266 hi('CursorLine', { bg = 'Grey40', cterm = { underline = true } }) 267 hi('CursorLineNr', { fg = 'Yellow', bold = true, ctermfg = 'Yellow', cterm = { underline = true } }) 268 hi('DiffAdd', { bg = 'DarkBlue', ctermbg = 'DarkBlue' }) 269 hi('DiffChange', { bg = 'DarkMagenta', ctermbg = 'DarkMagenta' }) 270 hi('DiffDelete', { fg = 'Blue', bg = 'DarkCyan', bold = true, ctermfg = 'Blue', ctermbg = 'DarkCyan' }) 271 hi('Directory', { fg = 'Cyan', ctermfg = 'LightCyan' }) 272 hi('FoldColumn', { fg = 'Cyan', bg = 'Grey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' }) 273 hi('Folded', { fg = 'Cyan', bg = 'DarkGrey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' }) 274 hi('LineNr', { fg = 'Yellow', ctermfg = 'Yellow' }) 275 hi('MatchParen', { bg = 'DarkCyan', ctermbg = 'DarkCyan' }) 276 hi('MoreMsg', { fg = 'SeaGreen', bold = true, ctermfg = 'LightGreen' }) 277 hi('Pmenu', { bg = 'Magenta', ctermfg = 'Black', ctermbg = 'Magenta' }) 278 hi('PmenuSel', { bg = 'DarkGrey', ctermfg = 'DarkGrey', ctermbg = 'Black' }) 279 hi('PmenuThumb', { bg = 'White', ctermbg = 'White' }) 280 hi('Question', { fg = 'Green', bold = true, ctermfg = 'LightGreen' }) 281 hi('Search', { fg = 'Black', bg = 'Yellow', ctermfg = 'Black', ctermbg = 'Yellow' }) 282 hi('SignColumn', { fg = 'Cyan', bg = 'Grey', ctermfg = 'Cyan', ctermbg = 'DarkGrey' }) 283 hi('SpecialKey', { fg = 'Cyan', ctermfg = 'LightBlue' }) 284 hi('SpellBad', { sp = 'Red', undercurl = true, ctermbg = 'Red' }) 285 hi('SpellCap', { sp = 'Blue', undercurl = true, ctermbg = 'Blue' }) 286 hi('SpellLocal', { sp = 'Cyan', undercurl = true, ctermbg = 'Cyan' }) 287 hi('SpellRare', { sp = 'Magenta', undercurl = true, ctermbg = 'Magenta' }) 288 hi('StatusLineTerm', { fg = 'Black', bg = 'LightGreen', bold = true, ctermfg = 'Black', ctermbg = 'LightGreen', cterm = { bold = true } }) 289 hi('StatusLineTermNC', { fg = 'Black', bg = 'LightGreen', ctermfg = 'Black', ctermbg = 'LightGreen' }) 290 hi('TabLine', { bg = 'DarkGrey', underline = true, ctermfg = 'White', ctermbg = 'DarkGrey', cterm = { underline = true } }) 291 hi('Title', { fg = 'Magenta', bold = true, ctermfg = 'LightMagenta' }) 292 hi('Visual', { fg = 'LightGrey', bg = '#575757', ctermfg = 'Black', ctermbg = 'Grey' }) 293 hi('WarningMsg', { fg = 'Red', ctermfg = 'LightRed' }) 294 hi('Comment', { fg = '#80a0ff', ctermfg = 'Cyan' }) 295 hi('Constant', { fg = '#ffa0a0', ctermfg = 'Magenta' }) 296 hi('Special', { fg = 'Orange', ctermfg = 'LightRed' }) 297 hi('Identifier', { fg = '#40ffff', ctermfg = 'Cyan', cterm = { bold = true } }) 298 hi('Statement', { fg = '#ffff60', bold = true, ctermfg = 'Yellow' }) 299 hi('PreProc', { fg = '#ff80ff', ctermfg = 'LightBlue' }) 300 hi('Type', { fg = '#60ff60', bold = true, ctermfg = 'LightGreen' }) 301 hi('Underlined', { fg = '#80a0ff', underline = true, ctermfg = 'LightBlue', cterm = { underline = true } }) 302 hi('Ignore', { ctermfg = 'Black' }) 303 hi('Added', { fg = 'LimeGreen', ctermfg = 'Green' }) 304 hi('Changed', { fg = 'DodgerBlue', ctermfg = 'Blue' }) 305 hi('Removed', { fg = 'Red', ctermfg = 'Red' }) 306 end 307 --stylua: ignore end