| 1 | -- Some useful links for making your own colorscheme: |
| 2 | -- |
| 3 | -- https://github.com/chriskempson/base16 |
| 4 | -- https://colourco.de/ |
| 5 | -- https://color.adobe.com/create/color-wheel |
| 6 | -- http://vrl.cs.brown.edu/color |
| 7 | |
| 8 | local M = {} |
| 9 | local hex_re = vim.regex('#\\x\\x\\x\\x\\x\\x') |
| 10 | |
| 11 | local HEX_DIGITS = { |
| 12 | ['0'] = 0, |
| 13 | ['1'] = 1, |
| 14 | ['2'] = 2, |
| 15 | ['3'] = 3, |
| 16 | ['4'] = 4, |
| 17 | ['5'] = 5, |
| 18 | ['6'] = 6, |
| 19 | ['7'] = 7, |
| 20 | ['8'] = 8, |
| 21 | ['9'] = 9, |
| 22 | ['a'] = 10, |
| 23 | ['b'] = 11, |
| 24 | ['c'] = 12, |
| 25 | ['d'] = 13, |
| 26 | ['e'] = 14, |
| 27 | ['f'] = 15, |
| 28 | ['A'] = 10, |
| 29 | ['B'] = 11, |
| 30 | ['C'] = 12, |
| 31 | ['D'] = 13, |
| 32 | ['E'] = 14, |
| 33 | ['F'] = 15, |
| 34 | } |
| 35 | |
| 36 | local function hex_to_rgb(hex) |
| 37 | return HEX_DIGITS[string.sub(hex, 1, 1)] * 16 + HEX_DIGITS[string.sub(hex, 2, 2)], |
| 38 | HEX_DIGITS[string.sub(hex, 3, 3)] * 16 + HEX_DIGITS[string.sub(hex, 4, 4)], |
| 39 | HEX_DIGITS[string.sub(hex, 5, 5)] * 16 + HEX_DIGITS[string.sub(hex, 6, 6)] |
| 40 | end |
| 41 | |
| 42 | local function rgb_to_hex(r, g, b) |
| 43 | return bit.tohex(bit.bor(bit.lshift(r, 16), bit.lshift(g, 8), b), 6) |
| 44 | end |
| 45 | |
| 46 | local function darken(hex, pct) |
| 47 | pct = 1 - pct |
| 48 | local r, g, b = hex_to_rgb(string.sub(hex, 2)) |
| 49 | r = math.floor(r * pct) |
| 50 | g = math.floor(g * pct) |
| 51 | b = math.floor(b * pct) |
| 52 | return string.format("#%s", rgb_to_hex(r, g, b)) |
| 53 | end |
| 54 | |
| 55 | -- This is a bit of syntactic sugar for creating highlight groups. |
| 56 | -- |
| 57 | -- local colorscheme = require('colorscheme') |
| 58 | -- local hi = colorscheme.highlight |
| 59 | -- hi.Comment = { guifg='#ffffff', guibg='#000000', gui='italic', guisp=nil } |
| 60 | -- hi.LspDiagnosticsDefaultError = 'DiagnosticError' -- Link to another group |
| 61 | -- |
| 62 | -- This is equivalent to the following vimscript |
| 63 | -- |
| 64 | -- hi Comment guifg=#ffffff guibg=#000000 gui=italic |
| 65 | -- hi! link LspDiagnosticsDefaultError DiagnosticError |
| 66 | M.highlight = setmetatable({}, { |
| 67 | __newindex = function(_, hlgroup, args) |
| 68 | if ('string' == type(args)) then |
| 69 | vim.api.nvim_set_hl(0, hlgroup, { link = args }) |
| 70 | return |
| 71 | end |
| 72 | |
| 73 | local guifg, guibg, gui, guisp = args.guifg or nil, args.guibg or nil, args.gui or nil, args.guisp or nil |
| 74 | local ctermfg, ctermbg = args.ctermfg or nil, args.ctermbg or nil |
| 75 | local val = {} |
| 76 | if guifg then val.fg = guifg end |
| 77 | if guibg then val.bg = guibg end |
| 78 | if ctermfg then val.ctermfg = ctermfg end |
| 79 | if ctermbg then val.ctermbg = ctermbg end |
| 80 | if guisp then val.sp = guisp end |
| 81 | if gui then |
| 82 | for x in string.gmatch(gui, '([^,]+)') do |
| 83 | if x ~= "none" then |
| 84 | val[x] = true |
| 85 | end |
| 86 | end |
| 87 | end |
| 88 | vim.api.nvim_set_hl(0, hlgroup, val) |
| 89 | end |
| 90 | }) |
| 91 | |
| 92 | function M.with_config(config) |
| 93 | M.config = vim.tbl_extend("force", { |
| 94 | telescope = true, |
| 95 | telescope_borders = false, |
| 96 | indentblankline = true, |
| 97 | notify = true, |
| 98 | ts_rainbow = true, |
| 99 | cmp = true, |
| 100 | illuminate = true, |
| 101 | lsp_semantic = true, |
| 102 | mini_completion = true, |
| 103 | dapui = true, |
| 104 | }, config or M.config or {}) |
| 105 | end |
| 106 | |
| 107 | --- Creates a base16 colorscheme using the colors specified. |
| 108 | -- |
| 109 | -- Builtin colorschemes can be found in the M.colorschemes table. |
| 110 | -- |
| 111 | -- The default Vim highlight groups (including User[1-9]), highlight groups |
| 112 | -- pertaining to Neovim's builtin LSP, and highlight groups pertaining to |
| 113 | -- Treesitter will be defined. |
| 114 | -- |
| 115 | -- It's worth noting that many colorschemes will specify language specific |
| 116 | -- highlight groups like rubyConstant or pythonInclude. However, I don't do |
| 117 | -- that here since these should instead be linked to an existing highlight |
| 118 | -- group. |
| 119 | -- |
| 120 | -- @param colors (table) table with keys 'base00', 'base01', 'base02', |
| 121 | -- 'base03', 'base04', 'base05', 'base06', 'base07', 'base08', 'base09', |
| 122 | -- 'base0A', 'base0B', 'base0C', 'base0D', 'base0E', 'base0F'. Each key should |
| 123 | -- map to a valid 6 digit hex color. If a string is provided, the |
| 124 | -- corresponding table specifying the colorscheme will be used. |
| 125 | function M.setup(colors, config) |
| 126 | M.with_config(config) |
| 127 | |
| 128 | if type(colors) == 'string' then |
| 129 | colors = M.colorschemes[colors] |
| 130 | end |
| 131 | |
| 132 | if vim.fn.exists('syntax_on') then |
| 133 | vim.cmd('syntax reset') |
| 134 | end |
| 135 | |
| 136 | -- BASE16_THEME in a tmux session cannot be trusted because of how envs in tmux panes work. |
| 137 | local base16_colorscheme = nil |
| 138 | if vim.env.TMUX == nil and vim.env.BASE16_THEME ~= nil then |
| 139 | -- Only trust BASE16_THEME if not inside a tmux pane: |
| 140 | base16_colorscheme = M.colorschemes[vim.env.BASE16_THEME] |
| 141 | end |
| 142 | M.colors = colors or base16_colorscheme or |
| 143 | M.colorschemes['schemer-dark'] |
| 144 | local hi = M.highlight |
| 145 | |
| 146 | -- Vim editor colors |
| 147 | hi.Normal = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 148 | hi.Bold = { guifg = nil, guibg = nil, gui = 'bold', guisp = nil, ctermfg = nil, ctermbg = nil } |
| 149 | hi.Debug = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 150 | hi.Directory = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 151 | hi.Error = { guifg = M.colors.base08, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm00 } |
| 152 | hi.ErrorMsg = { guifg = M.colors.base08, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm00 } |
| 153 | hi.Exception = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 154 | hi.FoldColumn = { guifg = M.colors.base0C, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = M.colors.cterm00 } |
| 155 | hi.Folded = { guifg = M.colors.base03, guibg = M.colors.base01, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = M.colors.cterm01 } |
| 156 | hi.IncSearch = { guifg = M.colors.base01, guibg = M.colors.base09, gui = 'none', guisp = nil, ctermfg = M.colors.cterm01, ctermbg = M.colors.cterm09 } |
| 157 | hi.Italic = { guifg = nil, guibg = nil, gui = 'italic', guisp = nil, ctermfg = nil, ctermbg = nil } |
| 158 | hi.Macro = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 159 | hi.MatchParen = { guifg = nil, guibg = M.colors.base03, gui = nil, guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm03 } |
| 160 | hi.ModeMsg = { guifg = M.colors.base0B, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 161 | hi.MoreMsg = { guifg = M.colors.base0B, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 162 | hi.Question = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 163 | hi.Search = { guifg = M.colors.base01, guibg = M.colors.base0A, gui = nil, guisp = nil, ctermfg = M.colors.cterm01, ctermbg = M.colors.cterm0A } |
| 164 | hi.Substitute = { guifg = M.colors.base01, guibg = M.colors.base0A, gui = 'none', guisp = nil, ctermfg = M.colors.cterm01, ctermbg = M.colors.cterm0A } |
| 165 | hi.SpecialKey = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 166 | hi.TooLong = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 167 | hi.Underlined = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 168 | hi.Visual = { guifg = nil, guibg = M.colors.base02, gui = nil, guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm02 } |
| 169 | hi.VisualNOS = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 170 | hi.WarningMsg = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 171 | hi.WildMenu = { guifg = M.colors.base08, guibg = M.colors.base0A, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm0A } |
| 172 | hi.Title = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 173 | hi.Conceal = { guifg = M.colors.base0D, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = M.colors.cterm00 } |
| 174 | hi.Cursor = { guifg = M.colors.base00, guibg = M.colors.base05, gui = nil, guisp = nil, ctermfg = M.colors.cterm00, ctermbg = M.colors.cterm05 } |
| 175 | hi.NonText = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 176 | hi.LineNr = { guifg = M.colors.base04, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm04, ctermbg = M.colors.cterm00 } |
| 177 | hi.SignColumn = { guifg = M.colors.base04, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm04, ctermbg = M.colors.cterm00 } |
| 178 | hi.StatusLine = { guifg = M.colors.base05, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm02 } |
| 179 | hi.StatusLineNC = { guifg = M.colors.base04, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = M.colors.cterm04, ctermbg = M.colors.cterm01 } |
| 180 | hi.WinBar = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 181 | hi.WinBarNC = { guifg = M.colors.base04, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm04, ctermbg = nil } |
| 182 | hi.VertSplit = { guifg = M.colors.base05, guibg = M.colors.base00, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 183 | hi.ColorColumn = { guifg = nil, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm01 } |
| 184 | hi.CursorColumn = { guifg = nil, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm01 } |
| 185 | hi.CursorLine = { guifg = nil, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm01 } |
| 186 | hi.CursorLineNr = { guifg = M.colors.base04, guibg = M.colors.base01, gui = nil, guisp = nil, ctermfg = M.colors.cterm04, ctermbg = M.colors.cterm01 } |
| 187 | hi.QuickFixLine = { guifg = nil, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm01 } |
| 188 | hi.PMenu = { guifg = M.colors.base05, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm01 } |
| 189 | hi.PMenuSel = { guifg = M.colors.base01, guibg = M.colors.base05, gui = nil, guisp = nil, ctermfg = M.colors.cterm01, ctermbg = M.colors.cterm05 } |
| 190 | hi.TabLine = { guifg = M.colors.base03, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = M.colors.cterm03, ctermbg = M.colors.cterm01 } |
| 191 | hi.TabLineFill = { guifg = M.colors.base03, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = M.colors.cterm03, ctermbg = M.colors.cterm01 } |
| 192 | hi.TabLineSel = { guifg = M.colors.base0B, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = M.colors.cterm01 } |
| 193 | |
| 194 | -- Standard syntax highlighting |
| 195 | hi.Boolean = { guifg = M.colors.base09, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 196 | hi.Character = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 197 | hi.Comment = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 198 | hi.Conditional = { guifg = M.colors.base0E, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 199 | hi.Constant = { guifg = M.colors.base09, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 200 | hi.Define = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 201 | hi.Delimiter = { guifg = M.colors.base0F, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0F, ctermbg = nil } |
| 202 | hi.Float = { guifg = M.colors.base09, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 203 | hi.Function = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 204 | hi.Identifier = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 205 | hi.Include = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 206 | hi.Keyword = { guifg = M.colors.base0E, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 207 | hi.Label = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 208 | hi.Number = { guifg = M.colors.base09, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 209 | hi.Operator = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 210 | hi.PreProc = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 211 | hi.Repeat = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 212 | hi.Special = { guifg = M.colors.base0C, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 213 | hi.SpecialChar = { guifg = M.colors.base0F, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0F, ctermbg = nil } |
| 214 | hi.Statement = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 215 | hi.StorageClass = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 216 | hi.String = { guifg = M.colors.base0B, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 217 | hi.Structure = { guifg = M.colors.base0E, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 218 | hi.Tag = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 219 | hi.Todo = { guifg = M.colors.base0A, guibg = M.colors.base01, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = M.colors.cterm01 } |
| 220 | hi.Type = { guifg = M.colors.base0A, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 221 | hi.Typedef = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 222 | |
| 223 | -- Diff highlighting |
| 224 | hi.DiffAdd = { guifg = M.colors.base0B, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = M.colors.cterm00 } |
| 225 | hi.DiffChange = { guifg = M.colors.base03, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = M.colors.cterm00 } |
| 226 | hi.DiffDelete = { guifg = M.colors.base08, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm00 } |
| 227 | hi.DiffText = { guifg = M.colors.base0D, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = M.colors.cterm00 } |
| 228 | hi.DiffAdded = { guifg = M.colors.base0B, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = M.colors.cterm00 } |
| 229 | hi.DiffFile = { guifg = M.colors.base08, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm00 } |
| 230 | hi.DiffNewFile = { guifg = M.colors.base0B, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = M.colors.cterm00 } |
| 231 | hi.DiffLine = { guifg = M.colors.base0D, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = M.colors.cterm00 } |
| 232 | hi.DiffRemoved = { guifg = M.colors.base08, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm00 } |
| 233 | |
| 234 | -- Git highlighting |
| 235 | hi.gitcommitOverflow = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 236 | hi.gitcommitSummary = { guifg = M.colors.base0B, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 237 | hi.gitcommitComment = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 238 | hi.gitcommitUntracked = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 239 | hi.gitcommitDiscarded = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 240 | hi.gitcommitSelected = { guifg = M.colors.base03, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 241 | hi.gitcommitHeader = { guifg = M.colors.base0E, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 242 | hi.gitcommitSelectedType = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 243 | hi.gitcommitUnmergedType = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 244 | hi.gitcommitDiscardedType = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 245 | hi.gitcommitBranch = { guifg = M.colors.base09, guibg = nil, gui = 'bold', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 246 | hi.gitcommitUntrackedFile = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 247 | hi.gitcommitUnmergedFile = { guifg = M.colors.base08, guibg = nil, gui = 'bold', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 248 | hi.gitcommitDiscardedFile = { guifg = M.colors.base08, guibg = nil, gui = 'bold', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 249 | hi.gitcommitSelectedFile = { guifg = M.colors.base0B, guibg = nil, gui = 'bold', guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 250 | |
| 251 | -- GitGutter highlighting |
| 252 | hi.GitGutterAdd = { guifg = M.colors.base0B, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = M.colors.cterm00 } |
| 253 | hi.GitGutterChange = { guifg = M.colors.base0D, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = M.colors.cterm00 } |
| 254 | hi.GitGutterDelete = { guifg = M.colors.base08, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm00 } |
| 255 | hi.GitGutterChangeDelete = { guifg = M.colors.base0E, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = M.colors.cterm00 } |
| 256 | |
| 257 | -- Spelling highlighting |
| 258 | hi.SpellBad = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base08, ctermfg = nil, ctermbg = nil } |
| 259 | hi.SpellLocal = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0C, ctermfg = nil, ctermbg = nil } |
| 260 | hi.SpellCap = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0D, ctermfg = nil, ctermbg = nil } |
| 261 | hi.SpellRare = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0E, ctermfg = nil, ctermbg = nil } |
| 262 | |
| 263 | hi.DiagnosticError = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 264 | hi.DiagnosticWarn = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 265 | hi.DiagnosticInfo = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 266 | hi.DiagnosticHint = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 267 | hi.DiagnosticUnderlineError = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base08, ctermfg = nil, ctermbg = nil } |
| 268 | hi.DiagnosticUnderlineWarning = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0E, ctermfg = nil, ctermbg = nil } |
| 269 | hi.DiagnosticUnderlineWarn = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0E, ctermfg = nil, ctermbg = nil } |
| 270 | hi.DiagnosticUnderlineInformation = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0F, ctermfg = nil, ctermbg = nil } |
| 271 | hi.DiagnosticUnderlineHint = { guifg = nil, guibg = nil, gui = 'undercurl', guisp = M.colors.base0C, ctermfg = nil, ctermbg = nil } |
| 272 | |
| 273 | hi.LspReferenceText = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 274 | hi.LspReferenceRead = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 275 | hi.LspReferenceWrite = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 276 | hi.LspDiagnosticsDefaultError = 'DiagnosticError' |
| 277 | hi.LspDiagnosticsDefaultWarning = 'DiagnosticWarn' |
| 278 | hi.LspDiagnosticsDefaultInformation = 'DiagnosticInfo' |
| 279 | hi.LspDiagnosticsDefaultHint = 'DiagnosticHint' |
| 280 | hi.LspDiagnosticsUnderlineError = 'DiagnosticUnderlineError' |
| 281 | hi.LspDiagnosticsUnderlineWarning = 'DiagnosticUnderlineWarning' |
| 282 | hi.LspDiagnosticsUnderlineInformation = 'DiagnosticUnderlineInformation' |
| 283 | hi.LspDiagnosticsUnderlineHint = 'DiagnosticUnderlineHint' |
| 284 | |
| 285 | hi.TSAnnotation = { guifg = M.colors.base0F, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0F, ctermbg = nil } |
| 286 | hi.TSAttribute = { guifg = M.colors.base0A, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 287 | hi.TSBoolean = { guifg = M.colors.base09, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 288 | hi.TSCharacter = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 289 | hi.TSComment = { guifg = M.colors.base03, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 290 | hi.TSConstructor = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 291 | hi.TSConditional = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 292 | hi.TSConstant = { guifg = M.colors.base09, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 293 | hi.TSConstBuiltin = { guifg = M.colors.base09, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 294 | hi.TSConstMacro = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 295 | hi.TSError = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 296 | hi.TSException = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 297 | hi.TSField = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 298 | hi.TSFloat = { guifg = M.colors.base09, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 299 | hi.TSFunction = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 300 | hi.TSFuncBuiltin = { guifg = M.colors.base0D, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 301 | hi.TSFuncMacro = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 302 | hi.TSInclude = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 303 | hi.TSKeyword = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 304 | hi.TSKeywordFunction = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 305 | hi.TSKeywordOperator = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 306 | hi.TSLabel = { guifg = M.colors.base0A, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 307 | hi.TSMethod = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 308 | hi.TSNamespace = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 309 | hi.TSNone = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 310 | hi.TSNumber = { guifg = M.colors.base09, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 311 | hi.TSOperator = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 312 | hi.TSParameter = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 313 | hi.TSParameterReference = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 314 | hi.TSProperty = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 315 | hi.TSPunctDelimiter = { guifg = M.colors.base0F, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0F, ctermbg = nil } |
| 316 | hi.TSPunctBracket = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 317 | hi.TSPunctSpecial = { guifg = M.colors.base0F, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0F, ctermbg = nil } |
| 318 | hi.TSRepeat = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 319 | hi.TSString = { guifg = M.colors.base0B, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 320 | hi.TSStringRegex = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 321 | hi.TSStringEscape = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 322 | hi.TSSymbol = { guifg = M.colors.base0B, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0B, ctermbg = nil } |
| 323 | hi.TSTag = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 324 | hi.TSTagDelimiter = { guifg = M.colors.base0F, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0F, ctermbg = nil } |
| 325 | hi.TSText = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 326 | hi.TSStrong = { guifg = nil, guibg = nil, gui = 'bold', guisp = nil, ctermfg = nil, ctermbg = nil } |
| 327 | hi.TSEmphasis = { guifg = M.colors.base09, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 328 | hi.TSUnderline = { guifg = M.colors.base00, guibg = nil, gui = 'underline', guisp = nil, ctermfg = M.colors.cterm00, ctermbg = nil } |
| 329 | hi.TSStrike = { guifg = M.colors.base00, guibg = nil, gui = 'strikethrough', guisp = nil, ctermfg = M.colors.cterm00, ctermbg = nil } |
| 330 | hi.TSTitle = { guifg = M.colors.base0D, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 331 | hi.TSLiteral = { guifg = M.colors.base09, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 332 | hi.TSURI = { guifg = M.colors.base09, guibg = nil, gui = 'underline', guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 333 | hi.TSType = { guifg = M.colors.base0A, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 334 | hi.TSTypeBuiltin = { guifg = M.colors.base0A, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 335 | hi.TSVariable = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 336 | hi.TSVariableBuiltin = { guifg = M.colors.base08, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 337 | |
| 338 | hi.TSDefinition = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 339 | hi.TSDefinitionUsage = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 340 | hi.TSCurrentScope = { guifg = nil, guibg = nil, gui = 'bold', guisp = nil, ctermfg = nil, ctermbg = nil } |
| 341 | |
| 342 | hi.LspInlayHint = { guifg = M.colors.base03, guibg = nil, gui = 'italic', guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 343 | |
| 344 | if vim.fn.has('nvim-0.8.0') then |
| 345 | hi['@comment'] = 'TSComment' |
| 346 | hi['@error'] = 'TSError' |
| 347 | hi['@none'] = 'TSNone' |
| 348 | hi['@preproc'] = 'PreProc' |
| 349 | hi['@define'] = 'Define' |
| 350 | hi['@operator'] = 'TSOperator' |
| 351 | hi['@punctuation.delimiter'] = 'TSPunctDelimiter' |
| 352 | hi['@punctuation.bracket'] = 'TSPunctBracket' |
| 353 | hi['@punctuation.special'] = 'TSPunctSpecial' |
| 354 | hi['@string'] = 'TSString' |
| 355 | hi['@string.regex'] = 'TSStringRegex' |
| 356 | hi['@string.escape'] = 'TSStringEscape' |
| 357 | hi['@string.special'] = 'SpecialChar' |
| 358 | hi['@character'] = 'TSCharacter' |
| 359 | hi['@character.special'] = 'SpecialChar' |
| 360 | hi['@boolean'] = 'TSBoolean' |
| 361 | hi['@number'] = 'TSNumber' |
| 362 | hi['@float'] = 'TSFloat' |
| 363 | hi['@function'] = 'TSFunction' |
| 364 | hi['@function.call'] = 'TSFunction' |
| 365 | hi['@function.builtin'] = 'TSFuncBuiltin' |
| 366 | hi['@function.macro'] = 'TSFuncMacro' |
| 367 | hi['@method'] = 'TSMethod' |
| 368 | hi['@method.call'] = 'TSMethod' |
| 369 | hi['@constructor'] = 'TSConstructor' |
| 370 | hi['@parameter'] = 'TSParameter' |
| 371 | hi['@keyword'] = 'TSKeyword' |
| 372 | hi['@keyword.function'] = 'TSKeywordFunction' |
| 373 | hi['@keyword.operator'] = 'TSKeywordOperator' |
| 374 | hi['@keyword.return'] = 'TSKeyword' |
| 375 | hi['@conditional'] = 'TSConditional' |
| 376 | hi['@repeat'] = 'TSRepeat' |
| 377 | hi['@debug'] = 'Debug' |
| 378 | hi['@label'] = 'TSLabel' |
| 379 | hi['@include'] = 'TSInclude' |
| 380 | hi['@exception'] = 'TSException' |
| 381 | hi['@type'] = 'TSType' |
| 382 | hi['@type.builtin'] = 'TSTypeBuiltin' |
| 383 | hi['@type.qualifier'] = 'TSKeyword' |
| 384 | hi['@type.definition'] = 'TSType' |
| 385 | hi['@storageclass'] = 'StorageClass' |
| 386 | hi['@attribute'] = 'TSAttribute' |
| 387 | hi['@field'] = 'TSField' |
| 388 | hi['@property'] = 'TSProperty' |
| 389 | hi['@variable'] = 'TSVariable' |
| 390 | hi['@variable.builtin'] = 'TSVariableBuiltin' |
| 391 | hi['@constant'] = 'TSConstant' |
| 392 | hi['@constant.builtin'] = 'TSConstant' |
| 393 | hi['@constant.macro'] = 'TSConstant' |
| 394 | hi['@namespace'] = 'TSNamespace' |
| 395 | hi['@symbol'] = 'TSSymbol' |
| 396 | hi['@text'] = 'TSText' |
| 397 | hi['@text.diff.add'] = 'DiffAdd' |
| 398 | hi['@text.diff.delete'] = 'DiffDelete' |
| 399 | hi['@text.strong'] = 'TSStrong' |
| 400 | hi['@text.emphasis'] = 'TSEmphasis' |
| 401 | hi['@text.underline'] = 'TSUnderline' |
| 402 | hi['@text.strike'] = 'TSStrike' |
| 403 | hi['@text.title'] = 'TSTitle' |
| 404 | hi['@text.literal'] = 'TSLiteral' |
| 405 | hi['@text.uri'] = 'TSUri' |
| 406 | hi['@text.math'] = 'Number' |
| 407 | hi['@text.environment'] = 'Macro' |
| 408 | hi['@text.environment.name'] = 'Type' |
| 409 | hi['@text.reference'] = 'TSParameterReference' |
| 410 | hi['@text.todo'] = 'Todo' |
| 411 | hi['@text.note'] = 'Tag' |
| 412 | hi['@text.warning'] = 'DiagnosticWarn' |
| 413 | hi['@text.danger'] = 'DiagnosticError' |
| 414 | hi['@tag'] = 'TSTag' |
| 415 | hi['@tag.attribute'] = 'TSAttribute' |
| 416 | hi['@tag.delimiter'] = 'TSTagDelimiter' |
| 417 | |
| 418 | hi['@function.method'] = '@method' |
| 419 | hi['@function.method.call'] = '@method.call' |
| 420 | hi['@comment.error'] = '@text.danger' |
| 421 | hi['@comment.warning'] = '@text.warning' |
| 422 | hi['@comment.hint'] = 'DiagnosticHint' |
| 423 | hi['@comment.info'] = 'DiagnosticInfo' |
| 424 | hi['@comment.todo'] = '@text.todo' |
| 425 | hi['@diff.plus'] = '@text.diff.add' |
| 426 | hi['@diff.minus'] = '@text.diff.delete' |
| 427 | hi['@diff.delta'] = 'DiffChange' |
| 428 | hi['@string.special.url'] = '@text.uri' |
| 429 | hi['@keyword.directive'] = '@preproc' |
| 430 | hi['@keyword.directive.define'] = '@define' |
| 431 | hi['@keyword.storage'] = '@storageclass' |
| 432 | hi['@keyword.conditional'] = '@conditional' |
| 433 | hi['@keyword.debug'] = '@debug' |
| 434 | hi['@keyword.exception'] = '@exception' |
| 435 | hi['@keyword.import'] = '@include' |
| 436 | hi['@keyword.repeat'] = '@repeat' |
| 437 | hi['@variable.parameter'] = '@parameter' |
| 438 | hi['@variable.member'] = '@field' |
| 439 | hi['@module'] = '@namespace' |
| 440 | hi['@number.float'] = '@float' |
| 441 | hi['@string.special.symbol'] = '@symbol' |
| 442 | hi['@string.regexp'] = '@string.regex' |
| 443 | hi['@markup.strong'] = '@text.strong' |
| 444 | hi['@markup.italic'] = 'Italic' |
| 445 | hi['@markup.link'] = '@text.link' |
| 446 | hi['@markup.strikethrough'] = '@text.strikethrough' |
| 447 | hi['@markup.heading'] = '@text.title' |
| 448 | hi['@markup.raw'] = '@text.literal' |
| 449 | hi['@markup.link'] = '@text.reference' |
| 450 | hi['@markup.link.url'] = '@text.uri' |
| 451 | hi['@markup.link.label'] = '@string.special' |
| 452 | hi['@markup.list'] = '@punctuation.special' |
| 453 | end |
| 454 | |
| 455 | if M.config.ts_rainbow then |
| 456 | hi.rainbowcol1 = { guifg = M.colors.base06, ctermfg = M.colors.cterm06 } |
| 457 | hi.rainbowcol2 = { guifg = M.colors.base09, ctermfg = M.colors.cterm09 } |
| 458 | hi.rainbowcol3 = { guifg = M.colors.base0A, ctermfg = M.colors.cterm0A } |
| 459 | hi.rainbowcol4 = { guifg = M.colors.base07, ctermfg = M.colors.cterm07 } |
| 460 | hi.rainbowcol5 = { guifg = M.colors.base0C, ctermfg = M.colors.cterm0C } |
| 461 | hi.rainbowcol6 = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 462 | hi.rainbowcol7 = { guifg = M.colors.base0E, ctermfg = M.colors.cterm0E } |
| 463 | end |
| 464 | |
| 465 | hi.NvimInternalError = { guifg = M.colors.base00, guibg = M.colors.base08, gui = 'none', guisp = nil, ctermfg = M.colors.cterm00, ctermbg = M.colors.cterm08 } |
| 466 | |
| 467 | hi.NormalFloat = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 468 | hi.FloatBorder = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 469 | hi.NormalNC = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 470 | hi.TermCursor = { guifg = M.colors.base00, guibg = M.colors.base05, gui = 'none', guisp = nil, ctermfg = M.colors.cterm00, ctermbg = M.colors.cterm05 } |
| 471 | hi.TermCursorNC = { guifg = M.colors.base00, guibg = M.colors.base05, gui = nil, guisp = nil, ctermfg = M.colors.cterm00, ctermbg = M.colors.cterm05 } |
| 472 | |
| 473 | hi.User1 = { guifg = M.colors.base08, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = M.colors.cterm02 } |
| 474 | hi.User2 = { guifg = M.colors.base0E, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = M.colors.cterm02 } |
| 475 | hi.User3 = { guifg = M.colors.base05, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm02 } |
| 476 | hi.User4 = { guifg = M.colors.base0C, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = M.colors.cterm02 } |
| 477 | hi.User5 = { guifg = M.colors.base05, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm02 } |
| 478 | hi.User6 = { guifg = M.colors.base05, guibg = M.colors.base01, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm01 } |
| 479 | hi.User7 = { guifg = M.colors.base05, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm02 } |
| 480 | hi.User8 = { guifg = M.colors.base00, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm00, ctermbg = M.colors.cterm02 } |
| 481 | hi.User9 = { guifg = M.colors.base00, guibg = M.colors.base02, gui = 'none', guisp = nil, ctermfg = M.colors.cterm00, ctermbg = M.colors.cterm02 } |
| 482 | |
| 483 | hi.TreesitterContext = { guifg = nil, guibg = M.colors.base01, gui = 'italic', guisp = nil, ctermfg = nil, ctermbg = M.colors.cterm01 } |
| 484 | |
| 485 | if M.config.telescope then |
| 486 | if not M.config.telescope_borders and hex_re:match_str(M.colors.base00) and hex_re:match_str(M.colors.base01) and |
| 487 | hex_re:match_str(M.colors.base02) then |
| 488 | local darkerbg = darken(M.colors.base00, 0.1) |
| 489 | local darkercursorline = darken(M.colors.base01, 0.1) |
| 490 | local darkerstatusline = darken(M.colors.base02, 0.1) |
| 491 | hi.TelescopeBorder = { guifg = darkerbg, guibg = darkerbg, gui = nil, guisp = nil } |
| 492 | hi.TelescopePromptBorder = { guifg = darkerstatusline, guibg = darkerstatusline, gui = nil, guisp = nil } |
| 493 | hi.TelescopePromptNormal = { guifg = M.colors.base05, guibg = darkerstatusline, gui = nil, guisp = nil } |
| 494 | hi.TelescopePromptPrefix = { guifg = M.colors.base08, guibg = darkerstatusline, gui = nil, guisp = nil } |
| 495 | hi.TelescopeNormal = { guifg = nil, guibg = darkerbg, gui = nil, guisp = nil } |
| 496 | hi.TelescopePreviewTitle = { guifg = darkercursorline, guibg = M.colors.base0B, gui = nil, guisp = nil } |
| 497 | hi.TelescopePromptTitle = { guifg = darkercursorline, guibg = M.colors.base08, gui = nil, guisp = nil } |
| 498 | hi.TelescopeResultsTitle = { guifg = darkerbg, guibg = darkerbg, gui = nil, guisp = nil } |
| 499 | hi.TelescopeSelection = { guifg = nil, guibg = darkerstatusline, gui = nil, guisp = nil } |
| 500 | hi.TelescopePreviewLine = { guifg = nil, guibg = M.colors.base01, gui = 'none', guisp = nil } |
| 501 | else |
| 502 | hi.TelescopeBorder = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil } |
| 503 | hi.TelescopePromptBorder = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil } |
| 504 | hi.TelescopePromptNormal = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil } |
| 505 | hi.TelescopePromptPrefix = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil } |
| 506 | hi.TelescopeNormal = { guifg = nil, guibg = M.colors.base00, gui = nil, guisp = nil } |
| 507 | hi.TelescopePreviewTitle = { guifg = M.colors.base01, guibg = M.colors.base0B, gui = nil, guisp = nil } |
| 508 | hi.TelescopePromptTitle = { guifg = M.colors.base01, guibg = M.colors.base08, gui = nil, guisp = nil } |
| 509 | hi.TelescopeResultsTitle = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil } |
| 510 | hi.TelescopeSelection = { guifg = nil, guibg = M.colors.base01, gui = nil, guisp = nil } |
| 511 | hi.TelescopePreviewLine = { guifg = nil, guibg = M.colors.base01, gui = 'none', guisp = nil } |
| 512 | end |
| 513 | end |
| 514 | |
| 515 | if M.config.notify then |
| 516 | hi.NotifyERRORBorder = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 517 | hi.NotifyWARNBorder = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 518 | hi.NotifyINFOBorder = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 519 | hi.NotifyDEBUGBorder = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 520 | hi.NotifyTRACEBorder = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 521 | hi.NotifyERRORIcon = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 522 | hi.NotifyWARNIcon = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 523 | hi.NotifyINFOIcon = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 524 | hi.NotifyDEBUGIcon = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 525 | hi.NotifyTRACEIcon = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 526 | hi.NotifyERRORTitle = { guifg = M.colors.base08, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 527 | hi.NotifyWARNTitle = { guifg = M.colors.base0E, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 528 | hi.NotifyINFOTitle = { guifg = M.colors.base05, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 529 | hi.NotifyDEBUGTitle = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 530 | hi.NotifyTRACETitle = { guifg = M.colors.base0C, guibg = nil, gui = 'none', guisp = nil, ctermfg = M.colors.cterm0C, ctermbg = nil } |
| 531 | hi.NotifyERRORBody = 'Normal' |
| 532 | hi.NotifyWARNBody = 'Normal' |
| 533 | hi.NotifyINFOBody = 'Normal' |
| 534 | hi.NotifyDEBUGBody = 'Normal' |
| 535 | hi.NotifyTRACEBody = 'Normal' |
| 536 | end |
| 537 | |
| 538 | if M.config.indentblankline then |
| 539 | hi.IndentBlanklineChar = { guifg = M.colors.base02, gui = 'nocombine', ctermfg = M.colors.cterm02 } |
| 540 | hi.IndentBlanklineContextChar = { guifg = M.colors.base04, gui = 'nocombine', ctermfg = M.colors.cterm04 } |
| 541 | hi.IblIndent = { guifg = M.colors.base02, gui = 'nocombine', ctermfg = M.colors.cterm02 } |
| 542 | hi.IblWhitespace = 'Whitespace' |
| 543 | hi.IblScope = { guifg = M.colors.base04, gui = 'nocombine', ctermfg = M.colors.cterm04 } |
| 544 | end |
| 545 | |
| 546 | if M.config.cmp then |
| 547 | hi.CmpDocumentationBorder = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 548 | hi.CmpDocumentation = { guifg = M.colors.base05, guibg = M.colors.base00, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm00 } |
| 549 | hi.CmpItemAbbr = { guifg = M.colors.base05, guibg = M.colors.base01, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = M.colors.cterm01 } |
| 550 | hi.CmpItemAbbrDeprecated = { guifg = M.colors.base03, guibg = nil, gui = 'strikethrough', guisp = nil, ctermfg = M.colors.cterm03, ctermbg = nil } |
| 551 | hi.CmpItemAbbrMatch = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 552 | hi.CmpItemAbbrMatchFuzzy = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 553 | hi.CmpItemKindDefault = { guifg = M.colors.base05, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 554 | hi.CmpItemMenu = { guifg = M.colors.base04, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm04, ctermbg = nil } |
| 555 | hi.CmpItemKindKeyword = { guifg = M.colors.base0E, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0E, ctermbg = nil } |
| 556 | hi.CmpItemKindVariable = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 557 | hi.CmpItemKindConstant = { guifg = M.colors.base09, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 558 | hi.CmpItemKindReference = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 559 | hi.CmpItemKindValue = { guifg = M.colors.base09, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm09, ctermbg = nil } |
| 560 | hi.CmpItemKindFunction = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 561 | hi.CmpItemKindMethod = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 562 | hi.CmpItemKindConstructor = { guifg = M.colors.base0D, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0D, ctermbg = nil } |
| 563 | hi.CmpItemKindClass = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 564 | hi.CmpItemKindInterface = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 565 | hi.CmpItemKindStruct = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 566 | hi.CmpItemKindEvent = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 567 | hi.CmpItemKindEnum = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 568 | hi.CmpItemKindUnit = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 569 | hi.CmpItemKindModule = { guifg = M.colors.base05, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 570 | hi.CmpItemKindProperty = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 571 | hi.CmpItemKindField = { guifg = M.colors.base08, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm08, ctermbg = nil } |
| 572 | hi.CmpItemKindTypeParameter = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 573 | hi.CmpItemKindEnumMember = { guifg = M.colors.base0A, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm0A, ctermbg = nil } |
| 574 | hi.CmpItemKindOperator = { guifg = M.colors.base05, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm05, ctermbg = nil } |
| 575 | hi.CmpItemKindSnippet = { guifg = M.colors.base04, guibg = nil, gui = nil, guisp = nil, ctermfg = M.colors.cterm04, ctermbg = nil } |
| 576 | end |
| 577 | |
| 578 | if M.config.illuminate then |
| 579 | hi.IlluminatedWordText = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 580 | hi.IlluminatedWordRead = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 581 | hi.IlluminatedWordWrite = { guifg = nil, guibg = nil, gui = 'underline', guisp = M.colors.base04, ctermfg = nil, ctermbg = nil } |
| 582 | end |
| 583 | |
| 584 | if M.config.lsp_semantic then |
| 585 | hi['@class'] = 'TSType' |
| 586 | hi['@struct'] = 'TSType' |
| 587 | hi['@enum'] = 'TSType' |
| 588 | hi['@enumMember'] = 'Constant' |
| 589 | hi['@event'] = 'Identifier' |
| 590 | hi['@interface'] = 'Structure' |
| 591 | hi['@modifier'] = 'Identifier' |
| 592 | hi['@regexp'] = 'TSStringRegex' |
| 593 | hi['@typeParameter'] = 'Type' |
| 594 | hi['@decorator'] = 'Identifier' |
| 595 | |
| 596 | hi['@lsp.type.namespace'] = '@namespace' |
| 597 | hi['@lsp.type.type'] = '@type' |
| 598 | hi['@lsp.type.class'] = '@type' |
| 599 | hi['@lsp.type.enum'] = '@type' |
| 600 | hi['@lsp.type.interface'] = '@type' |
| 601 | hi['@lsp.type.struct'] = '@type' |
| 602 | hi['@lsp.type.parameter'] = '@parameter' |
| 603 | hi['@lsp.type.variable'] = '@variable' |
| 604 | hi['@lsp.type.property'] = '@property' |
| 605 | hi['@lsp.type.enumMember'] = '@constant' |
| 606 | hi['@lsp.type.function'] = '@function' |
| 607 | hi['@lsp.type.method'] = '@method' |
| 608 | hi['@lsp.type.macro'] = '@function.macro' |
| 609 | hi['@lsp.type.decorator'] = '@function' |
| 610 | end |
| 611 | |
| 612 | if M.config.mini_completion then |
| 613 | hi.MiniCompletionActiveParameter = 'CursorLine' |
| 614 | end |
| 615 | |
| 616 | if M.config.dapui then |
| 617 | hi.DapUINormal = 'Normal' |
| 618 | hi.DapUINormal = "Normal" |
| 619 | hi.DapUIVariable = "Normal" |
| 620 | hi.DapUIScope = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 621 | hi.DapUIType = { guifg = M.colors.base0E, ctermfg = M.colors.cterm0E } |
| 622 | hi.DapUIValue = "Normal" |
| 623 | hi.DapUIModifiedValue = { gui = "bold", guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 624 | hi.DapUIDecoration = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 625 | hi.DapUIThread = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 626 | hi.DapUIStoppedThread = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 627 | hi.DapUIFrameName = "Normal" |
| 628 | hi.DapUISource = { guifg = M.colors.base0E, ctermfg = M.colors.cterm0E } |
| 629 | hi.DapUILineNumber = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 630 | hi.DapUIFloatNormal = "NormalFloat" |
| 631 | hi.DapUIFloatBorder = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 632 | hi.DapUIWatchesEmpty = { guifg = M.colors.base08, ctermfg = M.colors.cterm08 } |
| 633 | hi.DapUIWatchesValue = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 634 | hi.DapUIWatchesError = { guifg = M.colors.base08, ctermfg = M.colors.cterm08 } |
| 635 | hi.DapUIBreakpointsPath = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 636 | hi.DapUIBreakpointsInfo = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 637 | hi.DapUIBreakpointsCurrentLine = { gui = "bold", guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 638 | hi.DapUIBreakpointsLine = "DapUILineNumber" |
| 639 | hi.DapUIBreakpointsDisabledLine = { guifg = M.colors.base02, ctermfg = M.colors.cterm02 } |
| 640 | hi.DapUICurrentFrameName = "DapUIBreakpointsCurrentLine" |
| 641 | hi.DapUIStepOver = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 642 | hi.DapUIStepInto = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 643 | hi.DapUIStepBack = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 644 | hi.DapUIStepOut = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 645 | hi.DapUIStop = { guifg = M.colors.base08, ctermfg = M.colors.cterm08 } |
| 646 | hi.DapUIPlayPause = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 647 | hi.DapUIRestart = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 648 | hi.DapUIUnavailable = { guifg = M.colors.base02, ctermfg = M.colors.cterm02 } |
| 649 | hi.DapUIWinSelect = { gui = "bold", guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 650 | hi.DapUIEndofBuffer = "EndOfBuffer" |
| 651 | hi.DapUINormalNC = "Normal" |
| 652 | hi.DapUIPlayPauseNC = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 653 | hi.DapUIRestartNC = { guifg = M.colors.base0B, ctermfg = M.colors.cterm0B } |
| 654 | hi.DapUIStopNC = { guifg = M.colors.base08, ctermfg = M.colors.cterm08 } |
| 655 | hi.DapUIUnavailableNC = { guifg = M.colors.base02, ctermfg = M.colors.cterm02 } |
| 656 | hi.DapUIStepOverNC = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 657 | hi.DapUIStepIntoNC = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 658 | hi.DapUIStepBackNC = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 659 | hi.DapUIStepOutNC = { guifg = M.colors.base0D, ctermfg = M.colors.cterm0D } |
| 660 | end |
| 661 | |
| 662 | |
| 663 | vim.g.terminal_color_0 = M.colors.base00 |
| 664 | vim.g.terminal_color_1 = M.colors.base08 |
| 665 | vim.g.terminal_color_2 = M.colors.base0B |
| 666 | vim.g.terminal_color_3 = M.colors.base0A |
| 667 | vim.g.terminal_color_4 = M.colors.base0D |
| 668 | vim.g.terminal_color_5 = M.colors.base0E |
| 669 | vim.g.terminal_color_6 = M.colors.base0C |
| 670 | vim.g.terminal_color_7 = M.colors.base05 |
| 671 | vim.g.terminal_color_8 = M.colors.base03 |
| 672 | vim.g.terminal_color_9 = M.colors.base08 |
| 673 | vim.g.terminal_color_10 = M.colors.base0B |
| 674 | vim.g.terminal_color_11 = M.colors.base0A |
| 675 | vim.g.terminal_color_12 = M.colors.base0D |
| 676 | vim.g.terminal_color_13 = M.colors.base0E |
| 677 | vim.g.terminal_color_14 = M.colors.base0C |
| 678 | vim.g.terminal_color_15 = M.colors.base07 |
| 679 | |
| 680 | vim.g.base16_gui00 = M.colors.base00 |
| 681 | vim.g.base16_gui01 = M.colors.base01 |
| 682 | vim.g.base16_gui02 = M.colors.base02 |
| 683 | vim.g.base16_gui03 = M.colors.base03 |
| 684 | vim.g.base16_gui04 = M.colors.base04 |
| 685 | vim.g.base16_gui05 = M.colors.base05 |
| 686 | vim.g.base16_gui06 = M.colors.base06 |
| 687 | vim.g.base16_gui07 = M.colors.base07 |
| 688 | vim.g.base16_gui08 = M.colors.base08 |
| 689 | vim.g.base16_gui09 = M.colors.base09 |
| 690 | vim.g.base16_gui0A = M.colors.base0A |
| 691 | vim.g.base16_gui0B = M.colors.base0B |
| 692 | vim.g.base16_gui0C = M.colors.base0C |
| 693 | vim.g.base16_gui0D = M.colors.base0D |
| 694 | vim.g.base16_gui0E = M.colors.base0E |
| 695 | vim.g.base16_gui0F = M.colors.base0F |
| 696 | end |
| 697 | |
| 698 | function M.available_colorschemes() |
| 699 | return vim.tbl_keys(M.colorschemes) |
| 700 | end |
| 701 | |
| 702 | M.colorschemes = {} |
| 703 | setmetatable(M.colorschemes, { |
| 704 | __index = function(t, key) |
| 705 | t[key] = require(string.format('colors.%s', key)) |
| 706 | return t[key] |
| 707 | end, |
| 708 | }) |
| 709 | |
| 710 | -- #16161D is called eigengrau and is kinda-ish the color your see when you |
| 711 | -- close your eyes. It makes for a really good background. |
| 712 | M.colorschemes['schemer-dark'] = { |
| 713 | base00 = '#16161D', |
| 714 | base01 = '#3e4451', |
| 715 | base02 = '#2c313c', |
| 716 | base03 = '#565c64', |
| 717 | base04 = '#6c7891', |
| 718 | base05 = '#abb2bf', |
| 719 | base06 = '#9a9bb3', |
| 720 | base07 = '#c5c8e6', |
| 721 | base08 = '#e06c75', |
| 722 | base09 = '#d19a66', |
| 723 | base0A = '#e5c07b', |
| 724 | base0B = '#98c379', |
| 725 | base0C = '#56b6c2', |
| 726 | base0D = '#0184bc', |
| 727 | base0E = '#c678dd', |
| 728 | base0F = '#a06949', |
| 729 | } |
| 730 | M.colorschemes['schemer-medium'] = { |
| 731 | base00 = '#212226', |
| 732 | base01 = '#3e4451', |
| 733 | base02 = '#2c313c', |
| 734 | base03 = '#565c64', |
| 735 | base04 = '#6c7891', |
| 736 | base05 = '#abb2bf', |
| 737 | base06 = '#9a9bb3', |
| 738 | base07 = '#c5c8e6', |
| 739 | base08 = '#e06c75', |
| 740 | base09 = '#d19a66', |
| 741 | base0A = '#e5c07b', |
| 742 | base0B = '#98c379', |
| 743 | base0C = '#56b6c2', |
| 744 | base0D = '#0184bc', |
| 745 | base0E = '#c678dd', |
| 746 | base0F = '#a06949', |
| 747 | } |
| 748 | |
| 749 | M.load_from_shell = function() |
| 750 | -- tinted-theming/base16-shell uses XDG_CONFIG_PATH if present. |
| 751 | local config_dir = vim.env.XDG_CONFIG_HOME |
| 752 | if config_dir == nil or config_dir == '' then |
| 753 | config_dir = '~/.config' |
| 754 | end |
| 755 | |
| 756 | local shell_theme_paths = { |
| 757 | -- tinted-theming/base16-shell writes this file |
| 758 | config_dir .. "/tinted-theming/set_theme.lua", |
| 759 | -- chriskempson/base16-shell writes this file |
| 760 | "~/.vimrc_background", |
| 761 | } |
| 762 | |
| 763 | for _, path in pairs(shell_theme_paths) do |
| 764 | local is_readable = vim.fn.filereadable(vim.fn.expand(path)) == 1 |
| 765 | if is_readable then |
| 766 | vim.cmd([[let base16colorspace=256]]) |
| 767 | vim.cmd("source " .. path) |
| 768 | return path |
| 769 | end |
| 770 | end |
| 771 | return false |
| 772 | end |
| 773 | |
| 774 | return M |