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
98hi! link Constant firstAccent
99hi! link Character Constant
100hi! link Number Constant
101hi! link Boolean Constant
102hi! link Float Constant
103hi! link String Constant
104
105"call s:h("Identifier", {"fg": s:dark_blue})
106hi! link Identifier Normal
107
108"hi! link Statement Normal
109call s:h("Statement", {"fg": s:norm, "cterm": "bold"})
110hi! link Conditonal Statement
111hi! link Repeat Statement
112hi! link Label Statement
113hi! link Operator Noise
114hi! link Keyword Statement
115hi! link Exception Statement
116
117"call s:h("PreProc", {"fg": s:red})
118hi! link PreProc Normal
119hi! link Include Statement
120hi! link Define PreProc
121hi! link Macro PreProc
122hi! link PreCondit PreProc
123
124"call s:h("Type", {"fg": s:purple})
125hi! link Type secondAccent
126hi! link StorageClass Type
127hi! link Structure Noise
128hi! link Typedef Noise
129
130"call s:h("Special", {"fg": s:pink})
131hi! link Special StatusLine
132hi! link SpecialChar Special
133hi! link Tag Special
134hi! link Delimiter Special
135hi! link SpecialComment Special
136hi! link Debug Special
137
138hi! link Conceal NonText
139
140call s:h("Underlined", {"fg": s:norm, "gui": "underline", "cterm": "underline"})
141call s:h("Ignore", {"fg": s:bg})
142call s:h("Error", {"fg": s:red, "cterm": "bold"})
143call s:h("Todo", {"fg": s:actual_white, "bg": s:black, "gui": "bold", "cterm": "bold"})
144call s:h("SpecialKey", {"fg": s:subtle_black})
145call s:h("NonText", {"fg": s:bg_very_subtle})
146call s:h("Directory", {"fg": s:dark_green})
147call s:h("ErrorMsg", {"fg": s:pink})
148call s:h("IncSearch", {"bg": s:selection, "fg": s:black})
149call s:h("Search", {"bg": s:selection, "fg": s:black})
150call s:h("MoreMsg", {"fg": s:medium_gray, "cterm": "bold", "gui": "bold"})
151hi! link ModeMsg MoreMsg
152call s:h("LineNr", {"fg": s:medium_gray})
153call s:h("CursorLineNr", {"fg": s:green, "bg": s:bg_very_subtle})
154call s:h("Question", {"fg": s:red})
155call s:h("VertSplit", {"bg": s:bg, "fg": s:bg_very_subtle})
156call s:h("Title", {"fg": s:dark_green})
157call s:h("Visual", {"bg": s:visual})
158call s:h("VisualNOS", {"bg": s:bg_subtle})
159call s:h("WarningMsg", {"fg": s:warning})
160call s:h("WildMenu", {"fg": s:white, "bg": s:bg})
161call s:h("Folded", {"fg": s:medium_gray})
162call s:h("FoldColumn", {"fg": s:bg_subtle})
163call s:h("DiffAdd", {"fg": s:green})
164call s:h("DiffDelete", {"fg": s:red})
165call s:h("DiffChange", {"fg": s:dark_yellow})
166call s:h("DiffText", {"fg": s:dark_green})
167call s:h("SignColumn", {"fg": s:medium_gray})
168
169if has("gui_running")
170 call s:h("SpellBad", {"gui": "underline", "sp": s:red})
171 call s:h("SpellCap", {"gui": "underline", "sp": s:light_green})
172 call s:h("SpellRare", {"gui": "underline", "sp": s:pink})
173 call s:h("SpellLocal", {"gui": "underline", "sp": s:dark_green})
174else
175 call s:h("SpellBad", {"cterm": "underline", "fg": s:red})
176 call s:h("SpellCap", {"cterm": "underline", "fg": s:light_green})
177 call s:h("SpellRare", {"cterm": "underline", "fg": s:pink})
178 call s:h("SpellLocal", {"cterm": "underline", "fg": s:dark_green})
179endif
180
181""" Help
182hi link helpHyperTextEntry Title
183hi link helpHyperTextJump String
184
185""" StatusLine
186
187call s:h("StatusLine", {"fg": s:status_line})
188call s:h("StatusLineNC", {"fg": s:status_line_nc})
189
190" Those are not standard but are useful to emphasis different parts of the
191" status line.
192call s:h("StatusLineOk", {"gui": "underline", "bg": s:bg, "fg": s:green})
193call s:h("StatusLineError", {"gui": "underline", "bg": s:bg, "fg": s:pink})
194call s:h("StatusLineWarning", {"gui": "underline", "bg": s:bg, "fg": s:warning})
195
196call s:h("Pmenu", {"fg": s:norm, "bg": s:bg_subtle})
197call s:h("PmenuSel", {"fg": s:green, "bg": s:bg_very_subtle, "gui": "bold"})
198call s:h("PmenuSbar", {"fg": s:norm, "bg": s:bg_subtle})
199call s:h("PmenuThumb", {"fg": s:norm, "bg": s:bg_subtle})
200call s:h("TabLine", {"fg": s:norm_subtle, "bg": s:bg})
201call s:h("TabLineSel", {"fg": s:norm, "bg": s:bg, "gui": "bold", "cterm": "bold"})
202call s:h("TabLineFill", {"fg": s:norm_subtle, "bg": s:bg})
203call s:h("CursorColumn", {"bg": s:bg_very_subtle})
204call s:h("CursorLine", {"bg": s:cursor_line})
205call s:h("ColorColumn", {"bg": s:bg_subtle})
206
207call s:h("MatchParen", {"bg": s:bg_very_subtle, "fg": s:norm})
208hi link qfLineNr secondAccent
209hi link qfFileName firstAccent
210
211call s:h("htmlH1", {"fg": s:norm})
212call s:h("htmlH2", {"fg": s:norm})
213call s:h("htmlH3", {"fg": s:norm})
214call s:h("htmlH4", {"fg": s:norm})
215call s:h("htmlH5", {"fg": s:norm})
216call s:h("htmlH6", {"fg": s:norm})
217
218call s:h("htmlBold", {"fg": s:norm})
219call s:h("htmlItalic", {"fg": s:norm})
220call s:h("htmlEndTag", {"fg": s:norm})
221call s:h("htmlTag", {"fg": s:norm})
222call s:h("htmlTagName", {"fg": s:norm})
223call s:h("htmlArg", {"fg": s:norm})
224call s:h("htmlError", {"fg": s:red})
225
226" JavaScript highlighting
227"
228call s:h("javaScript", {"bg": s:bg, "fg": s:norm})
229call s:h("javaScriptBraces", {"bg": s:bg, "fg": s:norm})
230call s:h("javaScriptNumber", {"bg": s:bg, "fg": s:green})
231
232hi link diffRemoved DiffDelete
233hi link diffAdded DiffAdd
234
235hi link TSAnnotation secondAccent
236" unstable for now:
237hi link TSAttribute secondAccent
238hi link TSBoolean Constant
239hi link TSCharacter Constant
240hi link TSComment Comment
241hi link TSConstructor Normal
242hi link TSConditional Statement
243hi link TSConstant Constant
244hi link TSConstBuiltin secondAccent
245hi link TSConstMacro secondAccent
246hi link TSError Error
247hi link TSException Error
248hi link TSField Normal
249hi link TSFloat Constant
250hi link TSFunction Normal
251hi link TSFuncBuiltin secondAccent
252hi link TSFuncMacro secondAccent
253hi link TSInclude Noise
254hi link TSKeyword Statement
255hi link TSKeywordFunction Statement
256hi link TSLabel Noise
257hi link TSMethod Normal
258hi link TSNamespace Noise
259hi link TSNone Noise
260hi link TSNumber Constant
261hi link TSOperator Normal
262hi link TSParameter Noise
263hi link TSParameterReference Statement
264hi link TSProperty TSField
265hi link TSPunctDelimiter Noise
266hi link TSPunctBracket Noise
267hi link TSPunctSpecial Noise
268hi link TSRepeat Normal
269hi link TSString Constant
270hi link TSStringRegex secondAccent
271hi link TSStringEscape secondAccent
272hi link TSTag Statement
273hi link TSTagDelimiter Noise
274hi link TSText Normal
275hi link TSEmphasis Statement
276hi link TSUnderline Underlined
277hi link TSStrike Underlined
278hi link TSTitle Statement
279hi link TSLiteral Noise
280hi link TSURI Constant
281hi link TSType Noise
282hi link TSTypeBuiltin secondAccent
283hi link TSVariable Normal
284hi link TSVariableBuiltin Normal
285hi link TSRepeat Statement
286
287" nvim-lsp diagnostics
288hi link LspDiagnosticsDefaultError Error
289hi link LspDiagnosticsDefaultWarning WarningMsg
290hi link LspDiagnosticsDefaultInformation Noise
291hi link LspDiagnosticsDefaultHint Constant
292
293" Signify, git-gutter
294hi link SignifySignAdd LineNr
295hi link SignifySignDelete LineNr
296hi link SignifySignChange LineNr
297hi link GitGutterAdd LineNr
298hi link GitGutterDelete LineNr
299hi link GitGutterChange LineNr
300hi link GitGutterChangeDelete LineNr
301
302hi link jsFlowTypeKeyword Statement
303hi link jsFlowImportType Statement
304hi link jsFunction Function
305hi link jsGlobalObjects Noise
306hi link jsGlobalNodeObjects Normal
307hi link jsSwitchCase Constant
308
309call s:h("jsSpreadOperator ", {"bg": s:bg, "fg": s:selection})
310hi link jsReturn jsSpreadOperator
311hi link jsExport jsSpreadOperator
312
313call s:h("rustModPath ", {"fg": s:lightest_gray})
314hi link rustMacro secondAccent
315hi link rustKeyword Noise
316hi link rustDerive secondAccent
317hi link rustDeriveTrait secondAccent
318hi link rustAttribute secondAccent
319hi link rustLifetime secondAccent
320
321hi link schemeSyntax Normal
322hi link schemeParentheses Noise
323hi link schemeIdentifier Noise
324
325hi link lispParen Noise
326hi link lispSymbol Noise
327
328hi link shCommandSub secondAccent
329
330hi link cFormat secondAccent
331
332hi link nixBuiltin secondAccent
333hi link nixNamespacedBuiltin secondAccent
334
335hi link sqlSpecial firstAccent
336hi link sqlKeyword secondAccent
337
338hi link helpExample Noise
339hi link helpCommand secondAccent
340hi link helpBacktick secondAccent
341hi link helpSpecial Noise
342
343hi link StorageClass Statement
344
345hi link elmType Type
346
347hi link xmlTag Constant
348hi link xmlTagName xmlTag
349hi link xmlEndTag xmlTag
350hi link xmlAttrib xmlTag
351
352hi link markdownH1 Statement
353hi link markdownH2 Statement
354hi link markdownH3 Statement
355hi link markdownH4 Statement
356hi link markdownH5 Statement
357hi link markdownH6 Statement
358hi link markdownListMarker Constant
359hi link markdownCode Constant
360hi link markdownCodeBlock Constant
361hi link markdownCodeDelimiter Constant
362hi link markdownHeadingDelimiter Constant
363
364call s:h("cssBraces", {"bg": s:bg, "fg": s:selection})
365hi link cssTextProp Noise
366hi link cssTagName Normal
367
368" floatwin
369hi link NormalFloat FloatWin