my nix dotfiles

nvim: wip lua colorscheme

+764 -1
+446
nvim/colors/grey.lua
··· 1 + local o = vim.o 2 + local g = vim.g 3 + local api = vim.api 4 + 5 + vim.cmd('hi clear') 6 + 7 + if g.syntax_on == 1 then 8 + vim.cmd('syntax reset') 9 + end 10 + 11 + o.background = 'light' 12 + g.colors_name = 'grey' 13 + 14 + local background = '#f4f4f4' 15 + local grey_bg_light = '#E5E5E5' 16 + local black = '#222222' 17 + local blue = '#008EC4' 18 + local green = '#10A778' 19 + local light_green = '#5FD7A7' 20 + local light_red = '#E32791' 21 + local red = '#C30771' 22 + local grey = '#767676' 23 + local light_grey = '#CCCCCC' 24 + local border = '#999999' 25 + local highlight = '#424242' 26 + local dark_yellow = '#A89C14' 27 + local yellow = '#F3E430' 28 + local light_yellow = '#F1F1F1' 29 + local orange = '#D75F5F' 30 + local purple = '#523C79' 31 + local white = '#FFFFFF' 32 + local cyan = '#20A5BA' 33 + 34 + g.terminal_color_0 = black 35 + g.terminal_color_1 = red 36 + g.terminal_color_2 = green 37 + g.terminal_color_3 = dark_yellow 38 + g.terminal_color_4 = blue 39 + g.terminal_color_5 = purple 40 + g.terminal_color_6 = cyan 41 + g.terminal_color_7 = grey 42 + 43 + g.terminal_color_8 = black 44 + g.terminal_color_9 = red 45 + g.terminal_color_10 = green 46 + g.terminal_color_11 = dark_yellow 47 + g.terminal_color_12 = blue 48 + g.terminal_color_13 = purple 49 + g.terminal_color_14 = cyan 50 + g.terminal_color_15 = grey 51 + 52 + local highlights = { 53 + -- This highlight group can be used when one wants to disable a highlight 54 + -- group using `winhl` 55 + Disabled = {}, 56 + -- These highlight groups can be used for statuslines, for example when 57 + -- displaying ALE warnings and errors. 58 + BlackOnLightYellow = { fg = black, bg = light_yellow }, 59 + LightRedBackground = { bg = light_red }, 60 + WhiteOnBlue = { fg = white, bg = blue }, 61 + WhiteOnOrange = { fg = white, bg = orange }, 62 + WhiteOnRed = { fg = white, bg = red }, 63 + WhiteOnYellow = { fg = white, bg = dark_yellow }, 64 + Yellow = { fg = dark_yellow, bold = true }, 65 + Bold = { fg = black, bold = true }, 66 + Boolean = { link = 'Keyword' }, 67 + Character = { link = 'String' }, 68 + ColorColumn = { bg = highlight }, 69 + Comment = { fg = grey }, 70 + Conceal = {}, 71 + Constant = { fg = black }, 72 + Cursor = { bg = black }, 73 + -- This is to work around https://github.com/neovim/neovim/issues/9800. 74 + CursorLine = { ctermfg = 'black' }, 75 + CursorLineNr = { fg = black, bold = true }, 76 + Directory = { fg = purple }, 77 + EndOfBuffer = { fg = background, bg = background }, 78 + Error = { link = 'ErrorMsg' }, 79 + ErrorMsg = { fg = red, bold = true }, 80 + FoldColumn = { fg = light_grey, bg = background }, 81 + Folded = { link = 'Comment' }, 82 + Identifier = { fg = black }, 83 + Function = { fg = black }, 84 + IncSearch = { link = 'Search' }, 85 + CurSearch = { link = 'Search' }, 86 + Include = { fg = black, bold = true }, 87 + InstanceVariable = { fg = purple }, 88 + Keyword = { fg = black, bold = true }, 89 + Label = { link = 'Keyword' }, 90 + LineNr = { fg = grey }, 91 + Macro = { fg = orange }, 92 + MatchParen = { bold = true }, 93 + MoreMsg = { fg = black }, 94 + ModeMsg = { fg = black, bold = true }, 95 + MsgSeparator = { fg = border }, 96 + NonText = { fg = grey }, 97 + Normal = { fg = black, bg = background }, 98 + NormalFloat = { fg = black }, 99 + FloatTitle = { fg = black, bold = true }, 100 + FloatBorder = { fg = border }, 101 + Number = { fg = blue }, 102 + Operator = { fg = black }, 103 + Pmenu = { fg = black, bg = grey_bg_light }, 104 + PmenuSbar = { bg = grey_bg_light }, 105 + PmenuSel = { bg = light_grey, bold = true }, 106 + PmenuThumb = { bg = light_grey }, 107 + PreCondit = { link = 'Macro' }, 108 + PreProc = { fg = black }, 109 + Question = { fg = black }, 110 + QuickFixLine = { bg = highlight, bold = true }, 111 + Regexp = { fg = orange }, 112 + Search = { bg = light_yellow }, 113 + SignColumn = { link = 'FoldColumn' }, 114 + Special = { fg = black }, 115 + SpecialKey = { link = 'Number' }, 116 + SpellBad = { sp = red, underline = true }, 117 + SpellCap = { sp = dark_yellow, underline = true }, 118 + SpellLocal = { sp = blue, underline = true }, 119 + SpellRare = { sp = purple, underline = true }, 120 + Statement = { link = 'Keyword' }, 121 + StatusLine = { fg = black, bg = background }, 122 + StatusLineNC = { fg = black, bg = grey_bg_light }, 123 + StatusLineTab = { fg = black, bg = background, bold = true }, 124 + WinBar = { fg = black, bold = true }, 125 + WinBarNc = { fg = black, bold = true }, 126 + WinBarFill = { fg = border }, 127 + StorageClass = { link = 'Keyword' }, 128 + String = { fg = green }, 129 + SnippetTabstop = {}, 130 + Symbol = { fg = orange }, 131 + TabLine = { fg = black, bg = light_grey }, 132 + TabLineFill = { fg = black, bg = light_grey }, 133 + TabLineSel = { fg = black, bg = background, bold = true }, 134 + Title = { fg = black, bold = true }, 135 + Todo = { fg = grey, bold = true }, 136 + Type = { link = 'Constant' }, 137 + Underlined = { underline = true }, 138 + VertSplit = { fg = border }, 139 + WinSeparator = { fg = border }, 140 + Visual = { bg = light_grey }, 141 + WarningMsg = { fg = dark_yellow, bold = true }, 142 + Whitespace = { fg = border }, 143 + WildMenu = { link = 'PmenuSel' }, 144 + -- ALE 145 + ALEError = { fg = red, bold = true }, 146 + ALEErrorSign = { fg = red, bold = true }, 147 + ALEWarning = { fg = dark_yellow, bold = true }, 148 + ALEWarningSign = { fg = dark_yellow, bold = true }, 149 + -- ccc.nvim 150 + CccFloatNormal = { link = 'NormalFloat' }, 151 + CccFloatBorder = { link = 'FloatBorder' }, 152 + -- CSS 153 + cssClassName = { link = 'Keyword' }, 154 + cssColor = { link = 'Number' }, 155 + cssIdentifier = { link = 'Keyword' }, 156 + cssImportant = { link = 'Keyword' }, 157 + cssProp = { link = 'Identifier' }, 158 + cssTagName = { link = 'Keyword' }, 159 + -- Diffs 160 + DiffAdd = { bg = light_green }, 161 + DiffChange = { bg = highlight }, 162 + DiffDelete = { fg = red }, 163 + DiffText = { bg = light_yellow }, 164 + diffAdded = { link = 'DiffAdd' }, 165 + diffChanged = { link = 'DiffChange' }, 166 + diffFile = { fg = black, bold = true }, 167 + diffLine = { fg = blue }, 168 + diffRemoved = { link = 'DiffDelete' }, 169 + -- Dot/Graphviz 170 + dotKeyChar = { link = 'Operator' }, 171 + -- diffview.nvim 172 + DiffviewCursorLine = { bg = highlight }, 173 + DiffviewDiffAddAsDelete = { bg = light_red }, 174 + DiffviewDiffDelete = { fg = light_grey }, 175 + DiffviewDiffDeleteDim = { fg = light_grey }, 176 + DiffviewFilePanelFileName = { fg = black }, 177 + DiffviewFilePanelPath = { fg = purple }, 178 + DiffviewFilePanelRootPath = { fg = purple }, 179 + DiffviewFilePanelTitle = { fg = black, bold = true }, 180 + DiffviewFilePanelInsertions = { fg = green }, 181 + DiffviewFilePanelDeletions = { fg = red }, 182 + DiffviewStatusModified = { fg = dark_yellow, bold = true }, 183 + DiffviewStatusAdded = { fg = green, bold = true }, 184 + DiffviewStatusCopied = { fg = green, bold = true }, 185 + DiffviewStatusDeleted = { fg = red, bold = true }, 186 + -- Flash 187 + FlashBackdrop = { link = 'None' }, 188 + FlashLabel = { fg = red, bold = true }, 189 + -- Fugitive 190 + FugitiveblameHash = { fg = purple }, 191 + FugitiveblameTime = { fg = blue }, 192 + gitCommitOverflow = { link = 'ErrorMsg' }, 193 + gitCommitSummary = { link = 'String' }, 194 + -- gitcommit 195 + ['@string.special.url.gitcommit'] = { fg = black }, 196 + ['@markup.link.gitcommit'] = { fg = green, bold = true }, 197 + ['@comment.warning.gitcommit'] = { fg = red, bold = true }, 198 + -- Gitsigns 199 + GitSignsAdd = { fg = green }, 200 + GitSignsDelete = { fg = red }, 201 + GitSignsChange = { fg = grey }, 202 + -- HAML 203 + hamlClass = { fg = black }, 204 + hamlDocType = { link = 'Comment' }, 205 + hamlId = { fg = black }, 206 + hamlTag = { fg = black, bold = true }, 207 + -- hop.nvim 208 + HopNextKey = { fg = red, bold = true }, 209 + HopNextKey1 = { fg = dark_yellow }, 210 + HopNextKey2 = { fg = dark_yellow }, 211 + HopUnmatched = {}, 212 + -- HTML 213 + htmlArg = { link = 'Identifier' }, 214 + htmlLink = { link = 'Directory' }, 215 + htmlScriptTag = { link = 'htmlTag' }, 216 + htmlSpecialTagName = { link = 'htmlTag' }, 217 + htmlTag = { fg = black, bold = true }, 218 + htmlTagName = { link = 'htmlTag' }, 219 + htmlItalic = { italic = true }, 220 + htmlBold = { bold = true }, 221 + -- Inko 222 + inkoCommentBold = { fg = grey, bold = true }, 223 + inkoCommentInlineUrl = { link = 'Number' }, 224 + inkoCommentItalic = { fg = grey, italic = true }, 225 + inkoCommentTitle = { fg = grey, bold = true }, 226 + inkoInstanceVariable = { link = 'InstanceVariable' }, 227 + inkoKeywordArgument = { link = 'Regexp' }, 228 + ['@variable.member.inko'] = { link = 'InstanceVariable' }, 229 + ['@constant.builtin.inko'] = { link = 'Keyword' }, 230 + -- Java 231 + javaAnnotation = { link = 'Directory' }, 232 + javaCommentTitle = { link = 'javaComment' }, 233 + javaDocParam = { link = 'Todo' }, 234 + javaDocTags = { link = 'Todo' }, 235 + javaExternal = { link = 'Keyword' }, 236 + javaStorageClass = { link = 'Keyword' }, 237 + -- Javascript 238 + JavaScriptNumber = { link = 'Number' }, 239 + javaScriptBraces = { link = 'Operator' }, 240 + javaScriptFunction = { link = 'Keyword' }, 241 + javaScriptIdentifier = { link = 'Keyword' }, 242 + javaScriptMember = { link = 'Identifier' }, 243 + -- JSON 244 + jsonKeyword = { link = 'String' }, 245 + -- Lua 246 + luaFunction = { link = 'Keyword' }, 247 + -- LSP 248 + DiagnosticUnderlineError = { underline = true, sp = red }, 249 + DiagnosticUnderlineWarn = { underline = true, sp = dark_yellow }, 250 + LspDiagnosticsUnderlineError = { link = 'DiagnosticUnderlineError' }, 251 + LspDiagnosticsUnderlineWarning = { link = 'DiagnosticUnderlineWarn' }, 252 + DiagnosticFloatingError = { fg = red, bold = true }, 253 + DiagnosticFloatingHint = { fg = black, bold = true }, 254 + DiagnosticFloatingInfo = { fg = blue, bold = true }, 255 + DiagnosticFloatingWarn = { fg = dark_yellow, bold = true }, 256 + DiagnosticError = { fg = red, bold = true }, 257 + DiagnosticHint = { fg = grey, bold = true }, 258 + DiagnosticInfo = { fg = blue, bold = true }, 259 + DiagnosticWarn = { fg = dark_yellow, bold = true }, 260 + -- Make 261 + makeTarget = { link = 'Function' }, 262 + -- Markdown 263 + markdownCode = { link = 'markdownCodeBlock' }, 264 + markdownCodeBlock = { link = 'Comment' }, 265 + markdownListMarker = { link = 'Keyword' }, 266 + markdownOrderedListMarker = { link = 'Keyword' }, 267 + markdownUrl = { fg = blue }, 268 + -- mini.pick 269 + MiniPickBorder = { fg = border }, 270 + MiniPickBorderBusy = { link = 'MiniPickBorder' }, 271 + MiniPickBorderText = { fg = black }, 272 + MiniPickHeader = { fg = black, bold = true }, 273 + MiniPickMatchCurrent = { bg = light_grey, bold = true }, 274 + MiniPickMatchRanges = { fg = dark_yellow, bold = true }, 275 + MiniPickNormal = { fg = black }, 276 + MiniPickPrompt = { fg = black, bold = true }, 277 + -- netrw 278 + netrwClassify = { link = 'Identifier' }, 279 + -- Neogit 280 + NeogitBranch = { fg = green, bold = true }, 281 + NeogitBranchHead = { link = 'NeogitBranch' }, 282 + NeogitCommitViewHeader = { fg = dark_yellow, bold = true }, 283 + NeogitCursorLine = { bg = highlight }, 284 + NeogitDiffAdd = { link = 'DiffAdd' }, 285 + NeogitDiffAddHighlight = { link = 'NeogitDiffAdd' }, 286 + NeogitDiffContext = { link = 'Normal' }, 287 + NeogitDiffContextHighlight = { link = 'Normal' }, 288 + NeogitDiffDelete = { link = 'DiffDelete' }, 289 + NeogitDiffDeleteHighlight = { link = 'NeogitDiffDelete' }, 290 + NeogitDiffHeader = { fg = black, bold = true }, 291 + NeogitDiffHeaderHighlight = { link = 'NeogitDiffHeader' }, 292 + NeogitFilePath = { fg = purple }, 293 + NeogitGraphBlue = { fg = blue }, 294 + NeogitGraphBoldBlue = { fg = blue, bold = true }, 295 + NeogitGraphBoldCyan = { fg = cyan, bold = true }, 296 + NeogitGraphBoldGray = { fg = grey, bold = true }, 297 + NeogitGraphBoldGreen = { fg = green, bold = true }, 298 + NeogitGraphBoldOrange = { fg = orange, bold = true }, 299 + NeogitGraphBoldPurple = { fg = purple, bold = true }, 300 + NeogitGraphBoldRed = { fg = red, bold = true }, 301 + NeogitGraphBoldWhite = { fg = black, bold = true }, 302 + NeogitGraphBoldYellow = { fg = dark_yellow, bold = true }, 303 + NeogitGraphCyan = { fg = cyan }, 304 + NeogitGraphGray = { fg = grey }, 305 + NeogitGraphGreen = { fg = green }, 306 + NeogitGraphOrange = { fg = orange }, 307 + NeogitGraphPurple = { fg = purple }, 308 + NeogitGraphRed = { fg = red }, 309 + NeogitGraphWhite = { fg = black }, 310 + NeogitGraphYellow = { fg = dark_yellow }, 311 + NeogitHunkHeader = { fg = blue }, 312 + NeogitHunkHeaderHighlight = { link = 'NeogitHunkHeader' }, 313 + NeogitPopupActionKey = { link = 'NeogitPopupOptionKey' }, 314 + NeogitPopupBranchName = { link = 'NeogitBranch' }, 315 + NeogitPopupConfigEnabled = { link = 'NeogitPopupOptionEnabled' }, 316 + NeogitPopupConfigKey = { link = 'NeogitPopupOptionKey' }, 317 + NeogitPopupOptionEnabled = { bg = light_green, bold = true }, 318 + NeogitPopupOptionKey = { bold = true }, 319 + NeogitPopupSectionTitle = { link = 'Title' }, 320 + NeogitPopupSwitchEnabled = { link = 'NeogitPopupOptionEnabled' }, 321 + NeogitPopupSwitchKey = { link = 'NeogitPopupOptionKey' }, 322 + NeogitRemote = { link = 'NeogitBranch' }, 323 + -- Perl 324 + perlPackageDecl = { link = 'Identifier' }, 325 + perlStatementInclude = { link = 'Statement' }, 326 + perlStatementPackage = { link = 'Statement' }, 327 + podCmdText = { link = 'Todo' }, 328 + podCommand = { link = 'Comment' }, 329 + podVerbatimLine = { link = 'Todo' }, 330 + -- Ruby 331 + rubyAttribute = { link = 'Identifier' }, 332 + rubyClass = { link = 'Keyword' }, 333 + rubyClassVariable = { link = 'rubyInstancevariable' }, 334 + rubyConstant = { link = 'Constant' }, 335 + rubyDefine = { link = 'Keyword' }, 336 + rubyFunction = { link = 'Function' }, 337 + rubyInstanceVariable = { link = 'InstanceVariable' }, 338 + rubyMacro = { link = 'Identifier' }, 339 + rubyModule = { link = 'rubyClass' }, 340 + rubyRegexp = { link = 'Regexp' }, 341 + rubyRegexpCharClass = { link = 'Regexp' }, 342 + rubyRegexpDelimiter = { link = 'Regexp' }, 343 + rubyRegexpQuantifier = { link = 'Regexp' }, 344 + rubyRegexpSpecial = { link = 'Regexp' }, 345 + rubyStringDelimiter = { link = 'String' }, 346 + rubySymbol = { link = 'Symbol' }, 347 + -- Rust 348 + rustCommentBlockDoc = { link = 'Comment' }, 349 + rustCommentLineDoc = { link = 'Comment' }, 350 + rustFuncCall = { link = 'Identifier' }, 351 + rustModPath = { link = 'Identifier' }, 352 + ['@function.macro.rust'] = { link = 'Macro' }, 353 + ['@attribute.rust'] = { link = 'Identifier' }, 354 + -- pounce.nvim 355 + PounceAccept = { fg = black, bg = yellow, bold = true }, 356 + PounceAcceptBest = { link = 'PounceAccept' }, 357 + PounceMatch = { bg = light_yellow }, 358 + PounceUnmatched = {}, 359 + PounceGap = { link = 'None' }, 360 + -- Python 361 + pythonOperator = { link = 'Keyword' }, 362 + -- SASS 363 + sassClass = { link = 'cssClassName' }, 364 + sassId = { link = 'cssIdentifier' }, 365 + -- Shell 366 + shFunctionKey = { link = 'Keyword' }, 367 + -- Snippy 368 + SnippyPlaceholder = { link = 'SnippetTabstop' }, 369 + -- SQL 370 + sqlKeyword = { link = 'Keyword' }, 371 + -- Typescript 372 + typescriptBraces = { link = 'Operator' }, 373 + typescriptEndColons = { link = 'Operator' }, 374 + typescriptExceptions = { link = 'Keyword' }, 375 + typescriptFuncKeyword = { link = 'Keyword' }, 376 + typescriptFunction = { link = 'Function' }, 377 + typescriptIdentifier = { link = 'Identifier' }, 378 + typescriptLogicSymbols = { link = 'Operator' }, 379 + -- Telescope 380 + TelescopeBorder = { fg = border }, 381 + TelescopeMatching = { fg = dark_yellow, bold = true }, 382 + TelescopePromptNormal = { fg = black }, 383 + TelescopePromptBorder = { fg = border }, 384 + TelescopePromptPrefix = { fg = black, bold = true }, 385 + TelescopeSelection = { bg = light_grey, bold = true }, 386 + TelescopeTitle = { fg = black, bold = true }, 387 + TelescopeNormal = { fg = black }, 388 + -- Treesitter 389 + TSEmphasis = { italic = true }, 390 + TSField = {}, 391 + TSStringEscape = { fg = green, bold = true }, 392 + TSStrong = { bold = true }, 393 + TSURI = { fg = blue, underline = true }, 394 + TSUnderline = { underline = true }, 395 + TSConstMacro = { link = 'Macro' }, 396 + TSDanger = { link = 'Todo' }, 397 + TSKeywordOperator = { link = 'Keyword' }, 398 + TSNamespace = { link = 'Constant' }, 399 + TSNote = { link = 'Todo' }, 400 + TSProperty = { link = 'TSField' }, 401 + TSStringRegex = { link = 'Regexp' }, 402 + TSSymbol = { link = 'Symbol' }, 403 + TSTypeBuiltin = { link = 'Keyword' }, 404 + TSWarning = { link = 'Todo' }, 405 + ['@markup.link'] = { fg = blue }, 406 + ['@property.json'] = { bold = true }, 407 + ['@text.emphasis'] = { italic = true }, 408 + ['@text.reference'] = { fg = purple }, 409 + ['@text.strong'] = { bold = true }, 410 + ['@text.uri'] = { fg = blue }, 411 + ['@variable.builtin'] = { bold = true }, 412 + 413 + -- Custom Tree-sitter captures added by this theme. 414 + ['@variable.parameter.reference'] = { fg = orange }, 415 + 416 + -- Ruby uses "TSLabel" for instance variables, for some reason. See 417 + -- https://github.com/tree-sitter/tree-sitter-ruby/issues/184 for more 418 + -- details. 419 + rubyTSLabel = { link = 'InstanceVariable' }, 420 + -- TOML 421 + -- 422 + -- tomlTSTypeBuiltin is used for section titles (e.g. `[dependencies]`), while 423 + -- tomlTSProperty is used for key-value pairs. These rules ensure the syntax 424 + -- is consistent with https://github.com/cespare/vim-toml. 425 + tomlTSProperty = { fg = black }, 426 + tomlTSTypeBuiltin = { fg = black, bold = true }, 427 + -- Vimscript 428 + VimCommentTitle = { link = 'Todo' }, 429 + VimIsCommand = { link = 'Constant' }, 430 + vimGroup = { link = 'Constant' }, 431 + vimHiGroup = { link = 'Constant' }, 432 + -- XML 433 + xmlAttrib = { link = 'Identifier' }, 434 + xmlTag = { link = 'Identifier' }, 435 + xmlTagName = { link = 'Identifier' }, 436 + -- YAML 437 + yamlPlainScalar = { link = 'String' }, 438 + -- YARD 439 + yardComment = { link = 'Comment' }, 440 + yardType = { link = 'Todo' }, 441 + yardTypeList = { link = 'Todo' }, 442 + } 443 + 444 + for group, opts in pairs(highlights) do 445 + api.nvim_set_hl(0, group, opts) 446 + end
+317
nvim/colors/plain2.lua
··· 1 + vim.cmd('hi clear') 2 + 3 + if vim.fn.exists('syntax on') == 1 then 4 + vim.cmd('syntax reset') 5 + end 6 + 7 + vim.g.colors_name = 'plain2' 8 + 9 + local colors = { 10 + black = { gui = "#222222", cterm = "0" }, 11 + medium_gray = { gui = "#767676", cterm = "8" }, 12 + white = { gui = "#F1F1F1", cterm = "7" }, 13 + actual_white = { gui = "#FFFFFF", cterm = "15" }, 14 + light_black = { gui = "#424242", cterm = "11" }, 15 + lighter_black = { gui = "#545454", cterm = "12" }, 16 + subtle_black = { gui = "#303030", cterm = "11" }, 17 + light_gray = { gui = "#999999", cterm = "12" }, 18 + lighter_gray = { gui = "#CCCCCC", cterm = "7" }, 19 + lightest_gray = { gui = "#E5E5E5", cterm = "13" }, 20 + pink = { gui = "#FB007A", cterm = "5" }, 21 + dark_red = { gui = "#C30771", cterm = "1" }, 22 + light_red = { gui = "#E32791", cterm = "1" }, 23 + orange = { gui = "#D75F5F", cterm = "9" }, 24 + darker_blue = { gui = "#005F87", cterm = "4" }, 25 + dark_blue = { gui = "#008EC4", cterm = "4" }, 26 + blue = { gui = "#20BBFC", cterm = "4" }, 27 + light_blue = { gui = "#B6D6FD", cterm = "4" }, 28 + dark_cyan = { gui = "#20A5BA", cterm = "6" }, 29 + light_cyan = { gui = "#4FB8CC", cterm = "6" }, 30 + dark_green = { gui = "#10A778", cterm = "6" }, 31 + light_green = { gui = "#5FD7A7", cterm = "6" }, 32 + dark_purple = { gui = "#523C79", cterm = "5" }, 33 + light_purple = { gui = "#6855DE", cterm = "5" }, 34 + light_yellow = { gui = "#F3E430", cterm = "3" }, 35 + dark_yellow = { gui = "#A89C14", cterm = "3" }, 36 + } 37 + 38 + local bg, bg_subtle, bg_very_subtle, norm, norm_subtle, purple, cyan, green, red, yellow, visual, cursor_line, status_line, status_line_nc, constant, comment, selection, warning 39 + 40 + if vim.o.background == "dark" then 41 + bg = colors.white 42 + bg_subtle = colors.lighter_gray 43 + bg_very_subtle = colors.light_gray 44 + norm = colors.light_black 45 + norm_subtle = colors.lighter_black 46 + purple = colors.dark_purple 47 + cyan = colors.dark_cyan 48 + green = colors.dark_green 49 + red = colors.dark_red 50 + yellow = colors.dark_yellow 51 + visual = colors.light_blue 52 + cursor_line = colors.medium_gray 53 + status_line = colors.lighter_gray 54 + status_line_nc = colors.lighter_black 55 + constant = colors.dark_blue 56 + comment = colors.light_gray 57 + selection = colors.light_yellow 58 + warning = colors.yellow 59 + else 60 + bg = colors.black 61 + bg_subtle = colors.light_black 62 + bg_very_subtle = colors.subtle_black 63 + norm = colors.lighter_gray 64 + norm_subtle = colors.light_gray 65 + purple = colors.light_purple 66 + cyan = colors.light_cyan 67 + green = colors.light_green 68 + red = colors.light_red 69 + yellow = colors.light_yellow 70 + visual = colors.subtle_black 71 + cursor_line = colors.subtle_black 72 + status_line = colors.lighter_black 73 + status_line_nc = colors.subtle_black 74 + constant = colors.light_green 75 + comment = colors.lighter_black 76 + selection = colors.light_purple 77 + warning = colors.yellow 78 + end 79 + 80 + local highlights = { 81 + firstAccent = { fg = cyan }, 82 + secondAccent = { fg = purple }, 83 + Normal = { fg = norm }, 84 + Noise = { fg = norm_subtle }, 85 + Cursor = { bg = green, fg = norm }, 86 + Comment = { fg = comment, cterm = "italic" }, 87 + Function = { fg = norm, cterm = "bold" }, 88 + FloatWin = { fg = norm, bg = colors.black }, 89 + Constant = { link = "firstAccent" }, 90 + Character = { link = "Constant" }, 91 + Number = { link = "Constant" }, 92 + Boolean = { link = "Constant" }, 93 + Float = { link = "Constant" }, 94 + String = { link = "Constant" }, 95 + Identifier = { link = "Normal" }, 96 + Statement = { link = "Normal" }, 97 + Conditonal = { link = "Statement" }, 98 + Repeat = { link = "Statement" }, 99 + Label = { link = "Statement" }, 100 + Operator = { link = "Noise" }, 101 + Keyword = { link = "Statement" }, 102 + Exception = { link = "Statement" }, 103 + PreProc = { link = "Normal" }, 104 + Include = { link = "Statement" }, 105 + Define = { link = "PreProc" }, 106 + Macro = { link = "PreProc" }, 107 + PreCondit = { link = "PreProc" }, 108 + Type = { link = "secondAccent" }, 109 + StorageClass = { link = "Type" }, 110 + Structure = { link = "Noise" }, 111 + Typedef = { link = "Noise" }, 112 + Special = { link = "StatusLine" }, 113 + SpecialChar = { link = "Special" }, 114 + Tag = { link = "Special" }, 115 + Delimiter = { link = "Special" }, 116 + SpecialComment = { link = "Special" }, 117 + Debug = { link = "Special" }, 118 + Conceal = { link = "NonText" }, 119 + Underlined = { fg = norm, gui = "underline", cterm = "underline" }, 120 + Ignore = { fg = bg }, 121 + Error = { fg = red, cterm = "bold" }, 122 + Todo = { fg = colors.actual_white, bg = colors.black, gui = "bold", cterm = "bold" }, 123 + SpecialKey = { fg = colors.subtle_black }, 124 + NonText = { fg = bg_very_subtle }, 125 + Directory = { fg = green }, 126 + ErrorMsg = { fg = colors.pink }, 127 + IncSearch = { bg = selection, fg = colors.black }, 128 + Search = { bg = selection, fg = colors.black }, 129 + MoreMsg = { fg = colors.medium_gray, cterm = "bold", gui = "bold" }, 130 + ModeMsg = { link = "MoreMsg" }, 131 + LineNr = { fg = colors.medium_gray }, 132 + CursorLineNr = { fg = green, bg = bg_very_subtle }, 133 + Question = { fg = red }, 134 + VertSplit = { bg = bg, fg = bg_very_subtle }, 135 + Title = { fg = green }, 136 + Visual = { bg = visual }, 137 + VisualNOS = { bg = bg_subtle }, 138 + WarningMsg = { fg = warning }, 139 + WildMenu = { fg = colors.white, bg = bg }, 140 + Folded = { fg = colors.medium_gray }, 141 + FoldColumn = { fg = bg_subtle }, 142 + DiffAdd = { fg = green }, 143 + DiffDelete = { fg = red }, 144 + DiffChange = { fg = yellow }, 145 + DiffText = { fg = green }, 146 + SignColumn = { fg = colors.medium_gray }, 147 + SpellBad = { gui = "underline", sp = red }, 148 + SpellCap = { gui = "underline", sp = light_green }, 149 + SpellRare = { gui = "underline", sp = colors.pink }, 150 + SpellLocal = { gui = "underline", sp = green }, 151 + StatusLine = { fg = status_line }, 152 + StatusLineNC = { fg = status_line_nc }, 153 + StatusLineOk = { gui = "underline", bg = bg, fg = green }, 154 + StatusLineError = { gui = "underline", bg = bg, fg = colors.pink }, 155 + StatusLineWarning = { gui = "underline", bg = bg, fg = warning }, 156 + Pmenu = { fg = norm, bg = bg_subtle }, 157 + PmenuSel = { fg = green, bg = bg_very_subtle, gui = "bold" }, 158 + PmenuSbar = { fg = norm, bg = bg_subtle }, 159 + PmenuThumb = { fg = norm, bg = bg_subtle }, 160 + TabLine = { fg = norm_subtle, bg = bg }, 161 + TabLineSel = { fg = norm, bg = bg, gui = "bold", cterm = "bold" }, 162 + TabLineFill = { fg = norm_subtle, bg = bg }, 163 + CursorColumn = { bg = bg_very_subtle }, 164 + CursorLine = { bg = cursor_line }, 165 + ColorColumn = { bg = bg_subtle }, 166 + MatchParen = { bg = bg_very_subtle, fg = norm, cterm = "bold" }, 167 + qfLineNr = { link = "secondAccent" }, 168 + qfFileName = { link = "firstAccent" }, 169 + htmlH1 = { fg = norm }, 170 + htmlH2 = { fg = norm }, 171 + htmlH3 = { fg = norm }, 172 + htmlH4 = { fg = norm }, 173 + htmlH5 = { fg = norm }, 174 + htmlH6 = { fg = norm }, 175 + htmlBold = { fg = norm }, 176 + htmlItalic = { fg = norm }, 177 + htmlEndTag = { fg = norm }, 178 + htmlTag = { fg = norm }, 179 + htmlTagName = { fg = norm }, 180 + htmlArg = { fg = norm }, 181 + htmlError = { fg = red }, 182 + javaScript = { bg = bg, fg = norm }, 183 + javaScriptBraces = { bg = bg, fg = norm }, 184 + javaScriptNumber = { bg = bg, fg = green }, 185 + diffRemoved = { link = "DiffDelete" }, 186 + diffAdded = { link = "DiffAdd" }, 187 + TSAnnotation = { link = "secondAccent" }, 188 + TSAttribute = { link = "secondAccent" }, 189 + TSBoolean = { link = "Constant" }, 190 + TSCharacter = { link = "Constant" }, 191 + TSComment = { link = "Comment" }, 192 + TSConstructor = { link = "Normal" }, 193 + TSConditional = { link = "Statement" }, 194 + TSConstant = { link = "Constant" }, 195 + TSConstBuiltin = { link = "secondAccent" }, 196 + TSConstMacro = { link = "secondAccent" }, 197 + TSError = { link = "Error" }, 198 + TSException = { link = "Error" }, 199 + TSField = { link = "Normal" }, 200 + TSFloat = { link = "Constant" }, 201 + TSFunction = { link = "Normal" }, 202 + TSFuncBuiltin = { link = "secondAccent" }, 203 + TSFuncMacro = { link = "secondAccent" }, 204 + TSInclude = { link = "Noise" }, 205 + TSKeyword = { link = "Statement" }, 206 + TSKeywordFunction = { link = "Statement" }, 207 + TSLabel = { link = "Noise" }, 208 + TSMethod = { link = "Normal" }, 209 + TSNamespace = { link = "Noise" }, 210 + TSNone = { link = "Noise" }, 211 + TSNumber = { link = "Constant" }, 212 + TSOperator = { link = "Normal" }, 213 + TSParameter = { link = "Noise" }, 214 + TSParameterReference = { link = "Statement" }, 215 + TSProperty = { link = "TSField" }, 216 + TSPunctDelimiter = { link = "Noise" }, 217 + TSPunctBracket = { link = "Noise" }, 218 + TSPunctSpecial = { link = "Noise" }, 219 + TSRepeat = { link = "Normal" }, 220 + TSString = { link = "Constant" }, 221 + TSStringRegex = { link = "secondAccent" }, 222 + TSStringEscape = { link = "secondAccent" }, 223 + TSTag = { link = "Statement" }, 224 + TSTagDelimiter = { link = "Noise" }, 225 + TSText = { link = "Normal" }, 226 + TSEmphasis = { link = "Comment" }, 227 + TSUnderline = { link = "Underlined" }, 228 + TSStrike = { link = "Underlined" }, 229 + TSTitle = { link = "Statement" }, 230 + TSLiteral = { link = "Noise" }, 231 + TSURI = { link = "Constant" }, 232 + TSType = { link = "Noise" }, 233 + TSTypeBuiltin = { link = "secondAccent" }, 234 + TSVariable = { link = "Normal" }, 235 + TSVariableBuiltin = { link = "Normal" }, 236 + TSRepeat = { link = "Statement" }, 237 + LspDiagnosticsDefaultError = { link = "Error" }, 238 + LspDiagnosticsDefaultWarning = { link = "WarningMsg" }, 239 + LspDiagnosticsDefaultInformation = { link = "Noise" }, 240 + LspDiagnosticsDefaultHint = { link = "Constant" }, 241 + SignifySignAdd = { link = "LineNr" }, 242 + SignifySignDelete = { link = "LineNr" }, 243 + SignifySignChange = { link = "LineNr" }, 244 + GitGutterAdd = { link = "LineNr" }, 245 + GitGutterDelete = { link = "LineNr" }, 246 + GitGutterChange = { link = "LineNr" }, 247 + GitGutterChangeDelete = { link = "LineNr" }, 248 + jsFlowTypeKeyword = { link = "Statement" }, 249 + jsFlowImportType = { link = "Statement" }, 250 + jsFunction = { link = "Function" }, 251 + jsGlobalObjects = { link = "Noise" }, 252 + jsGlobalNodeObjects = { link = "Normal" }, 253 + jsSwitchCase = { link = "Constant" }, 254 + jsSpreadOperator = { bg = bg, fg = selection }, 255 + jsReturn = { link = "jsSpreadOperator" }, 256 + jsExport = { link = "jsSpreadOperator" }, 257 + rustModPath = { fg = colors.lightest_gray }, 258 + rustMacro = { link = "secondAccent" }, 259 + rustKeyword = { link = "Noise" }, 260 + rustDerive = { link = "secondAccent" }, 261 + rustDeriveTrait = { link = "secondAccent" }, 262 + rustAttribute = { link = "secondAccent" }, 263 + rustLifetime = { link = "secondAccent" }, 264 + schemeSyntax = { link = "Normal" }, 265 + schemeParentheses = { link = "Noise" }, 266 + schemeIdentifier = { link = "Noise" }, 267 + lispParen = { link = "Noise" }, 268 + lispSymbol = { link = "Noise" }, 269 + shCommandSub = { link = "secondAccent" }, 270 + cFormat = { link = "secondAccent" }, 271 + nixBuiltin = { link = "secondAccent" }, 272 + nixNamespacedBuiltin = { link = "secondAccent" }, 273 + sqlSpecial = { link = "firstAccent" }, 274 + sqlKeyword = { link = "secondAccent" }, 275 + helpExample = { link = "Noise" }, 276 + helpCommand = { link = "secondAccent" }, 277 + helpBacktick = { link = "secondAccent" }, 278 + helpSpecial = { link = "Noise" }, 279 + StorageClass = { link = "Statement" }, 280 + elmType = { link = "Type" }, 281 + xmlTag = { link = "Constant" }, 282 + xmlTagName = { link = "xmlTag" }, 283 + xmlEndTag = { link = "xmlTag" }, 284 + xmlAttrib = { link = "xmlTag" }, 285 + markdownH1 = { link = "Statement" }, 286 + markdownH2 = { link = "Statement" }, 287 + markdownH3 = { link = "Statement" }, 288 + markdownH4 = { link = "Statement" }, 289 + markdownH5 = { link = "Statement" }, 290 + markdownH6 = { link = "Statement" }, 291 + markdownListMarker = { link = "Constant" }, 292 + markdownCode = { link = "Constant" }, 293 + markdownCodeBlock = { link = "Constant" }, 294 + markdownCodeDelimiter = { link = "Constant" }, 295 + markdownHeadingDelimiter = { link = "Constant" }, 296 + cssBraces = { bg = bg, fg = selection }, 297 + cssTextProp = { link = "Noise" }, 298 + cssTagName = { link = "Normal" }, 299 + NormalFloat = { link = "FloatWin" }, 300 + CmpItemKind = { link = "firstAccent" }, 301 + CmpItemAbbrMatch = { link = "secondAccent" }, 302 + } 303 + 304 + if vim.fn.has("gui_running") == 0 then 305 + highlights.SpellBad = { cterm = "underline", fg = red } 306 + highlights.SpellCap = { cterm = "underline", fg = light_green } 307 + highlights.SpellRare = { cterm = "underline", fg = colors.pink } 308 + highlights.SpellLocal = { cterm = "underline", fg = green } 309 + end 310 + 311 + for group, opts in pairs(highlights) do 312 + if opts.link then 313 + vim.api.nvim_set_hl(0, group, { link = opts.link }) 314 + else 315 + vim.api.nvim_set_hl(0, group, opts) 316 + end 317 + end
+1 -1
nvim/lua/settings.lua
··· 43 43 ]] 44 44 45 45 cmd('syntax on') 46 - cmd('colorscheme plain') 46 + cmd('colorscheme grey') 47 47 autocmd('TextYankPost', { 48 48 pattern = '*', 49 49 callback = function()