diff options
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/colors/jellybeans.vim | 747 |
1 files changed, 747 insertions, 0 deletions
diff --git a/nvim/.config/nvim/colors/jellybeans.vim b/nvim/.config/nvim/colors/jellybeans.vim new file mode 100644 index 0000000..b2a2f2c --- /dev/null +++ b/nvim/.config/nvim/colors/jellybeans.vim | |||
@@ -0,0 +1,747 @@ | |||
1 | " Vim color file | ||
2 | " | ||
3 | " " __ _ _ _ " | ||
4 | " " \ \ ___| | |_ _| |__ ___ __ _ _ __ ___ " | ||
5 | " " \ \/ _ \ | | | | | _ \ / _ \/ _ | _ \/ __| " | ||
6 | " " /\_/ / __/ | | |_| | |_| | __/ |_| | | | \__ \ " | ||
7 | " " \___/ \___|_|_|\__ |____/ \___|\____|_| |_|___/ " | ||
8 | " " \___/ " | ||
9 | " | ||
10 | " "A colorful, dark color scheme for Vim." | ||
11 | " | ||
12 | " File: jellybeans.vim | ||
13 | " URL: github.com/nanotech/jellybeans.vim | ||
14 | " Scripts URL: vim.org/scripts/script.php?script_id=2555 | ||
15 | " Maintainer: NanoTech (nanotech.nanotechcorp.net) | ||
16 | " Version: 1.7 | ||
17 | " Last Change: June 21st, 2019 | ||
18 | " License: MIT | ||
19 | " Contributors: Andrew Wong (w0ng) | ||
20 | " Benjamin R. Haskell (benizi) | ||
21 | " Brian Marshall (bmars) | ||
22 | " Daniel Herbert (pocketninja) | ||
23 | " David Liang <bmdavll at gmail dot com> | ||
24 | " Filipe Silva (ninrod) | ||
25 | " Henry So, Jr. <henryso@panix.com> | ||
26 | " Ihor Kalnytskyi (ikalnytskyi) | ||
27 | " Joe Doherty (docapotamus) | ||
28 | " Karl Litterfeldt (Litterfeldt) | ||
29 | " Keith Pitt (keithpitt) | ||
30 | " Mike Schreifels (schreifels) | ||
31 | " Philipp Rustemeier (12foo) | ||
32 | " Rafael Bicalho (rbika) | ||
33 | " Rich Healey (richo) | ||
34 | " Siwen Yu (yusiwen) | ||
35 | " Tim Willis (willist) | ||
36 | " Tom McLaughlin (tmcoma) | ||
37 | " | ||
38 | " Copyright (c) 2009-2019 NanoTech | ||
39 | " | ||
40 | " Permission is hereby granted, free of charge, to any per‐ | ||
41 | " son obtaining a copy of this software and associated doc‐ | ||
42 | " umentation files (the “Software”), to deal in the Soft‐ | ||
43 | " ware without restriction, including without limitation | ||
44 | " the rights to use, copy, modify, merge, publish, distrib‐ | ||
45 | " ute, sublicense, and/or sell copies of the Software, and | ||
46 | " to permit persons to whom the Software is furnished to do | ||
47 | " so, subject to the following conditions: | ||
48 | " | ||
49 | " The above copyright notice and this permission notice | ||
50 | " shall be included in all copies or substantial portions | ||
51 | " of the Software. | ||
52 | " | ||
53 | " THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY | ||
54 | " KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO | ||
55 | " THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU‐ | ||
56 | " LAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
57 | " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||
58 | " DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CON‐ | ||
59 | " TRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON‐ | ||
60 | " NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
61 | " THE SOFTWARE. | ||
62 | |||
63 | set background=dark | ||
64 | |||
65 | hi clear | ||
66 | |||
67 | if exists("syntax_on") | ||
68 | syntax reset | ||
69 | endif | ||
70 | |||
71 | let colors_name = "jellybeans" | ||
72 | |||
73 | if has("gui_running") || (has('termguicolors') && &termguicolors) | ||
74 | let s:true_color = 1 | ||
75 | else | ||
76 | let s:true_color = 0 | ||
77 | endif | ||
78 | |||
79 | if s:true_color || &t_Co >= 88 | ||
80 | let s:low_color = 0 | ||
81 | else | ||
82 | let s:low_color = 1 | ||
83 | endif | ||
84 | |||
85 | " Configuration Variables: | ||
86 | " - g:jellybeans_overrides (default = {}) | ||
87 | " - g:jellybeans_use_lowcolor_black (default = 0) | ||
88 | " - g:jellybeans_use_gui_italics (default = 1) | ||
89 | " - g:jellybeans_use_term_italics (default = 0) | ||
90 | |||
91 | let s:background_color = "000000" | ||
92 | |||
93 | if exists("g:jellybeans_overrides") | ||
94 | let s:overrides = g:jellybeans_overrides | ||
95 | else | ||
96 | let s:overrides = {} | ||
97 | endif | ||
98 | |||
99 | " Backwards compatibility | ||
100 | if exists("g:jellybeans_background_color") | ||
101 | \ || exists("g:jellybeans_background_color_256") | ||
102 | \ || exists("g:jellybeans_use_term_background_color") | ||
103 | |||
104 | let s:overrides = deepcopy(s:overrides) | ||
105 | |||
106 | if !has_key(s:overrides, "background") | ||
107 | let s:overrides["background"] = {} | ||
108 | endif | ||
109 | |||
110 | if exists("g:jellybeans_background_color") | ||
111 | let s:overrides["background"]["guibg"] = g:jellybeans_background_color | ||
112 | endif | ||
113 | |||
114 | if exists("g:jellybeans_background_color_256") | ||
115 | let s:overrides["background"]["256ctermbg"] = g:jellybeans_background_color_256 | ||
116 | endif | ||
117 | |||
118 | if exists("g:jellybeans_use_term_background_color") | ||
119 | \ && g:jellybeans_use_term_background_color | ||
120 | let s:overrides["background"]["ctermbg"] = "NONE" | ||
121 | let s:overrides["background"]["256ctermbg"] = "NONE" | ||
122 | endif | ||
123 | endif | ||
124 | |||
125 | if exists("g:jellybeans_use_lowcolor_black") && g:jellybeans_use_lowcolor_black | ||
126 | let s:termBlack = "Black" | ||
127 | else | ||
128 | let s:termBlack = "Grey" | ||
129 | endif | ||
130 | |||
131 | " When `termguicolors` is set, Vim[^1] ignores `hi Normal guibg=NONE` | ||
132 | " after Normal's `guibg` is already set to a color. See: | ||
133 | " | ||
134 | " - https://github.com/vim/vim/issues/981 | ||
135 | " - https://github.com/nanotech/jellybeans.vim/issues/64 | ||
136 | " | ||
137 | " To work around this, ensure we don't set the default background | ||
138 | " color before an override changes it to `NONE` by ensuring that the | ||
139 | " background color isn't set to a value different from its override. | ||
140 | " | ||
141 | " [^1]: Tested on 8.0.567. Does not apply to Neovim. | ||
142 | " | ||
143 | if has_key(s:overrides, "background") && has_key(s:overrides["background"], "guibg") | ||
144 | let s:background_color = s:overrides["background"]["guibg"] | ||
145 | endif | ||
146 | |||
147 | " Color approximation functions by Henry So, Jr. and David Liang {{{ | ||
148 | " Added to jellybeans.vim by Daniel Herbert | ||
149 | |||
150 | if &t_Co == 88 | ||
151 | |||
152 | " returns an approximate grey index for the given grey level | ||
153 | fun! s:grey_number(x) | ||
154 | if a:x < 23 | ||
155 | return 0 | ||
156 | elseif a:x < 69 | ||
157 | return 1 | ||
158 | elseif a:x < 103 | ||
159 | return 2 | ||
160 | elseif a:x < 127 | ||
161 | return 3 | ||
162 | elseif a:x < 150 | ||
163 | return 4 | ||
164 | elseif a:x < 173 | ||
165 | return 5 | ||
166 | elseif a:x < 196 | ||
167 | return 6 | ||
168 | elseif a:x < 219 | ||
169 | return 7 | ||
170 | elseif a:x < 243 | ||
171 | return 8 | ||
172 | else | ||
173 | return 9 | ||
174 | endif | ||
175 | endfun | ||
176 | |||
177 | " returns the actual grey level represented by the grey index | ||
178 | fun! s:grey_level(n) | ||
179 | if a:n == 0 | ||
180 | return 0 | ||
181 | elseif a:n == 1 | ||
182 | return 46 | ||
183 | elseif a:n == 2 | ||
184 | return 92 | ||
185 | elseif a:n == 3 | ||
186 | return 115 | ||
187 | elseif a:n == 4 | ||
188 | return 139 | ||
189 | elseif a:n == 5 | ||
190 | return 162 | ||
191 | elseif a:n == 6 | ||
192 | return 185 | ||
193 | elseif a:n == 7 | ||
194 | return 208 | ||
195 | elseif a:n == 8 | ||
196 | return 231 | ||
197 | else | ||
198 | return 255 | ||
199 | endif | ||
200 | endfun | ||
201 | |||
202 | " returns the palette index for the given grey index | ||
203 | fun! s:grey_color(n) | ||
204 | if a:n == 0 | ||
205 | return 16 | ||
206 | elseif a:n == 9 | ||
207 | return 79 | ||
208 | else | ||
209 | return 79 + a:n | ||
210 | endif | ||
211 | endfun | ||
212 | |||
213 | " returns an approximate color index for the given color level | ||
214 | fun! s:rgb_number(x) | ||
215 | if a:x < 69 | ||
216 | return 0 | ||
217 | elseif a:x < 172 | ||
218 | return 1 | ||
219 | elseif a:x < 230 | ||
220 | return 2 | ||
221 | else | ||
222 | return 3 | ||
223 | endif | ||
224 | endfun | ||
225 | |||
226 | " returns the actual color level for the given color index | ||
227 | fun! s:rgb_level(n) | ||
228 | if a:n == 0 | ||
229 | return 0 | ||
230 | elseif a:n == 1 | ||
231 | return 139 | ||
232 | elseif a:n == 2 | ||
233 | return 205 | ||
234 | else | ||
235 | return 255 | ||
236 | endif | ||
237 | endfun | ||
238 | |||
239 | " returns the palette index for the given R/G/B color indices | ||
240 | fun! s:rgb_color(x, y, z) | ||
241 | return 16 + (a:x * 16) + (a:y * 4) + a:z | ||
242 | endfun | ||
243 | |||
244 | else " assuming &t_Co == 256 | ||
245 | |||
246 | " returns an approximate grey index for the given grey level | ||
247 | fun! s:grey_number(x) | ||
248 | if a:x < 14 | ||
249 | return 0 | ||
250 | else | ||
251 | let l:n = (a:x - 8) / 10 | ||
252 | let l:m = (a:x - 8) % 10 | ||
253 | if l:m < 5 | ||
254 | return l:n | ||
255 | else | ||
256 | return l:n + 1 | ||
257 | endif | ||
258 | endif | ||
259 | endfun | ||
260 | |||
261 | " returns the actual grey level represented by the grey index | ||
262 | fun! s:grey_level(n) | ||
263 | if a:n == 0 | ||
264 | return 0 | ||
265 | else | ||
266 | return 8 + (a:n * 10) | ||
267 | endif | ||
268 | endfun | ||
269 | |||
270 | " returns the palette index for the given grey index | ||
271 | fun! s:grey_color(n) | ||
272 | if a:n == 0 | ||
273 | return 16 | ||
274 | elseif a:n == 25 | ||
275 | return 231 | ||
276 | else | ||
277 | return 231 + a:n | ||
278 | endif | ||
279 | endfun | ||
280 | |||
281 | " returns an approximate color index for the given color level | ||
282 | fun! s:rgb_number(x) | ||
283 | if a:x < 75 | ||
284 | return 0 | ||
285 | else | ||
286 | let l:n = (a:x - 55) / 40 | ||
287 | let l:m = (a:x - 55) % 40 | ||
288 | if l:m < 20 | ||
289 | return l:n | ||
290 | else | ||
291 | return l:n + 1 | ||
292 | endif | ||
293 | endif | ||
294 | endfun | ||
295 | |||
296 | " returns the actual color level for the given color index | ||
297 | fun! s:rgb_level(n) | ||
298 | if a:n == 0 | ||
299 | return 0 | ||
300 | else | ||
301 | return 55 + (a:n * 40) | ||
302 | endif | ||
303 | endfun | ||
304 | |||
305 | " returns the palette index for the given R/G/B color indices | ||
306 | fun! s:rgb_color(x, y, z) | ||
307 | return 16 + (a:x * 36) + (a:y * 6) + a:z | ||
308 | endfun | ||
309 | |||
310 | endif | ||
311 | |||
312 | " returns the palette index to approximate the given R/G/B color levels | ||
313 | fun! s:color(r, g, b) | ||
314 | " map greys directly (see xterm's 256colres.pl) | ||
315 | if &t_Co == 256 && a:r == a:g && a:g == a:b && a:r > 3 && a:r < 243 | ||
316 | return (a:r - 8) / 10 + 232 | ||
317 | endif | ||
318 | |||
319 | " get the closest grey | ||
320 | let l:gx = s:grey_number(a:r) | ||
321 | let l:gy = s:grey_number(a:g) | ||
322 | let l:gz = s:grey_number(a:b) | ||
323 | |||
324 | " get the closest color | ||
325 | let l:x = s:rgb_number(a:r) | ||
326 | let l:y = s:rgb_number(a:g) | ||
327 | let l:z = s:rgb_number(a:b) | ||
328 | |||
329 | if l:gx == l:gy && l:gy == l:gz | ||
330 | " there are two possibilities | ||
331 | let l:dgr = s:grey_level(l:gx) - a:r | ||
332 | let l:dgg = s:grey_level(l:gy) - a:g | ||
333 | let l:dgb = s:grey_level(l:gz) - a:b | ||
334 | let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) | ||
335 | let l:dr = s:rgb_level(l:gx) - a:r | ||
336 | let l:dg = s:rgb_level(l:gy) - a:g | ||
337 | let l:db = s:rgb_level(l:gz) - a:b | ||
338 | let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) | ||
339 | if l:dgrey < l:drgb | ||
340 | " use the grey | ||
341 | return s:grey_color(l:gx) | ||
342 | else | ||
343 | " use the color | ||
344 | return s:rgb_color(l:x, l:y, l:z) | ||
345 | endif | ||
346 | else | ||
347 | " only one possibility | ||
348 | return s:rgb_color(l:x, l:y, l:z) | ||
349 | endif | ||
350 | endfun | ||
351 | |||
352 | fun! s:is_empty_or_none(str) | ||
353 | return empty(a:str) || a:str ==? "NONE" | ||
354 | endfun | ||
355 | |||
356 | " returns the palette index to approximate the 'rrggbb' hex string | ||
357 | fun! s:rgb(rgb) | ||
358 | if s:is_empty_or_none(a:rgb) | ||
359 | return "NONE" | ||
360 | endif | ||
361 | let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 | ||
362 | let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 | ||
363 | let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 | ||
364 | return s:color(l:r, l:g, l:b) | ||
365 | endfun | ||
366 | |||
367 | fun! s:prefix_highlight_value_with(prefix, color) | ||
368 | if s:is_empty_or_none(a:color) | ||
369 | return "NONE" | ||
370 | else | ||
371 | return a:prefix . a:color | ||
372 | endif | ||
373 | endfun | ||
374 | |||
375 | fun! s:remove_italic_attr(attr) | ||
376 | let l:attr = join(filter(split(a:attr, ","), "v:val !=? 'italic'"), ",") | ||
377 | if empty(l:attr) | ||
378 | let l:attr = "NONE" | ||
379 | endif | ||
380 | return l:attr | ||
381 | endfun | ||
382 | |||
383 | " sets the highlighting for the given group | ||
384 | fun! s:X(group, fg, bg, attr, lcfg, lcbg) | ||
385 | if s:low_color | ||
386 | let l:cmd = "hi ".a:group. | ||
387 | \ " ctermfg=".s:prefix_highlight_value_with("", a:lcfg). | ||
388 | \ " ctermbg=".s:prefix_highlight_value_with("", a:lcbg) | ||
389 | else | ||
390 | let l:cmd = "hi ".a:group. | ||
391 | \ " guifg=".s:prefix_highlight_value_with("#", a:fg). | ||
392 | \ " guibg=".s:prefix_highlight_value_with("#", a:bg) | ||
393 | if !s:true_color | ||
394 | let l:cmd = l:cmd. | ||
395 | \ " ctermfg=".s:rgb(a:fg). | ||
396 | \ " ctermbg=".s:rgb(a:bg) | ||
397 | endif | ||
398 | endif | ||
399 | |||
400 | let l:attr = s:prefix_highlight_value_with("", a:attr) | ||
401 | |||
402 | if exists("g:jellybeans_use_term_italics") && g:jellybeans_use_term_italics | ||
403 | let l:cterm_attr = l:attr | ||
404 | else | ||
405 | let l:cterm_attr = s:remove_italic_attr(l:attr) | ||
406 | endif | ||
407 | |||
408 | if !exists("g:jellybeans_use_gui_italics") || g:jellybeans_use_gui_italics | ||
409 | let l:gui_attr = l:attr | ||
410 | else | ||
411 | let l:gui_attr = s:remove_italic_attr(l:attr) | ||
412 | endif | ||
413 | |||
414 | let l:cmd = l:cmd." gui=".l:gui_attr." cterm=".l:cterm_attr | ||
415 | exec l:cmd | ||
416 | endfun | ||
417 | " }}} | ||
418 | |||
419 | call s:X("Normal","e8e8d3",s:background_color,"","White","") | ||
420 | set background=dark | ||
421 | |||
422 | call s:X("CursorLine","","1c1c1c","","",s:termBlack) | ||
423 | call s:X("CursorColumn","","1c1c1c","","",s:termBlack) | ||
424 | |||
425 | " Some of Terminal.app's default themes have a cursor color | ||
426 | " too close to Jellybeans' preferred MatchParen background | ||
427 | " color to be easily distinguishable. Other terminals tend | ||
428 | " to use a brighter cursor color. | ||
429 | " | ||
430 | " Use a more distinct color in Terminal.app, and also in | ||
431 | " low-color terminals if the preferred background color is | ||
432 | " not available. | ||
433 | if !has('gui_running') && $TERM_PROGRAM == "Apple_Terminal" | ||
434 | let s:matchParenGuiFg = "dd0093" | ||
435 | let s:matchParenGuiBg = "000000" | ||
436 | else | ||
437 | let s:matchParenGuiFg = "ffffff" | ||
438 | let s:matchParenGuiBg = "556779" | ||
439 | endif | ||
440 | if s:termBlack != "Black" | ||
441 | let s:matchParenTermFg = "Magenta" | ||
442 | let s:matchParenTermBg = "" | ||
443 | else | ||
444 | let s:matchParenTermFg = "" | ||
445 | let s:matchParenTermBg = s:termBlack | ||
446 | endif | ||
447 | call s:X("MatchParen",s:matchParenGuiFg,s:matchParenGuiBg,"bold", | ||
448 | \ s:matchParenTermFg,s:matchParenTermBg) | ||
449 | |||
450 | call s:X("TabLine","000000","b0b8c0","italic","",s:termBlack) | ||
451 | call s:X("TabLineFill","9098a0","","","",s:termBlack) | ||
452 | call s:X("TabLineSel","000000","f0f0f0","italic,bold",s:termBlack,"White") | ||
453 | |||
454 | " Auto-completion | ||
455 | call s:X("Pmenu","ffffff","606060","","White",s:termBlack) | ||
456 | call s:X("PmenuSel","101010","eeeeee","",s:termBlack,"White") | ||
457 | |||
458 | call s:X("Visual","","404040","","",s:termBlack) | ||
459 | call s:X("Cursor",s:background_color,"b0d0f0","","","") | ||
460 | |||
461 | call s:X("LineNr","605958",s:background_color,"NONE",s:termBlack,"") | ||
462 | call s:X("CursorLineNr","ccc5c4","","NONE","White","") | ||
463 | call s:X("Comment","888888","","italic","Grey","") | ||
464 | call s:X("Todo","c7c7c7","","bold","White",s:termBlack) | ||
465 | |||
466 | call s:X("StatusLine","000000","dddddd","italic","","White") | ||
467 | call s:X("StatusLineNC","ffffff","403c41","italic","White","Black") | ||
468 | call s:X("VertSplit","282828","403c41","",s:termBlack,s:termBlack) | ||
469 | call s:X("WildMenu","f0a0c0","302028","","Magenta","") | ||
470 | |||
471 | call s:X("Folded","a0a8b0","384048","italic",s:termBlack,"") | ||
472 | call s:X("FoldColumn","535D66","1f1f1f","","",s:termBlack) | ||
473 | call s:X("SignColumn","777777","333333","","",s:termBlack) | ||
474 | call s:X("ColorColumn","","000000","","",s:termBlack) | ||
475 | |||
476 | call s:X("Title","70b950","","bold","Green","") | ||
477 | |||
478 | call s:X("Constant","cf6a4c","","","Red","") | ||
479 | call s:X("Special","799d6a","","","Green","") | ||
480 | call s:X("Delimiter","668799","","","Grey","") | ||
481 | |||
482 | call s:X("String","99ad6a","","","Green","") | ||
483 | call s:X("StringDelimiter","556633","","","DarkGreen","") | ||
484 | |||
485 | call s:X("Identifier","c6b6ee","","","LightCyan","") | ||
486 | call s:X("Structure","8fbfdc","","","LightCyan","") | ||
487 | call s:X("Function","fad07a","","","Yellow","") | ||
488 | call s:X("Statement","8197bf","","","DarkBlue","") | ||
489 | call s:X("PreProc","8fbfdc","","","LightBlue","") | ||
490 | |||
491 | hi! link Operator Structure | ||
492 | hi! link Conceal Operator | ||
493 | |||
494 | call s:X("Type","ffb964","","","Yellow","") | ||
495 | call s:X("NonText","606060",s:background_color,"",s:termBlack,"") | ||
496 | |||
497 | call s:X("SpecialKey","444444","1c1c1c","",s:termBlack,"") | ||
498 | |||
499 | call s:X("Search","f0a0c0","302028","underline","Magenta","") | ||
500 | |||
501 | call s:X("Directory","dad085","","","Yellow","") | ||
502 | call s:X("ErrorMsg","","c43f53","","","DarkRed") | ||
503 | hi! link Error ErrorMsg | ||
504 | hi! link MoreMsg Special | ||
505 | call s:X("Question","65C254","","","Green","") | ||
506 | |||
507 | |||
508 | " Spell Checking | ||
509 | |||
510 | call s:X("SpellBad","","902020","underline","","DarkRed") | ||
511 | call s:X("SpellCap","","0000df","underline","","Blue") | ||
512 | call s:X("SpellRare","","540063","underline","","DarkMagenta") | ||
513 | call s:X("SpellLocal","","2D7067","underline","","Green") | ||
514 | |||
515 | " Diff | ||
516 | |||
517 | hi! link diffRemoved Constant | ||
518 | hi! link diffAdded String | ||
519 | |||
520 | " VimDiff | ||
521 | |||
522 | call s:X("DiffAdd","D2EBBE","437019","","White","DarkGreen") | ||
523 | call s:X("DiffDelete","40000A","700009","","DarkRed","DarkRed") | ||
524 | call s:X("DiffChange","","2B5B77","","White","DarkBlue") | ||
525 | call s:X("DiffText","8fbfdc","000000","reverse","Yellow","") | ||
526 | |||
527 | " PHP | ||
528 | |||
529 | hi! link phpFunctions Function | ||
530 | call s:X("StorageClass","c59f6f","","","Red","") | ||
531 | hi! link phpSuperglobal Identifier | ||
532 | hi! link phpQuoteSingle StringDelimiter | ||
533 | hi! link phpQuoteDouble StringDelimiter | ||
534 | hi! link phpBoolean Constant | ||
535 | hi! link phpNull Constant | ||
536 | hi! link phpArrayPair Operator | ||
537 | hi! link phpOperator Normal | ||
538 | hi! link phpRelation Normal | ||
539 | hi! link phpVarSelector Identifier | ||
540 | |||
541 | " Python | ||
542 | |||
543 | hi! link pythonOperator Statement | ||
544 | |||
545 | " Ruby | ||
546 | |||
547 | hi! link rubySharpBang Comment | ||
548 | call s:X("rubyClass","447799","","","DarkBlue","") | ||
549 | call s:X("rubyIdentifier","c6b6fe","","","Cyan","") | ||
550 | hi! link rubyConstant Type | ||
551 | hi! link rubyFunction Function | ||
552 | |||
553 | call s:X("rubyInstanceVariable","c6b6fe","","","Cyan","") | ||
554 | call s:X("rubySymbol","7697d6","","","Blue","") | ||
555 | hi! link rubyGlobalVariable rubyInstanceVariable | ||
556 | hi! link rubyModule rubyClass | ||
557 | call s:X("rubyControl","7597c6","","","Blue","") | ||
558 | |||
559 | hi! link rubyString String | ||
560 | hi! link rubyStringDelimiter StringDelimiter | ||
561 | hi! link rubyInterpolationDelimiter Identifier | ||
562 | |||
563 | call s:X("rubyRegexpDelimiter","540063","","","Magenta","") | ||
564 | call s:X("rubyRegexp","dd0093","","","DarkMagenta","") | ||
565 | call s:X("rubyRegexpSpecial","a40073","","","Magenta","") | ||
566 | |||
567 | call s:X("rubyPredefinedIdentifier","de5577","","","Red","") | ||
568 | |||
569 | " Erlang | ||
570 | |||
571 | hi! link erlangAtom rubySymbol | ||
572 | hi! link erlangBIF rubyPredefinedIdentifier | ||
573 | hi! link erlangFunction rubyPredefinedIdentifier | ||
574 | hi! link erlangDirective Statement | ||
575 | hi! link erlangNode Identifier | ||
576 | |||
577 | " Elixir | ||
578 | |||
579 | hi! link elixirAtom rubySymbol | ||
580 | |||
581 | |||
582 | " JavaScript | ||
583 | |||
584 | hi! link javaScriptValue Constant | ||
585 | hi! link javaScriptRegexpString rubyRegexp | ||
586 | hi! link javaScriptTemplateVar StringDelim | ||
587 | hi! link javaScriptTemplateDelim Identifier | ||
588 | hi! link javaScriptTemplateString String | ||
589 | |||
590 | " CoffeeScript | ||
591 | |||
592 | hi! link coffeeRegExp javaScriptRegexpString | ||
593 | |||
594 | " Lua | ||
595 | |||
596 | hi! link luaOperator Conditional | ||
597 | |||
598 | " C | ||
599 | |||
600 | hi! link cFormat Identifier | ||
601 | hi! link cOperator Constant | ||
602 | |||
603 | " Objective-C/Cocoa | ||
604 | |||
605 | hi! link objcClass Type | ||
606 | hi! link cocoaClass objcClass | ||
607 | hi! link objcSubclass objcClass | ||
608 | hi! link objcSuperclass objcClass | ||
609 | hi! link objcDirective rubyClass | ||
610 | hi! link objcStatement Constant | ||
611 | hi! link cocoaFunction Function | ||
612 | hi! link objcMethodName Identifier | ||
613 | hi! link objcMethodArg Normal | ||
614 | hi! link objcMessageName Identifier | ||
615 | |||
616 | " Vimscript | ||
617 | |||
618 | hi! link vimOper Normal | ||
619 | |||
620 | " HTML | ||
621 | |||
622 | hi! link htmlTag Statement | ||
623 | hi! link htmlEndTag htmlTag | ||
624 | hi! link htmlTagName htmlTag | ||
625 | |||
626 | " XML | ||
627 | |||
628 | hi! link xmlTag Statement | ||
629 | hi! link xmlEndTag xmlTag | ||
630 | hi! link xmlTagName xmlTag | ||
631 | hi! link xmlEqual xmlTag | ||
632 | hi! link xmlEntity Special | ||
633 | hi! link xmlEntityPunct xmlEntity | ||
634 | hi! link xmlDocTypeDecl PreProc | ||
635 | hi! link xmlDocTypeKeyword PreProc | ||
636 | hi! link xmlProcessingDelim xmlAttrib | ||
637 | |||
638 | " Debugger.vim | ||
639 | |||
640 | call s:X("DbgCurrent","DEEBFE","345FA8","","White","DarkBlue") | ||
641 | call s:X("DbgBreakPt","","4F0037","","","DarkMagenta") | ||
642 | |||
643 | " vim-indent-guides | ||
644 | |||
645 | if !exists("g:indent_guides_auto_colors") | ||
646 | let g:indent_guides_auto_colors = 0 | ||
647 | endif | ||
648 | call s:X("IndentGuidesOdd","","232323","","","") | ||
649 | call s:X("IndentGuidesEven","","1b1b1b","","","") | ||
650 | |||
651 | " Plugins, etc. | ||
652 | |||
653 | hi! link TagListFileName Directory | ||
654 | call s:X("PreciseJumpTarget","B9ED67","405026","","White","Green") | ||
655 | |||
656 | " Manual overrides for 256-color terminals. Dark colors auto-map badly. | ||
657 | if !s:low_color | ||
658 | hi StatusLineNC ctermbg=235 | ||
659 | hi Folded ctermbg=236 | ||
660 | hi DiffText ctermfg=81 | ||
661 | hi DbgBreakPt ctermbg=53 | ||
662 | hi IndentGuidesOdd ctermbg=235 | ||
663 | hi IndentGuidesEven ctermbg=234 | ||
664 | endif | ||
665 | |||
666 | if !empty("s:overrides") | ||
667 | fun! s:current_attr(group) | ||
668 | let l:synid = synIDtrans(hlID(a:group)) | ||
669 | let l:attrs = [] | ||
670 | for l:attr in ["bold", "italic", "reverse", "standout", "underline", "undercurl"] | ||
671 | if synIDattr(l:synid, l:attr, "gui") == 1 | ||
672 | call add(l:attrs, l:attr) | ||
673 | endif | ||
674 | endfor | ||
675 | return join(l:attrs, ",") | ||
676 | endfun | ||
677 | fun! s:current_color(group, what, mode) | ||
678 | let l:color = synIDattr(synIDtrans(hlID(a:group)), a:what, a:mode) | ||
679 | if l:color == -1 | ||
680 | return "" | ||
681 | else | ||
682 | return substitute(l:color, "^#", "", "") | ||
683 | endif | ||
684 | endfun | ||
685 | fun! s:load_color_def(group, def) | ||
686 | call s:X(a:group, get(a:def, "guifg", s:current_color(a:group, "fg", "gui")), | ||
687 | \ get(a:def, "guibg", s:current_color(a:group, "bg", "gui")), | ||
688 | \ get(a:def, "attr", s:current_attr(a:group)), | ||
689 | \ get(a:def, "ctermfg", s:current_color(a:group, "fg", "cterm")), | ||
690 | \ get(a:def, "ctermbg", s:current_color(a:group, "bg", "cterm"))) | ||
691 | if !s:low_color | ||
692 | for l:prop in ["ctermfg", "ctermbg"] | ||
693 | let l:override_key = "256".l:prop | ||
694 | if has_key(a:def, l:override_key) | ||
695 | exec "hi ".a:group." ".l:prop."=".a:def[l:override_key] | ||
696 | endif | ||
697 | endfor | ||
698 | endif | ||
699 | endfun | ||
700 | fun! s:load_colors(defs) | ||
701 | for [l:group, l:def] in items(a:defs) | ||
702 | if l:group == "background" | ||
703 | call s:load_color_def("LineNr", l:def) | ||
704 | call s:load_color_def("NonText", l:def) | ||
705 | call s:load_color_def("Normal", l:def) | ||
706 | else | ||
707 | call s:load_color_def(l:group, l:def) | ||
708 | endif | ||
709 | unlet l:group | ||
710 | unlet l:def | ||
711 | endfor | ||
712 | endfun | ||
713 | call s:load_colors(s:overrides) | ||
714 | delf s:load_colors | ||
715 | delf s:load_color_def | ||
716 | delf s:current_color | ||
717 | delf s:current_attr | ||
718 | endif | ||
719 | |||
720 | " delete functions {{{ | ||
721 | delf s:X | ||
722 | delf s:remove_italic_attr | ||
723 | delf s:prefix_highlight_value_with | ||
724 | delf s:rgb | ||
725 | delf s:is_empty_or_none | ||
726 | delf s:color | ||
727 | delf s:rgb_color | ||
728 | delf s:rgb_level | ||
729 | delf s:rgb_number | ||
730 | delf s:grey_color | ||
731 | delf s:grey_level | ||
732 | delf s:grey_number | ||
733 | " }}} | ||
734 | |||
735 | " extras | ||
736 | hi NERDTreeHelp guifg=#eeeeee ctermfg=255 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
737 | hi NERDTreeHelpKey guifg=#c9d05c ctermfg=185 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
738 | hi NERDTreeHelpCommand guifg=#ffc24b ctermfg=215 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
739 | hi NERDTreeHelpTitle guifg=#b3deef ctermfg=153 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
740 | hi NERDTreeUp guifg=#c9d05c ctermfg=185 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
741 | hi NERDTreeCWD guifg=#73cef4 ctermfg=81 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
742 | hi NERDTreeOpenable guifg=#f43753 ctermfg=203 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
743 | hi NERDTreeClosable guifg=#ffc24b ctermfg=215 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
744 | hi GitGutterAdd guifg=#c9d05c ctermfg=185 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
745 | hi GitGutterChange guifg=#b3deef ctermfg=153 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
746 | hi GitGutterDelete guifg=#f43753 ctermfg=203 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||
747 | hi GitGutterChangeDelete guifg=#f43753 ctermfg=203 guibg=NONE ctermbg=NONE gui=NONE cterm=NONE | ||