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": "8" }
14let s:lighter_black = { "gui": "#545454", "cterm": "8" }
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:black, "bg": s:white})
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_very_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
285
286" nvim-lsp diagnostics
287hi link LspDiagnosticsDefaultError Error
288hi link LspDiagnosticsDefaultWarning WarningMsg
289hi link LspDiagnosticsDefaultInformation Noise
290hi link LspDiagnosticsDefaultHint Constant
291
292" Signify, git-gutter
293hi link SignifySignAdd LineNr
294hi link SignifySignDelete LineNr
295hi link SignifySignChange LineNr
296hi link GitGutterAdd LineNr
297hi link GitGutterDelete LineNr
298hi link GitGutterChange LineNr
299hi link GitGutterChangeDelete LineNr
300
301hi link jsFlowTypeKeyword Statement
302hi link jsFlowImportType Statement
303hi link jsFunction Function
304hi link jsGlobalObjects Noise
305hi link jsGlobalNodeObjects Normal
306hi link jsSwitchCase Constant
307
308call s:h("jsSpreadOperator ", {"bg": s:bg, "fg": s:selection})
309hi link jsReturn jsSpreadOperator
310hi link jsExport jsSpreadOperator
311
312call s:h("rustModPath ", {"fg": s:lightest_gray})
313hi link rustMacro secondAccent
314hi link rustKeyword Noise
315hi link rustDerive secondAccent
316hi link rustDeriveTrait secondAccent
317hi link rustAttribute secondAccent
318hi link rustLifetime secondAccent
319
320hi link schemeSyntax Normal
321hi link schemeParentheses Noise
322hi link schemeIdentifier Noise
323
324hi link lispParen Noise
325hi link lispSymbol Noise
326
327hi link shCommandSub secondAccent
328
329hi link cFormat secondAccent
330
331hi link nixBuiltin secondAccent
332hi link nixNamespacedBuiltin secondAccent
333
334hi link sqlSpecial firstAccent
335hi link sqlKeyword secondAccent
336
337hi link helpExample Noise
338hi link helpCommand secondAccent
339hi link helpBacktick secondAccent
340hi link helpSpecial Noise
341
342hi link StorageClass Statement
343
344hi link elmType Type
345
346hi link xmlTag Constant
347hi link xmlTagName xmlTag
348hi link xmlEndTag xmlTag
349hi link xmlAttrib xmlTag
350
351hi link markdownH1 Statement
352hi link markdownH2 Statement
353hi link markdownH3 Statement
354hi link markdownH4 Statement
355hi link markdownH5 Statement
356hi link markdownH6 Statement
357hi link markdownListMarker Constant
358hi link markdownCode Constant
359hi link markdownCodeBlock Constant
360hi link markdownCodeDelimiter Constant
361hi link markdownHeadingDelimiter Constant
362
363call s:h("cssBraces", {"bg": s:bg, "fg": s:selection})
364hi link cssTextProp Noise
365hi link cssTagName Normal
366
367" floatwin
368hi link NormalFloat FloatWin