comparison rc/vim-solarized @ 321:8f6885874144

More merges!
author Edho Arief <edho@myconan.net>
date Sun, 18 Mar 2012 05:08:21 +0000
parents c6ad8279b076
children
comparison
equal deleted inserted replaced
313:72c299437fde 321:8f6885874144
1 " Name: Solarized vim colorscheme
2 " Author: Ethan Schoonover <es@ethanschoonover.com>
3 " URL: http://ethanschoonover.com/solarized
4 " (see this url for latest release & screenshots)
5 " License: OSI approved MIT license (see end of this file)
6 " Created: In the middle of the night
7 " Modified: 2011 May 05
8 "
9 " Usage "{{{
10 "
11 " ---------------------------------------------------------------------
12 " ABOUT:
13 " ---------------------------------------------------------------------
14 " Solarized is a carefully designed selective contrast colorscheme with dual
15 " light and dark modes that runs in both GUI, 256 and 16 color modes.
16 "
17 " See the homepage above for screenshots and details.
18 "
19 " ---------------------------------------------------------------------
20 " OPTIONS:
21 " ---------------------------------------------------------------------
22 " See the "solarized.txt" help file included with this colorscheme (in the
23 " "doc" subdirectory) for information on options, usage, the Toggle Background
24 " function and more. If you have already installed Solarized, this is available
25 " from the Solarized menu and command line as ":help solarized"
26 "
27 " ---------------------------------------------------------------------
28 " INSTALLATION:
29 " ---------------------------------------------------------------------
30 " Two options for installation: manual or pathogen
31 "
32 " MANUAL INSTALLATION OPTION:
33 " ---------------------------------------------------------------------
34 "
35 " 1. Download the solarized distribution (available on the homepage above)
36 " and unarchive the file.
37 " 2. Move `solarized.vim` to your `.vim/colors` directory.
38 " 3. Move each of the files in each subdirectories to the corresponding .vim
39 " subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload
40 " directory as .vim/autoload/togglebg.vim).
41 "
42 " RECOMMENDED PATHOGEN INSTALLATION OPTION:
43 " ---------------------------------------------------------------------
44 "
45 " 1. Download and install Tim Pope's Pathogen from:
46 " https://github.com/tpope/vim-pathogen
47 "
48 " 2. Next, move or clone the `vim-colors-solarized` directory so that it is
49 " a subdirectory of the `.vim/bundle` directory.
50 "
51 " a. **clone with git:**
52 "
53 " $ cd ~/.vim/bundle
54 " $ git clone git://github.com/altercation/vim-colors-solarized.git
55 "
56 " b. **or move manually into the pathogen bundle directory:**
57 " In the parent directory of vim-colors-solarized:
58 "
59 " $ mv vim-colors-solarized ~/.vim/bundle/
60 "
61 " MODIFY VIMRC:
62 "
63 " After either Option 1 or Option 2 above, put the following two lines in your
64 " .vimrc:
65 "
66 " syntax enable
67 " set background=dark
68 " colorscheme solarized
69 "
70 " or, for the light background mode of Solarized:
71 "
72 " syntax enable
73 " set background=light
74 " colorscheme solarized
75 "
76 " I like to have a different background in GUI and terminal modes, so I can use
77 " the following if-then. However, I find vim's background autodetection to be
78 " pretty good and, at least with MacVim, I can leave this background value
79 " assignment out entirely and get the same results.
80 "
81 " if has('gui_running')
82 " set background=light
83 " else
84 " set background=dark
85 " endif
86 "
87 " See the Solarized homepage at http://ethanschoonover.com/solarized for
88 " screenshots which will help you select either the light or dark background.
89 "
90 " ---------------------------------------------------------------------
91 " COLOR VALUES
92 " ---------------------------------------------------------------------
93 " Download palettes and files from: http://ethanschoonover.com/solarized
94 "
95 " L\*a\*b values are canonical (White D65, Reference D50), other values are
96 " matched in sRGB space.
97 "
98 " SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB
99 " --------- ------- ---- ------- ----------- ---------- ----------- -----------
100 " base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21
101 " base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26
102 " base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46
103 " base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51
104 " base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59
105 " base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63
106 " base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93
107 " base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99
108 " yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71
109 " orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80
110 " red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86
111 " magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83
112 " violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77
113 " blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82
114 " cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63
115 " green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60
116 "
117 " ---------------------------------------------------------------------
118 " COLORSCHEME HACKING
119 " ---------------------------------------------------------------------
120 "
121 " Useful commands for testing colorschemes:
122 " :source $VIMRUNTIME/syntax/hitest.vim
123 " :help highlight-groups
124 " :help cterm-colors
125 " :help group-name
126 "
127 " Useful links for developing colorschemes:
128 " http://www.vim.org/scripts/script.php?script_id=2937
129 " http://vimcasts.org/episodes/creating-colorschemes-for-vim/
130 " http://www.frexx.de/xterm-256-notes/"
131 "
132 " }}}
133 " Environment Specific Overrides "{{{
134 " Allow or disallow certain features based on current terminal emulator or
135 " environment.
136
137 " Terminals that support italics
138 let s:terms_italic=[
139 \"rxvt",
140 \"gnome-terminal"
141 \]
142 " For reference only, terminals are known to be incomptible.
143 " Terminals that are in neither list need to be tested.
144 let s:terms_noitalic=[
145 \"iTerm.app",
146 \"Apple_Terminal"
147 \]
148 if has("gui_running")
149 let s:terminal_italic=1 " TODO: could refactor to not require this at all
150 else
151 let s:terminal_italic=0 " terminals will be guilty until proven compatible
152 for term in s:terms_italic
153 if $TERM_PROGRAM =~ term
154 let s:terminal_italic=1
155 endif
156 endfor
157 endif
158
159 " }}}
160 " Default option values"{{{
161 " ---------------------------------------------------------------------
162 " s:options_list is used to autogenerate a list of all non-default options
163 " using "call SolarizedOptions()" or with the "Generate .vimrc commands"
164 " Solarized menu option. See the "Menus" section below for the function itself.
165 let s:options_list=[
166 \'" this block of commands has been autogenerated by solarized.vim and',
167 \'" includes the current, non-default Solarized option values.',
168 \'" To use, place these commands in your .vimrc file (replacing any',
169 \'" existing colorscheme commands). See also ":help solarized"',
170 \'',
171 \'" ------------------------------------------------------------------',
172 \'" Solarized Colorscheme Config',
173 \'" ------------------------------------------------------------------',
174 \]
175 let s:colorscheme_list=[
176 \'syntax enable',
177 \'set background='.&background,
178 \'colorscheme solarized',
179 \]
180 let s:defaults_list=[
181 \'" ------------------------------------------------------------------',
182 \'',
183 \'" The following items are available options, but do not need to be',
184 \'" included in your .vimrc as they are currently set to their defaults.',
185 \''
186 \]
187 let s:lazycat_list=[
188 \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"',
189 \'" ------------------------------------------------------------------',
190 \]
191
192 function! s:SetOption(name,default)
193 if type(a:default) == type(0)
194 let l:wrap=''
195 let l:ewrap=''
196 else
197 let l:wrap='"'
198 let l:ewrap='\"'
199 endif
200 if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default
201 exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"'
202 exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")'
203 else
204 exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")'
205 endif
206 endfunction
207
208 if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256)
209 let s:solarized_termtrans_default = 1
210 else
211 let s:solarized_termtrans_default = 0
212 endif
213 call s:SetOption("termtrans",s:solarized_termtrans_default)
214 call s:SetOption("degrade",0)
215 call s:SetOption("bold",1)
216 call s:SetOption("underline",1)
217 call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support
218 call s:SetOption("termcolors",16)
219 call s:SetOption("contrast","normal")
220 call s:SetOption("visibility","normal")
221 call s:SetOption("diffmode","normal")
222 call s:SetOption("hitrail",0)
223 call s:SetOption("menu",1)
224
225 "}}}
226 " Colorscheme initialization "{{{
227 " ---------------------------------------------------------------------
228 hi clear
229 if exists("syntax_on")
230 syntax reset
231 endif
232 let colors_name = "solarized"
233
234 "}}}
235 " GUI & CSApprox hexadecimal palettes"{{{
236 " ---------------------------------------------------------------------
237 "
238 " Set both gui and terminal color values in separate conditional statements
239 " Due to possibility that CSApprox is running (though I suppose we could just
240 " leave the hex values out entirely in that case and include only cterm colors)
241 " We also check to see if user has set solarized (force use of the
242 " neutral gray monotone palette component)
243 if (has("gui_running") && g:solarized_degrade == 0)
244 let s:vmode = "gui"
245 let s:base03 = "#002b36"
246 let s:base02 = "#073642"
247 let s:base01 = "#586e75"
248 let s:base00 = "#657b83"
249 let s:base0 = "#839496"
250 let s:base1 = "#93a1a1"
251 let s:base2 = "#eee8d5"
252 let s:base3 = "#fdf6e3"
253 let s:yellow = "#b58900"
254 let s:orange = "#cb4b16"
255 let s:red = "#dc322f"
256 let s:magenta = "#d33682"
257 let s:violet = "#6c71c4"
258 let s:blue = "#268bd2"
259 let s:cyan = "#2aa198"
260 "let s:green = "#859900" "original
261 let s:green = "#719e07" "experimental
262 elseif (has("gui_running") && g:solarized_degrade == 1)
263 " These colors are identical to the 256 color mode. They may be viewed
264 " while in gui mode via "let g:solarized_degrade=1", though this is not
265 " recommened and is for testing only.
266 let s:vmode = "gui"
267 let s:base03 = "#1c1c1c"
268 let s:base02 = "#262626"
269 let s:base01 = "#4e4e4e"
270 let s:base00 = "#585858"
271 let s:base0 = "#808080"
272 let s:base1 = "#8a8a8a"
273 let s:base2 = "#d7d7af"
274 let s:base3 = "#ffffd7"
275 let s:yellow = "#af8700"
276 let s:orange = "#d75f00"
277 let s:red = "#af0000"
278 let s:magenta = "#af005f"
279 let s:violet = "#5f5faf"
280 let s:blue = "#0087ff"
281 let s:cyan = "#00afaf"
282 let s:green = "#5f8700"
283 elseif g:solarized_termcolors != 256 && &t_Co >= 16
284 let s:vmode = "cterm"
285 let s:base03 = "8"
286 let s:base02 = "0"
287 let s:base01 = "10"
288 let s:base00 = "11"
289 let s:base0 = "12"
290 let s:base1 = "14"
291 let s:base2 = "7"
292 let s:base3 = "15"
293 let s:yellow = "3"
294 let s:orange = "9"
295 let s:red = "1"
296 let s:magenta = "5"
297 let s:violet = "13"
298 let s:blue = "4"
299 let s:cyan = "6"
300 let s:green = "2"
301 elseif g:solarized_termcolors == 256
302 let s:vmode = "cterm"
303 let s:base03 = "234"
304 let s:base02 = "235"
305 let s:base01 = "239"
306 let s:base00 = "240"
307 let s:base0 = "244"
308 let s:base1 = "245"
309 let s:base2 = "187"
310 let s:base3 = "230"
311 let s:yellow = "136"
312 let s:orange = "166"
313 let s:red = "124"
314 let s:magenta = "125"
315 let s:violet = "61"
316 let s:blue = "33"
317 let s:cyan = "37"
318 let s:green = "64"
319 else
320 let s:vmode = "cterm"
321 let s:bright = "* term=bold cterm=bold"
322 " let s:base03 = "0".s:bright
323 " let s:base02 = "0"
324 " let s:base01 = "2".s:bright
325 " let s:base00 = "3".s:bright
326 " let s:base0 = "4".s:bright
327 " let s:base1 = "6".s:bright
328 " let s:base2 = "7"
329 " let s:base3 = "7".s:bright
330 " let s:yellow = "3"
331 " let s:orange = "1".s:bright
332 " let s:red = "1"
333 " let s:magenta = "5"
334 " let s:violet = "5".s:bright
335 " let s:blue = "4"
336 " let s:cyan = "6"
337 " let s:green = "2"
338 let s:base03 = "DarkGray" " 0*
339 let s:base02 = "Black" " 0
340 let s:base01 = "LightGreen" " 2*
341 let s:base00 = "LightYellow" " 3*
342 let s:base0 = "LightBlue" " 4*
343 let s:base1 = "LightCyan" " 6*
344 let s:base2 = "LightGray" " 7
345 let s:base3 = "White" " 7*
346 let s:yellow = "DarkYellow" " 3
347 let s:orange = "LightRed" " 1*
348 let s:red = "DarkRed" " 1
349 let s:magenta = "DarkMagenta" " 5
350 let s:violet = "LightMagenta" " 5*
351 let s:blue = "DarkBlue" " 4
352 let s:cyan = "DarkCyan" " 6
353 let s:green = "DarkGreen" " 2
354
355 endif
356 "}}}
357 " Formatting options and null values for passthrough effect "{{{
358 " ---------------------------------------------------------------------
359 let s:none = "NONE"
360 let s:none = "NONE"
361 let s:t_none = "NONE"
362 let s:n = "NONE"
363 let s:c = ",undercurl"
364 let s:r = ",reverse"
365 let s:s = ",standout"
366 let s:ou = ""
367 let s:ob = ""
368 "}}}
369 " Background value based on termtrans setting "{{{
370 " ---------------------------------------------------------------------
371 if (has("gui_running") || g:solarized_termtrans == 0)
372 let s:back = s:base03
373 else
374 let s:back = "NONE"
375 endif
376 "}}}
377 " Alternate light scheme "{{{
378 " ---------------------------------------------------------------------
379 if &background == "light"
380 let s:temp03 = s:base03
381 let s:temp02 = s:base02
382 let s:temp01 = s:base01
383 let s:temp00 = s:base00
384 let s:base03 = s:base3
385 let s:base02 = s:base2
386 let s:base01 = s:base1
387 let s:base00 = s:base0
388 let s:base0 = s:temp00
389 let s:base1 = s:temp01
390 let s:base2 = s:temp02
391 let s:base3 = s:temp03
392 if (s:back != "NONE")
393 let s:back = s:base03
394 endif
395 endif
396 "}}}
397 " Optional contrast schemes "{{{
398 " ---------------------------------------------------------------------
399 if g:solarized_contrast == "high"
400 let s:base01 = s:base00
401 let s:base00 = s:base0
402 let s:base0 = s:base1
403 let s:base1 = s:base2
404 let s:base2 = s:base3
405 let s:back = s:back
406 endif
407 if g:solarized_contrast == "low"
408 let s:back = s:base02
409 let s:ou = ",underline"
410 endif
411 "}}}
412 " Overrides dependent on user specified values and environment "{{{
413 " ---------------------------------------------------------------------
414 if (g:solarized_bold == 0 || &t_Co == 8 )
415 let s:b = ""
416 let s:bb = ",bold"
417 else
418 let s:b = ",bold"
419 let s:bb = ""
420 endif
421
422 if g:solarized_underline == 0
423 let s:u = ""
424 else
425 let s:u = ",underline"
426 endif
427
428 if g:solarized_italic == 0 || s:terminal_italic == 0
429 let s:i = ""
430 else
431 let s:i = ",italic"
432 endif
433 "}}}
434 " Highlighting primitives"{{{
435 " ---------------------------------------------------------------------
436
437 exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'"
438 exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'"
439 exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'"
440 exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'"
441 exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'"
442 exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'"
443 exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'"
444 exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'"
445 exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'"
446 exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'"
447 exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'"
448 exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'"
449 exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'"
450 exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'"
451 exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'"
452 exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'"
453 exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'"
454 exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'"
455
456 exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'"
457 exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'"
458 exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'"
459 exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'"
460 exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'"
461 exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'"
462 exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'"
463 exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'"
464 exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'"
465 exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'"
466 exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'"
467 exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'"
468 exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'"
469 exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'"
470 exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'"
471 exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'"
472 exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'"
473 exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'"
474
475 exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'"
476 exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
477 exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'"
478 exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
479 exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'"
480 exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'"
481 exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'"
482 exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'"
483 exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'"
484 exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'"
485 exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'"
486 exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'"
487 " revbb (reverse bold for bright colors) is only set to actual bold in low
488 " color terminals (t_co=8, such as OS X Terminal.app) and should only be used
489 " with colors 8-15.
490 exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'"
491 exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'"
492
493 if has("gui_running")
494 exe "let s:sp_none = ' guisp=".s:none ."'"
495 exe "let s:sp_back = ' guisp=".s:back ."'"
496 exe "let s:sp_base03 = ' guisp=".s:base03 ."'"
497 exe "let s:sp_base02 = ' guisp=".s:base02 ."'"
498 exe "let s:sp_base01 = ' guisp=".s:base01 ."'"
499 exe "let s:sp_base00 = ' guisp=".s:base00 ."'"
500 exe "let s:sp_base0 = ' guisp=".s:base0 ."'"
501 exe "let s:sp_base1 = ' guisp=".s:base1 ."'"
502 exe "let s:sp_base2 = ' guisp=".s:base2 ."'"
503 exe "let s:sp_base3 = ' guisp=".s:base3 ."'"
504 exe "let s:sp_green = ' guisp=".s:green ."'"
505 exe "let s:sp_yellow = ' guisp=".s:yellow ."'"
506 exe "let s:sp_orange = ' guisp=".s:orange ."'"
507 exe "let s:sp_red = ' guisp=".s:red ."'"
508 exe "let s:sp_magenta = ' guisp=".s:magenta."'"
509 exe "let s:sp_violet = ' guisp=".s:violet ."'"
510 exe "let s:sp_blue = ' guisp=".s:blue ."'"
511 exe "let s:sp_cyan = ' guisp=".s:cyan ."'"
512 else
513 let s:sp_none = ""
514 let s:sp_back = ""
515 let s:sp_base03 = ""
516 let s:sp_base02 = ""
517 let s:sp_base01 = ""
518 let s:sp_base00 = ""
519 let s:sp_base0 = ""
520 let s:sp_base1 = ""
521 let s:sp_base2 = ""
522 let s:sp_base3 = ""
523 let s:sp_green = ""
524 let s:sp_yellow = ""
525 let s:sp_orange = ""
526 let s:sp_red = ""
527 let s:sp_magenta = ""
528 let s:sp_violet = ""
529 let s:sp_blue = ""
530 let s:sp_cyan = ""
531 endif
532
533 "}}}
534 " Basic highlighting"{{{
535 " ---------------------------------------------------------------------
536 " note that link syntax to avoid duplicate configuration doesn't work with the
537 " exe compiled formats
538
539 exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back
540
541 exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none
542 " *Comment any comment
543
544 exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none
545 " *Constant any constant
546 " String a string constant: "this is a string"
547 " Character a character constant: 'c', '\n'
548 " Number a number constant: 234, 0xff
549 " Boolean a boolean constant: TRUE, false
550 " Float a floating point constant: 2.3e10
551
552 exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none
553 " *Identifier any variable name
554 " Function function name (also: methods for classes)
555 "
556 exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none
557 " *Statement any statement
558 " Conditional if, then, else, endif, switch, etc.
559 " Repeat for, do, while, etc.
560 " Label case, default, etc.
561 " Operator "sizeof", "+", "*", etc.
562 " Keyword any other keyword
563 " Exception try, catch, throw
564
565 exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none
566 " *PreProc generic Preprocessor
567 " Include preprocessor #include
568 " Define preprocessor #define
569 " Macro same as Define
570 " PreCondit preprocessor #if, #else, #endif, etc.
571
572 exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none
573 " *Type int, long, char, etc.
574 " StorageClass static, register, volatile, etc.
575 " Structure struct, union, enum, etc.
576 " Typedef A typedef
577
578 exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none
579 " *Special any special symbol
580 " SpecialChar special character in a constant
581 " Tag you can use CTRL-] on this
582 " Delimiter character that needs attention
583 " SpecialComment special things inside a comment
584 " Debug debugging statements
585
586 exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none
587 " *Underlined text that stands out, HTML links
588
589 exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none
590 " *Ignore left blank, hidden |hl-Ignore|
591
592 exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none
593 " *Error any erroneous construct
594
595 exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none
596 " *Todo anything that needs extra attention; mostly the
597 " keywords TODO FIXME and XXX
598 "
599 "}}}
600 " Extended highlighting "{{{
601 " ---------------------------------------------------------------------
602 if (g:solarized_visibility=="high")
603 exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none
604 exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none
605 elseif (g:solarized_visibility=="low")
606 exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none
607 exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none
608 else
609 exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02
610 exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none
611 endif
612 exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb
613 exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb
614 exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb
615 exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none
616 exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none
617 exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none
618 exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none
619 exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none
620 exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none
621 exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02
622 exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none
623 if ( has("gui_running") || &t_Co > 8 )
624 exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00
625 else
626 exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02
627 endif
628 exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none
629 exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb
630 exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none
631 exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb
632 exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03
633 exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02
634 if (g:solarized_diffmode=="high")
635 exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none
636 exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none
637 exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none
638 exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none
639 elseif (g:solarized_diffmode=="low")
640 exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green
641 exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow
642 exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none
643 exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue
644 else " normal
645 if has("gui_running")
646 exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green
647 exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow
648 exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02
649 exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue
650 else
651 exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green
652 exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow
653 exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02
654 exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue
655 endif
656 endif
657 exe "hi! SignColumn" .s:fmt_none .s:fg_base0
658 exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none
659 exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red
660 exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet
661 exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan
662 exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow
663 exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb
664 exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb
665 exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb
666 exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb
667 exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
668 exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0
669 exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu
670 exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02
671 exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1
672 exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02
673 exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0
674 hi! link lCursor Cursor
675 exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01
676
677 "}}}
678 " vim syntax highlighting "{{{
679 " ---------------------------------------------------------------------
680 "exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital
681 "hi! link vimComment Comment
682 "hi! link vimLineComment Comment
683 hi! link vimVar Identifier
684 hi! link vimFunc Function
685 hi! link vimUserFunc Function
686 hi! link helpSpecial Special
687 hi! link vimSet Normal
688 hi! link vimSetEqual Normal
689 exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none
690 exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none
691 exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none
692 exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none
693 exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none
694 exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none
695 exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none
696 exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none
697 exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none
698 exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none
699 exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none
700 exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none
701 exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none
702 exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none
703 exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none
704 "}}}
705 " diff highlighting "{{{
706 " ---------------------------------------------------------------------
707 hi! link diffAdded Statement
708 hi! link diffLine Identifier
709 "}}}
710 " git & gitcommit highlighting "{{{
711 "git
712 "exe "hi! gitDateHeader"
713 "exe "hi! gitIdentityHeader"
714 "exe "hi! gitIdentityKeyword"
715 "exe "hi! gitNotesHeader"
716 "exe "hi! gitReflogHeader"
717 "exe "hi! gitKeyword"
718 "exe "hi! gitIdentity"
719 "exe "hi! gitEmailDelimiter"
720 "exe "hi! gitEmail"
721 "exe "hi! gitDate"
722 "exe "hi! gitMode"
723 "exe "hi! gitHashAbbrev"
724 "exe "hi! gitHash"
725 "exe "hi! gitReflogMiddle"
726 "exe "hi! gitReference"
727 "exe "hi! gitStage"
728 "exe "hi! gitType"
729 "exe "hi! gitDiffAdded"
730 "exe "hi! gitDiffRemoved"
731 "gitcommit
732 "exe "hi! gitcommitSummary"
733 exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none
734 hi! link gitcommitUntracked gitcommitComment
735 hi! link gitcommitDiscarded gitcommitComment
736 hi! link gitcommitSelected gitcommitComment
737 exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none
738 exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none
739 exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none
740 hi! link gitcommitNoBranch gitcommitBranch
741 exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none
742 exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none
743 "exe "hi! gitcommitUnmergedType"
744 "exe "hi! gitcommitType"
745 "exe "hi! gitcommitNoChanges"
746 "exe "hi! gitcommitHeader"
747 exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none
748 exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none
749 exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none
750 exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none
751 exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none
752 exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none
753 hi! link gitcommitDiscardedArrow gitcommitDiscardedFile
754 hi! link gitcommitSelectedArrow gitcommitSelectedFile
755 hi! link gitcommitUnmergedArrow gitcommitUnmergedFile
756 "exe "hi! gitcommitArrow"
757 "exe "hi! gitcommitOverflow"
758 "exe "hi! gitcommitBlank"
759 " }}}
760 " html highlighting "{{{
761 " ---------------------------------------------------------------------
762 exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none
763 exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none
764 exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none
765 exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none
766 exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none
767 exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none
768 exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none
769 "}}}
770 " perl highlighting "{{{
771 " ---------------------------------------------------------------------
772 exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none
773 exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none
774 exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none
775
776 "}}}
777 " tex highlighting "{{{
778 " ---------------------------------------------------------------------
779 exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none
780 exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none
781 exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
782 exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none
783 exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none
784 "}}}
785 " ruby highlighting "{{{
786 " ---------------------------------------------------------------------
787 exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold
788 "rubyInclude
789 "rubySharpBang
790 "rubyAccess
791 "rubyPredefinedVariable
792 "rubyBoolean
793 "rubyClassVariable
794 "rubyBeginEnd
795 "rubyRepeatModifier
796 "hi! link rubyArrayDelimiter Special " [ , , ]
797 "rubyCurlyBlock { , , }
798
799 "hi! link rubyClass Keyword
800 "hi! link rubyModule Keyword
801 "hi! link rubyKeyword Keyword
802 "hi! link rubyOperator Operator
803 "hi! link rubyIdentifier Identifier
804 "hi! link rubyInstanceVariable Identifier
805 "hi! link rubyGlobalVariable Identifier
806 "hi! link rubyClassVariable Identifier
807 "hi! link rubyConstant Type
808 "}}}
809 " haskell syntax highlighting"{{{
810 " ---------------------------------------------------------------------
811 " For use with syntax/haskell.vim : Haskell Syntax File
812 " http://www.vim.org/scripts/script.php?script_id=3034
813 " See also Steffen Siering's github repository:
814 " http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim
815 " ---------------------------------------------------------------------
816 "
817 " Treat True and False specially, see the plugin referenced above
818 let hs_highlight_boolean=1
819 " highlight delims, see the plugin referenced above
820 let hs_highlight_delimiters=1
821
822 exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none
823
824 exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none
825 exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none
826 exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none
827 exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none
828
829 exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none
830 exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none
831 exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none
832 exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none
833 exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none
834 exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none
835 exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none
836 exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none
837 exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none
838 exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr
839 exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none
840 hi! link hsImportParams Delimiter
841 hi! link hsDelimTypeExport Delimiter
842 hi! link hsModuleStartLabel hsStructure
843 hi! link hsModuleWhereLabel hsModuleStartLabel
844
845 " following is for the haskell-conceal plugin
846 " the first two items don't have an impact, but better safe
847 exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none
848 exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none
849
850 "}}}
851 " pandoc markdown syntax highlighting "{{{
852 " ---------------------------------------------------------------------
853
854 "PandocHiLink pandocNormalBlock
855 exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none
856 exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold
857 exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold
858 exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital
859 exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none
860 hi! link pandocVerbatimBlockDeep pandocVerbatimBlock
861 hi! link pandocCodeBlock pandocVerbatimBlock
862 hi! link pandocCodeBlockDelim pandocVerbatimBlock
863 exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none
864 exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none
865 exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none
866 exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none
867 exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none
868 exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none
869 exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none
870 exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none
871 exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr
872
873 " Definitions
874 " ---------------------------------------------------------------------
875 let s:fg_pdef = s:fg_violet
876 exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none
877 exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd
878 exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold
879 exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital
880 exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi
881 exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold
882 exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
883 exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi
884 exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr
885 exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
886 exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
887 exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none
888
889 " Tables
890 " ---------------------------------------------------------------------
891 let s:fg_ptable = s:fg_blue
892 exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none
893 exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none
894 hi! link pandocTableStructureTop pandocTableStructre
895 hi! link pandocTableStructureEnd pandocTableStructre
896 exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none
897 exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none
898 exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital
899 exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
900 exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold
901 exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
902 exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi
903 exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr
904 exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none
905 exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
906 exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none
907
908 " Headings
909 " ---------------------------------------------------------------------
910 let s:fg_phead = s:fg_orange
911 exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold
912 exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold
913 exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
914 exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
915 exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold
916 exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi
917 exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi
918 exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr
919 exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold
920 exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
921 exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold
922
923 " Links
924 " ---------------------------------------------------------------------
925 exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none
926 exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr
927 exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb
928 exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr
929 exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi
930 exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00
931 exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00
932 exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold
933 exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb
934 exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr
935 exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold
936 exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb
937 exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none
938 exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none
939 exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none
940 exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr
941 exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
942
943 " Main Styles
944 " ---------------------------------------------------------------------
945 exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none
946 exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital
947 exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
948 exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold
949 exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi
950 exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi
951 exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr
952 exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none
953 exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none
954 exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none
955
956 exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold
957 exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold
958 exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold
959 exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none
960 exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr
961 hi! link pandocEscapedCharacter pandocEscapePair
962 hi! link pandocLineBreak pandocEscapePair
963
964 " Embedded Code
965 " ---------------------------------------------------------------------
966 exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none
967 exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none
968 exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none
969 exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold
970 hi! link pandocMetadataTitle pandocMetadata
971
972 "}}}
973 " Utility autocommand "{{{
974 " ---------------------------------------------------------------------
975 " In cases where Solarized is initialized inside a terminal vim session and
976 " then transferred to a gui session via the command `:gui`, the gui vim process
977 " does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui`
978 " related code that sets gui specific values isn't executed.
979 "
980 " Currently, Solarized sets only the cterm or gui values for the colorscheme
981 " depending on gui or terminal mode. It's possible that, if the following
982 " autocommand method is deemed excessively poor form, that approach will be
983 " used again and the autocommand below will be dropped.
984 "
985 " However it seems relatively benign in this case to include the autocommand
986 " here. It fires only in cases where vim is transferring from terminal to gui
987 " mode (detected with the script scope s:vmode variable). It also allows for
988 " other potential terminal customizations that might make gui mode suboptimal.
989 "
990 autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif
991 "}}}
992 " Highlight Trailing Space {{{
993 " Experimental: Different highlight when on cursorline
994 function! s:SolarizedHiTrail()
995 if g:solarized_hitrail==0
996 hi! clear solarizedTrailingSpace
997 else
998 syn match solarizedTrailingSpace "\s*$"
999 exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red
1000 endif
1001 endfunction
1002 augroup SolarizedHiTrail
1003 autocmd!
1004 if g:solarized_hitrail==1
1005 autocmd! Syntax * call s:SolarizedHiTrail()
1006 autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif
1007 endif
1008 augroup END
1009 " }}}
1010 " Menus "{{{
1011 " ---------------------------------------------------------------------
1012 " Turn off Solarized menu by including the following assignment in your .vimrc:
1013 "
1014 " let g:solarized_menu=0
1015
1016 function! s:SolarizedOptions()
1017 new "new buffer
1018 setf vim "vim filetype
1019 let failed = append(0, s:defaults_list)
1020 let failed = append(0, s:colorscheme_list)
1021 let failed = append(0, s:options_list)
1022 let failed = append(0, s:lazycat_list)
1023 0 "jump back to the top
1024 endfunction
1025 if !exists(":SolarizedOptions")
1026 command SolarizedOptions :call s:SolarizedOptions()
1027 endif
1028
1029 function! SolarizedMenu()
1030 if exists("g:loaded_solarized_menu")
1031 try
1032 silent! aunmenu Solarized
1033 endtry
1034 endif
1035 let g:loaded_solarized_menu = 1
1036
1037 if g:colors_name == "solarized" && g:solarized_menu != 0
1038
1039 amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized<CR>
1040 amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized<CR>
1041 amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized<CR>
1042 an &Solarized.&Contrast.-sep- <Nop>
1043 amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast'<CR>
1044
1045 amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized<CR>
1046 amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized<CR>
1047 amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized<CR>
1048 an &Solarized.&Visibility.-sep- <Nop>
1049 amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility'<CR>
1050
1051 amenu &Solarized.&Background.&Toggle\ Background :ToggleBG<CR>
1052 amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized<CR>
1053 amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized<CR>
1054 an &Solarized.&Background.-sep- <Nop>
1055 amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg<CR>
1056
1057 if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif
1058 exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized<CR>"
1059 if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif
1060 exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized<CR>"
1061 if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif
1062 exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized<CR>"
1063
1064 amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized<CR>
1065 amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized<CR>
1066 amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized<CR>
1067
1068 if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif
1069 exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized<CR>"
1070 an &Solarized.&Experimental.-sep- <Nop>
1071 amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail'<CR>
1072
1073 an &Solarized.-sep1- <Nop>
1074
1075 amenu &Solarized.&Autogenerate\ options :SolarizedOptions<CR>
1076
1077 an &Solarized.-sep2- <Nop>
1078
1079 amenu &Solarized.&Help.&Solarized\ Help :help solarized<CR>
1080 amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg<CR>
1081 amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu<CR>
1082
1083 an 9999.77 &Help.&Solarized\ Colorscheme :help solarized<CR>
1084 an 9999.78 &Help.&Toggle\ Background :help togglebg<CR>
1085 an 9999.79 &Help.-sep3- <Nop>
1086
1087 endif
1088 endfunction
1089
1090 autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif
1091
1092 "}}}
1093 " License "{{{
1094 " ---------------------------------------------------------------------
1095 "
1096 " Copyright (c) 2011 Ethan Schoonover
1097 "
1098 " Permission is hereby granted, free of charge, to any person obtaining a copy
1099 " of this software and associated documentation files (the "Software"), to deal
1100 " in the Software without restriction, including without limitation the rights
1101 " to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1102 " copies of the Software, and to permit persons to whom the Software is
1103 " furnished to do so, subject to the following conditions:
1104 "
1105 " The above copyright notice and this permission notice shall be included in
1106 " all copies or substantial portions of the Software.
1107 "
1108 " THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1109 " IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1110 " FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1111 " AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1112 " LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1113 " OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
1114 " THE SOFTWARE.
1115 "
1116 " vim:foldmethod=marker:foldlevel=0
1117 "}}}