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