config/nvim/colors/plain.vim (view raw)
1hi clear
2
3if exists('syntax on')
4 syntax reset
5endif
6
7let g:colors_name='plain'
8
9let s:black = { "gui": "#222222", "cterm": "0" }
10let s:medium_gray = { "gui": "#767676", "cterm": "8" }
11let s:white = { "gui": "#F1F1F1", "cterm": "7" }
12let s:actual_white = { "gui": "#FFFFFF", "cterm": "15" }
13let s:light_black = { "gui": "#424242", "cterm": "11" }
14let s:lighter_black = { "gui": "#545454", "cterm": "12" }
15let s:subtle_black = { "gui": "#303030", "cterm": "11" }
16let s:light_gray = { "gui": "#999999", "cterm": "12" }
17let s:lighter_gray = { "gui": "#CCCCCC", "cterm": "7" }
18let s:lightest_gray = { "gui": "#E5E5E5", "cterm": "13" }
19let s:pink = { "gui": "#FB007A", "cterm": "5" }
20let s:dark_red = { "gui": "#C30771", "cterm": "1" }
21let s:light_red = { "gui": "#E32791", "cterm": "1" }
22let s:orange = { "gui": "#D75F5F", "cterm": "9" }
23let s:darker_blue = { "gui": "#005F87", "cterm": "4" }
24let s:dark_blue = { "gui": "#008EC4", "cterm": "4" }
25let s:blue = { "gui": "#20BBFC", "cterm": "4" }
26let s:light_blue = { "gui": "#B6D6FD", "cterm": "4" }
27let s:dark_cyan = { "gui": "#20A5BA", "cterm": "6" }
28let s:light_cyan = { "gui": "#4FB8CC", "cterm": "6" }
29let s:dark_green = { "gui": "#10A778", "cterm": "6" }
30let s:light_green = { "gui": "#5FD7A7", "cterm": "6" }
31let s:dark_purple = { "gui": "#523C79", "cterm": "5" }
32let s:light_purple = { "gui": "#6855DE", "cterm": "5" }
33let s:light_yellow = { "gui": "#F3E430", "cterm": "3" }
34let s:dark_yellow = { "gui": "#A89C14", "cterm": "3" }
35
36if &background == "dark"
37 let s:bg = s:white
38 let s:bg_subtle = s:lighter_gray
39 let s:bg_very_subtle = s:light_gray
40 let s:norm = s:light_black
41 let s:norm_subtle = s:lighter_black
42 let s:purple = s:dark_purple
43 let s:cyan = s:dark_cyan
44 let s:green = s:dark_green
45 let s:red = s:dark_red
46 let s:yellow = s:dark_yellow
47 let s:visual = s:light_blue
48 let s:cursor_line = s:medium_gray
49 let s:status_line = s:lighter_gray
50 let s:status_line_nc = s:lighter_black
51 let s:constant = s:dark_blue
52 let s:comment = s:light_gray
53 let s:selection = s:light_yellow
54 let s:warning = s:yellow
55else
56 let s:bg = s:black
57 let s:bg_subtle = s:light_black
58 let s:bg_very_subtle = s:subtle_black
59 let s:norm = s:lighter_gray
60 let s:norm_subtle = s:light_gray
61 let s:purple = s:light_purple
62 let s:cyan = s:light_cyan
63 let s:green = s:light_green
64 let s:red = s:light_red
65 let s:yellow = s:light_yellow
66 let s:visual = s:subtle_black
67 let s:cursor_line = s:subtle_black
68 let s:status_line = s:lighter_black
69 let s:status_line_nc = s:subtle_black
70 let s:constant = s:light_green
71 let s:comment = s:lighter_black
72 let s:selection = s:light_purple
73 let s:warning = s:yellow
74endif
75
76" https://github.com/noahfrederick/vim-hemisu/
77function! s:h(group, style)
78 execute "highlight" a:group
79 \ "guifg=" (has_key(a:style, "fg") ? a:style.fg.gui : "NONE")
80 \ "guibg=" (has_key(a:style, "bg") ? a:style.bg.gui : "NONE")
81 \ "guisp=" (has_key(a:style, "sp") ? a:style.sp.gui : "NONE")
82 \ "gui=" (has_key(a:style, "gui") ? a:style.gui : "NONE")
83 \ "ctermfg=" (has_key(a:style, "fg") ? a:style.fg.cterm : "NONE")
84 \ "ctermbg=" (has_key(a:style, "bg") ? a:style.bg.cterm : "NONE")
85 \ "cterm=" (has_key(a:style, "cterm") ? a:style.cterm : "NONE")
86endfunction
87
88call s:h("firstAccent", {"fg": s:cyan})
89call s:h("secondAccent", {"fg": s:purple})
90
91call s:h("Normal", {"fg": s:norm,})
92call s:h("Noise", {"fg": s:norm_subtle})
93call s:h("Cursor", {"bg": s:green, "fg": s:norm})
94call s:h("Comment", {"fg": s:comment, "cterm": "italic"})
95call s:h("Function", {"fg": s:norm, "cterm": "bold"})
96call s:h("FloatWin", {"fg": s:norm, "bg": s:black})
97
98
99hi! link Constant firstAccent
100hi! link Character Constant
101hi! link Number Constant
102hi! link Boolean Constant
103hi! link Float Constant
104hi! link String Constant
105
106"call s:h("Identifier", {"fg": s:dark_blue})
107hi! link Identifier Normal
108
109"hi! link Statement Normal
110call s:h("Statement", {"fg": s:norm, "cterm": "bold"})
111hi! link Conditonal Statement
112hi! link Repeat Statement
113hi! link Label Statement
114hi! link Operator Noise
115hi! link Keyword Statement
116hi! link Exception Statement
117
118"call s:h("PreProc", {"fg": s:red})
119hi! link PreProc Normal
120hi! link Include Statement
121hi! link Define PreProc
122hi! link Macro PreProc
123hi! link PreCondit PreProc
124
125"call s:h("Type", {"fg": s:purple})
126hi! link Type secondAccent
127hi! link StorageClass Type
128hi! link Structure Noise
129hi! link Typedef Noise
130
131"call s:h("Special", {"fg": s:pink})
132hi! link Special StatusLine
133hi! link SpecialChar Special
134hi! link Tag Special
135hi! link Delimiter Special
136hi! link SpecialComment Special
137hi! link Debug Special
138
139hi! link Conceal NonText
140
141call s:h("Underlined", {"fg": s:norm, "gui": "underline", "cterm": "underline"})
142call s:h("Ignore", {"fg": s:bg})
143call s:h("Error", {"fg": s:red, "cterm": "bold"})
144call s:h("Todo", {"fg": s:actual_white, "bg": s:black, "gui": "bold", "cterm": "bold"})
145call s:h("SpecialKey", {"fg": s:subtle_black})
146call s:h("NonText", {"fg": s:bg_very_subtle})
147call s:h("Directory", {"fg": s:dark_green})
148call s:h("ErrorMsg", {"fg": s:pink})
149call s:h("IncSearch", {"bg": s:selection, "fg": s:black})
150call s:h("Search", {"bg": s:selection, "fg": s:black})
151call s:h("MoreMsg", {"fg": s:medium_gray, "cterm": "bold", "gui": "bold"})
152hi! link ModeMsg MoreMsg
153call s:h("LineNr", {"fg": s:medium_gray})
154call s:h("CursorLineNr", {"fg": s:green, "bg": s:bg_very_subtle})
155call s:h("Question", {"fg": s:red})
156call s:h("VertSplit", {"bg": s:bg, "fg": s:bg_very_subtle})
157call s:h("Title", {"fg": s:dark_green})
158call s:h("Visual", {"bg": s:visual})
159call s:h("VisualNOS", {"bg": s:bg_subtle})
160call s:h("WarningMsg", {"fg": s:warning})
161call s:h("WildMenu", {"fg": s:white, "bg": s:bg})
162call s:h("Folded", {"fg": s:medium_gray})
163call s:h("FoldColumn", {"fg": s:bg_subtle})
164call s:h("DiffAdd", {"fg": s:green})
165call s:h("DiffDelete", {"fg": s:red})
166call s:h("DiffChange", {"fg": s:dark_yellow})
167call s:h("DiffText", {"fg": s:dark_green})
168call s:h("SignColumn", {"fg": s:medium_gray})
169
170if has("gui_running")
171 call s:h("SpellBad", {"gui": "underline", "sp": s:red})
172 call s:h("SpellCap", {"gui": "underline", "sp": s:light_green})
173 call s:h("SpellRare", {"gui": "underline", "sp": s:pink})
174 call s:h("SpellLocal", {"gui": "underline", "sp": s:dark_green})
175else
176 call s:h("SpellBad", {"cterm": "underline", "fg": s:red})
177 call s:h("SpellCap", {"cterm": "underline", "fg": s:light_green})
178 call s:h("SpellRare", {"cterm": "underline", "fg": s:pink})
179 call s:h("SpellLocal", {"cterm": "underline", "fg": s:dark_green})
180endif
181
182""" Help
183hi link helpHyperTextEntry Title
184hi link helpHyperTextJump String
185
186""" StatusLine
187
188call s:h("StatusLine", {"fg": s:status_line})
189call s:h("StatusLineNC", {"fg": s:status_line_nc})
190
191" Those are not standard but are useful to emphasis different parts of the
192" status line.
193call s:h("StatusLineOk", {"gui": "underline", "bg": s:bg, "fg": s:green})
194call s:h("StatusLineError", {"gui": "underline", "bg": s:bg, "fg": s:pink})
195call s:h("StatusLineWarning", {"gui": "underline", "bg": s:bg, "fg": s:warning})
196
197call s:h("Pmenu", {"fg": s:norm, "bg": s:bg_subtle})
198call s:h("PmenuSel", {"fg": s:green, "bg": s:bg_very_subtle, "gui": "bold"})
199call s:h("PmenuSbar", {"fg": s:norm, "bg": s:bg_subtle})
200call s:h("PmenuThumb", {"fg": s:norm, "bg": s:bg_subtle})
201call s:h("TabLine", {"fg": s:norm_subtle, "bg": s:bg})
202call s:h("TabLineSel", {"fg": s:norm, "bg": s:bg, "gui": "bold", "cterm": "bold"})
203call s:h("TabLineFill", {"fg": s:norm_subtle, "bg": s:bg})
204call s:h("CursorColumn", {"bg": s:bg_very_subtle})
205call s:h("CursorLine", {"bg": s:cursor_line})
206call s:h("ColorColumn", {"bg": s:bg_subtle})
207
208call s:h("MatchParen", {"bg": s:bg_very_subtle, "fg": s:norm, "cterm": "bold"})
209hi link qfLineNr secondAccent
210hi link qfFileName firstAccent
211
212call s:h("htmlH1", {"fg": s:norm})
213call s:h("htmlH2", {"fg": s:norm})
214call s:h("htmlH3", {"fg": s:norm})
215call s:h("htmlH4", {"fg": s:norm})
216call s:h("htmlH5", {"fg": s:norm})
217call s:h("htmlH6", {"fg": s:norm})
218
219call s:h("htmlBold", {"fg": s:norm})
220call s:h("htmlItalic", {"fg": s:norm})
221call s:h("htmlEndTag", {"fg": s:norm})
222call s:h("htmlTag", {"fg": s:norm})
223call s:h("htmlTagName", {"fg": s:norm})
224call s:h("htmlArg", {"fg": s:norm})
225call s:h("htmlError", {"fg": s:red})
226
227" JavaScript highlighting
228"
229call s:h("javaScript", {"bg": s:bg, "fg": s:norm})
230call s:h("javaScriptBraces", {"bg": s:bg, "fg": s:norm})
231call s:h("javaScriptNumber", {"bg": s:bg, "fg": s:green})
232
233hi link diffRemoved DiffDelete
234hi link diffAdded DiffAdd
235
236hi link TSAnnotation secondAccent
237" unstable for now:
238hi link TSAttribute secondAccent
239hi link TSBoolean Constant
240hi link TSCharacter Constant
241hi link TSComment Comment
242hi link TSConstructor Normal
243hi link TSConditional Statement
244hi link TSConstant Constant
245hi link TSConstBuiltin secondAccent
246hi link TSConstMacro secondAccent
247hi link TSError Error
248hi link TSException Error
249hi link TSField Normal
250hi link TSFloat Constant
251hi link TSFunction Normal
252hi link TSFuncBuiltin secondAccent
253hi link TSFuncMacro secondAccent
254hi link TSInclude Noise
255hi link TSKeyword Statement
256hi link TSKeywordFunction Statement
257hi link TSLabel Noise
258hi link TSMethod Normal
259hi link TSNamespace Noise
260hi link TSNone Noise
261hi link TSNumber Constant
262hi link TSOperator Normal
263hi link TSParameter Noise
264hi link TSParameterReference Statement
265hi link TSProperty TSField
266hi link TSPunctDelimiter Noise
267hi link TSPunctBracket Noise
268hi link TSPunctSpecial Noise
269hi link TSRepeat Normal
270hi link TSString Constant
271hi link TSStringRegex secondAccent
272hi link TSStringEscape secondAccent
273hi link TSTag Statement
274hi link TSTagDelimiter Noise
275hi link TSText Normal
276hi link TSEmphasis Comment
277hi link TSUnderline Underlined
278hi link TSStrike Underlined
279hi link TSTitle Statement
280hi link TSLiteral Noise
281hi link TSURI Constant
282hi link TSType Noise
283hi link TSTypeBuiltin secondAccent
284hi link TSVariable Normal
285hi link TSVariableBuiltin Normal
286hi link TSRepeat Statement
287
288" nvim-lsp diagnostics
289hi link LspDiagnosticsDefaultError Error
290hi link LspDiagnosticsDefaultWarning WarningMsg
291hi link LspDiagnosticsDefaultInformation Noise
292hi link LspDiagnosticsDefaultHint Constant
293
294" Signify, git-gutter
295hi link SignifySignAdd LineNr
296hi link SignifySignDelete LineNr
297hi link SignifySignChange LineNr
298hi link GitGutterAdd LineNr
299hi link GitGutterDelete LineNr
300hi link GitGutterChange LineNr
301hi link GitGutterChangeDelete LineNr
302
303hi link jsFlowTypeKeyword Statement
304hi link jsFlowImportType Statement
305hi link jsFunction Function
306hi link jsGlobalObjects Noise
307hi link jsGlobalNodeObjects Normal
308hi link jsSwitchCase Constant
309
310call s:h("jsSpreadOperator ", {"bg": s:bg, "fg": s:selection})
311hi link jsReturn jsSpreadOperator
312hi link jsExport jsSpreadOperator
313
314call s:h("rustModPath ", {"fg": s:lightest_gray})
315hi link rustMacro secondAccent
316hi link rustKeyword Noise
317hi link rustDerive secondAccent
318hi link rustDeriveTrait secondAccent
319hi link rustAttribute secondAccent
320hi link rustLifetime secondAccent
321
322hi link schemeSyntax Normal
323hi link schemeParentheses Noise
324hi link schemeIdentifier Noise
325
326hi link lispParen Noise
327hi link lispSymbol Noise
328
329hi link shCommandSub secondAccent
330
331hi link cFormat secondAccent
332
333hi link nixBuiltin secondAccent
334hi link nixNamespacedBuiltin secondAccent
335
336hi link sqlSpecial firstAccent
337hi link sqlKeyword secondAccent
338
339hi link helpExample Noise
340hi link helpCommand secondAccent
341hi link helpBacktick secondAccent
342hi link helpSpecial Noise
343
344hi link StorageClass Statement
345
346hi link elmType Type
347
348hi link xmlTag Constant
349hi link xmlTagName xmlTag
350hi link xmlEndTag xmlTag
351hi link xmlAttrib xmlTag
352
353hi link markdownH1 Statement
354hi link markdownH2 Statement
355hi link markdownH3 Statement
356hi link markdownH4 Statement
357hi link markdownH5 Statement
358hi link markdownH6 Statement
359hi link markdownListMarker Constant
360hi link markdownCode Constant
361hi link markdownCodeBlock Constant
362hi link markdownCodeDelimiter Constant
363hi link markdownHeadingDelimiter Constant
364
365call s:h("cssBraces", {"bg": s:bg, "fg": s:selection})
366hi link cssTextProp Noise
367hi link cssTagName Normal
368
369" floatwin
370hi link NormalFloat FloatWin
371hi link CmpItemKind firstAccent
372hi link CmpItemAbbrMatch secondAccent