dotman 0.0.3 → 0.0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dot +10 -1
  3. data/lib/dotman.rb +1 -0
  4. data/lib/dotman/collect.rb +27 -0
  5. data/lib/dotman/dotfile_collection.rb +8 -0
  6. data/lib/dotman/git.rb +0 -1
  7. data/lib/dotman/version.rb +1 -1
  8. data/spec/data/Timbinous_dotfiles/.bashrc +121 -0
  9. data/spec/data/Timbinous_dotfiles/.gitignore +5 -0
  10. data/spec/data/Timbinous_dotfiles/.tmux.conf +15 -0
  11. data/spec/data/Timbinous_dotfiles/.vim/autoload/pathogen.vim +245 -0
  12. data/spec/data/Timbinous_dotfiles/.vim/bundle/.gitkeep +0 -0
  13. data/spec/data/Timbinous_dotfiles/.vim/colors/Black.vim +16 -0
  14. data/spec/data/Timbinous_dotfiles/.vim/colors/Dark.vim +63 -0
  15. data/spec/data/Timbinous_dotfiles/.vim/colors/autumnleaf.vim +154 -0
  16. data/spec/data/Timbinous_dotfiles/.vim/colors/c.vim +32 -0
  17. data/spec/data/Timbinous_dotfiles/.vim/colors/darkzen.vim +25 -0
  18. data/spec/data/Timbinous_dotfiles/.vim/colors/grb.vim +13 -0
  19. data/spec/data/Timbinous_dotfiles/.vim/colors/grb.vim~ +13 -0
  20. data/spec/data/Timbinous_dotfiles/.vim/colors/grb2.vim +59 -0
  21. data/spec/data/Timbinous_dotfiles/.vim/colors/grb256.vim +32 -0
  22. data/spec/data/Timbinous_dotfiles/.vim/colors/grb3.vim +23 -0
  23. data/spec/data/Timbinous_dotfiles/.vim/colors/grb4.vim +17 -0
  24. data/spec/data/Timbinous_dotfiles/.vim/colors/grblight.vim +15 -0
  25. data/spec/data/Timbinous_dotfiles/.vim/colors/grblight.vim~ +14 -0
  26. data/spec/data/Timbinous_dotfiles/.vim/colors/ir_black.vim +212 -0
  27. data/spec/data/Timbinous_dotfiles/.vim/colors/moria.vim +227 -0
  28. data/spec/data/Timbinous_dotfiles/.vim/colors/pyte.vim +92 -0
  29. data/spec/data/Timbinous_dotfiles/.vim/colors/redstring.vim +26 -0
  30. data/spec/data/Timbinous_dotfiles/.vim/colors/xterm16.vim +811 -0
  31. data/spec/data/Timbinous_dotfiles/.vim/spell/en.utf-8.add +5 -0
  32. data/spec/data/Timbinous_dotfiles/.vim/spell/en.utf-8.add.spl +0 -0
  33. data/spec/data/Timbinous_dotfiles/.vimrc +70 -0
  34. data/spec/data/Timbinous_dotfiles/.zshrc +62 -0
  35. data/spec/data/Timbinous_dotfiles/symlinkify +58 -0
  36. data/spec/data/Timbinous_dotfiles/tim.zsh-theme +29 -0
  37. data/spec/dotman/collect_spec.rb +59 -0
  38. data/spec/integration/dotfile_collection_integration_spec.rb +18 -4
  39. data/spec/integration/git_integration_spec.rb +6 -10
  40. data/spec/integration/user_integration_spec.rb +12 -5
  41. data/spec/spec_helper.rb +9 -1
  42. metadata +63 -2
@@ -0,0 +1,92 @@
1
+
2
+ set background=light
3
+
4
+ hi clear
5
+ if exists("syntax_on")
6
+ syntax reset
7
+ endif
8
+
9
+ let colors_name = "pyte"
10
+
11
+ if version >= 700
12
+ hi CursorLine guibg=#f6f6f6
13
+ hi CursorColumn guibg=#eaeaea
14
+ hi MatchParen guifg=white guibg=#80a090 gui=bold
15
+
16
+ "Tabpages
17
+ hi TabLine guifg=black guibg=#b0b8c0 gui=italic
18
+ hi TabLineFill guifg=#9098a0
19
+ hi TabLineSel guifg=black guibg=#f0f0f0 gui=italic,bold
20
+
21
+ "P-Menu (auto-completion)
22
+ hi Pmenu guifg=white guibg=#808080
23
+ "PmenuSel
24
+ "PmenuSbar
25
+ "PmenuThumb
26
+ endif
27
+ "
28
+ " Html-Titles
29
+ hi Title guifg=#202020 gui=bold
30
+ hi Underlined guifg=#202020 gui=underline
31
+
32
+
33
+ hi Cursor guifg=black guibg=#b0b4b8
34
+ hi lCursor guifg=black guibg=white
35
+ hi LineNr guifg=#ffffff guibg=#c0d0e0
36
+
37
+ hi Normal guifg=#202020 guibg=#f0f0f0
38
+
39
+ hi StatusLine guifg=white guibg=#8090a0 gui=bold,italic
40
+ hi StatusLineNC guifg=#506070 guibg=#a0b0c0 gui=italic
41
+ hi VertSplit guifg=#a0b0c0 guibg=#a0b0c0 gui=NONE
42
+
43
+ hi Folded guifg=#708090 guibg=#c0d0e0
44
+
45
+ hi NonText guifg=#c0c0c0 guibg=#e0e0e0
46
+ " Kommentare
47
+ hi Comment guifg=#a0b0c0 gui=italic
48
+
49
+ " Konstanten
50
+ hi Constant guifg=#a07040
51
+ hi String guifg=#4070a0
52
+ hi Number guifg=#40a070
53
+ hi Float guifg=#70a040
54
+ "hi Statement guifg=#0070e0 gui=NONE
55
+ " Python: def and so on, html: tag-names
56
+ hi Statement guifg=#007020 gui=bold
57
+
58
+
59
+ " HTML: arguments
60
+ hi Type guifg=#e5a00d gui=italic
61
+ " Python: Standard exceptions, True&False
62
+ hi Structure guifg=#007020 gui=italic
63
+ hi Function guifg=#06287e gui=italic
64
+
65
+ hi Identifier guifg=#5b3674 gui=italic
66
+
67
+ hi Repeat guifg=#7fbf58 gui=bold
68
+ hi Conditional guifg=#4c8f2f gui=bold
69
+
70
+ " Cheetah: #-Symbol, function-names
71
+ hi PreProc guifg=#1060a0 gui=NONE
72
+ " Cheetah: def, for and so on, Python: Decorators
73
+ hi Define guifg=#1060a0 gui=bold
74
+
75
+ hi Error guifg=red guibg=white gui=bold,underline
76
+ hi Todo guifg=#a0b0c0 guibg=NONE gui=italic,bold,underline
77
+
78
+ " Python: %(...)s - constructs, encoding
79
+ hi Special guifg=#70a0d0 gui=italic
80
+
81
+ hi Operator guifg=#408010
82
+
83
+ " color of <TAB>s etc...
84
+ hi SpecialKey guifg=#d8a080 guibg=#e8e8e8 gui=italic
85
+
86
+ " Diff
87
+ hi DiffChange guifg=NONE guibg=#e0e0e0 gui=italic,bold
88
+ hi DiffText guifg=NONE guibg=#f0c8c8 gui=italic,bold
89
+ hi DiffAdd guifg=NONE guibg=#c0e0d0 gui=italic,bold
90
+ hi DiffDelete guifg=NONE guibg=#f0e0b0 gui=italic,bold
91
+
92
+
@@ -0,0 +1,26 @@
1
+ " Vim color file
2
+ " Maintainer: Connor Berry <connorberry@yahoo.com>
3
+ " Last Change: 2006/05/25
4
+ " Version: 1.0
5
+
6
+ set background=dark
7
+ highlight clear
8
+ if exists("syntax on")
9
+ syntax reset
10
+ endif
11
+
12
+ let g:colors_name = "redstring"
13
+
14
+ highlight Normal term=none ctermfg=grey cterm=none ctermbg=black guifg=white gui=none guibg=black
15
+ highlight Comment term=none ctermfg=DarkGrey guifg=DarkGrey
16
+ highlight Constant term=none ctermfg=red cterm=none guifg=red gui=none
17
+ highlight Special term=none ctermfg=red cterm=bold guifg=red gui=bold
18
+ highlight Identifier term=none ctermfg=lightgreen cterm=none guifg=lightgreen gui=none
19
+ highlight Statement term=bold ctermfg=cyan cterm=bold guifg=cyan gui=bold
20
+ highlight Operator term=bold ctermfg=cyan cterm=bold guifg=cyan gui=bold
21
+ highlight PreProc term=bold ctermfg=lightgreen cterm=none guifg=green gui=none
22
+ highlight Type term=bold ctermfg=lightgreen cterm=none guifg=lightgreen gui=none
23
+ highlight String term=none ctermfg=red cterm=none guifg=red gui=none
24
+ highlight Number term=none ctermfg=red cterm=none guifg=red gui=none
25
+
26
+ " vim:ts=2:sw=2:et
@@ -0,0 +1,811 @@
1
+ " xterm16-v2.43: Vim color scheme file
2
+ " Maintainer: Gautam Iyer <gautam@math.uchicago.edu>
3
+ " Created: Thu 16 Oct 2003 06:17:47 PM CDT
4
+ " Modified: Tue 12 Sep 2006 11:19:35 AM PDT
5
+ "
6
+ " Adjustable color scheme for GUI/Terminal vim.
7
+
8
+ let s:cpo_save = &cpo
9
+ set cpo&vim " line continuation is used
10
+
11
+ hi clear
12
+
13
+ if exists('syntax_on')
14
+ syntax reset
15
+ endif
16
+ let colors_name = 'xterm16'
17
+
18
+ " {{{1 Local function definitions
19
+ " {{{2 tohex(n): Convert a number to a 2 digit hex
20
+ let s:hex = '0123456789abcdef'
21
+ function s:tohex( n)
22
+ return a:n > 255 ? 'ff' : s:hex[a:n / 16] . s:hex[a:n % 16]
23
+ endfunction
24
+
25
+ " {{{2 extractRGB( string): Extract r,g,b components from string into s:c1,2,3
26
+ function s:extractRGB( string)
27
+ if a:string =~ '^#[0-9a-f]\{6\}$'
28
+ " Colors in hex values
29
+ let s:c1 = '0x' . strpart(a:string, 1, 2)
30
+ let s:c2 = '0x' . strpart(a:string, 3, 2)
31
+ let s:c3 = '0x' . strpart(a:string, 5, 2)
32
+
33
+ elseif a:string =~ '^\d\{3\}$'
34
+ " Colors in cterm values
35
+ let s:c1 = s:guilevel( a:string[0])
36
+ let s:c2 = s:guilevel( a:string[1])
37
+ let s:c3 = s:guilevel( a:string[2])
38
+
39
+ elseif a:string =~ '^[lmh][0-9]\{6\}'
40
+ " Colors in propotions of low / med / high
41
+ if exists('s:'.a:string[0])
42
+ let l:level = s:{a:string[0]}
43
+ let s:c1 = l:level * strpart(a:string, 1, 2) / 50
44
+ let s:c2 = l:level * strpart(a:string, 3, 2) / 50
45
+ let s:c3 = l:level * strpart(a:string, 5, 2) / 50
46
+ else
47
+ throw 'xterm16 Error: Use of propotional intensities before absolute intensities'
48
+ endif
49
+ else
50
+ throw 'xterm16 Error: Brightness / color "'. a:string . '" badly formed.'
51
+ endif
52
+ endfunction
53
+
54
+ " {{{2 guilevel(n) : Get the gui intensity of a given cterm intensity
55
+ function s:guilevel( n)
56
+ return '0x'.s:ccube[2*a:n].s:ccube[2*a:n + 1]
57
+ endfunction
58
+
59
+ " {{{2 ctermlevel(n) : Get the cterm intensity of a given gui intensity
60
+ function s:ctermlevel( n)
61
+ " Xterm color cube intensities: 00, 5f, 87, af, d7, ff
62
+ " Rxvt color cube: 00, 2a, 55, 7f, aa, d4
63
+
64
+ " cinterval should have the terminal intervals.
65
+ let l:terml = 0
66
+ while l:terml < 5
67
+ if a:n < '0x'.s:cinterval[2 * l:terml].s:cinterval[2 * l:terml + 1]
68
+ return l:terml
69
+ endif
70
+
71
+ let l:terml = l:terml + 1
72
+ endwhile
73
+ return 5
74
+ endfunction
75
+
76
+ " {{{2 guicolor( r, g, b): Return the gui color with intensities r,g,b
77
+ function s:guicolor( r, g, b)
78
+ return '#' . s:tohex(a:r) . s:tohex(a:g) . s:tohex(a:b)
79
+ endfunction
80
+
81
+ " {{{2 ctermcolor( r, g, b): Return the xterm-256 color with intensities r, g, b
82
+ function s:ctermcolor( r, g, b)
83
+ if a:r == a:g && a:r == a:b
84
+ " Use the greyscale ramp. The greyscale ramp starts from color 232
85
+ " with grey 8, and procedes in increments of 10 upto grey 238 (0xee)
86
+ if a:r <= 4
87
+ return 16
88
+ elseif a:r <= 243
89
+ return (a:r - 4) / 10 + 232
90
+ else
91
+ " Let's check if the last color in ccube is large enough.
92
+ " return (s:termtype == 'xterm' && a:r > 247) ? 231 : 255
93
+ let l:l5 = s:guilevel(5)
94
+ return ( l:l5 > 0xee && a:r > (l:l5 + 0xee)/2 ) ? 231 : 255
95
+ endif
96
+ else
97
+ " Use the rgb cube.
98
+ return s:ctermlevel(a:r) * 36 + s:ctermlevel(a:g) * 6 + s:ctermlevel(a:b) + 16
99
+ endif
100
+ endfunction
101
+
102
+ " {{{2 setcolor( name, r, g, b): Set the script variables gui_name and cterm_name
103
+ function s:setcolor( name, r, g, b)
104
+ if exists('g:xterm16_'.a:name)
105
+ " Use user-defined color settings (from global variable)
106
+ call s:extractRGB( g:xterm16_{a:name})
107
+
108
+ let s:gui_{a:name} = s:guicolor( s:c1, s:c2, s:c3)
109
+ let s:cterm_{a:name} = s:ctermcolor( s:c1, s:c2, s:c3)
110
+ else
111
+ " Set the GUI / cterm color from r,g,b
112
+ let s:gui_{a:name} = s:guicolor( a:r, a:g, a:b)
113
+ let s:cterm_{a:name} = ( &t_Co == 256 || has('gui_running') )
114
+ \ ? s:ctermcolor( a:r, a:g, a:b) : a:name
115
+ endif
116
+
117
+ " Add the color to palette
118
+ let g:xterm16_palette = g:xterm16_palette . "\n" . s:gui_{a:name} . ', cterm ' . s:cterm_{a:name} . ' : ' . a:name
119
+ endfunction
120
+
121
+ " {{{2 getcolor( group, globalvar, colorname): if globvar exists, returns that
122
+ " color. if not returns the color in cname
123
+ function s:getcolor( globvar, cname)
124
+ " hopefully someone set ctype before getting here. ctype should either be
125
+ " "gui" or "cterm"
126
+
127
+ if exists( a:globvar)
128
+ if exists( 's:'.s:ctype.'_'.{a:globvar})
129
+ return s:{s:ctype}_{{a:globvar}}
130
+ else
131
+ call s:extractRGB( {a:globvar})
132
+ return s:{s:ctype}color( s:c1, s:c2, s:c3)
133
+ endif
134
+ else
135
+ return s:{s:ctype}_{a:cname}
136
+ endif
137
+ endfunction
138
+
139
+ " {{{2 use_guiattr( nattrs, n ): Should s:hi use the n'th attr for GUI hl.
140
+ function s:use_guiattr( nattrs, n )
141
+ " If guisp is specified in vim6, then don't use any GUI attributes.
142
+ " Otherwise use GUI attributes if GUI is running and they are specified.
143
+ if !has('gui_running') ||
144
+ \ a:nattrs < a:n ||
145
+ \ ( v:version < 700 && a:nattrs >= 4 )
146
+ " Don't use GUI attributes
147
+ return 0
148
+ else
149
+ " Use GUI attributes
150
+ return 1
151
+ endif
152
+ endfunction
153
+
154
+ " {{{2 hi( group, attr, fg, bg): Set the gui/cterm highlighting groups
155
+ "
156
+ " group - groupname.
157
+ " attr - attributes.
158
+ " fg/bg color name.
159
+ "
160
+ " Optionally can call it as
161
+ "
162
+ " hi( group, attr, fg, bg, guiattr, guifg, guibg, guisp )
163
+ "
164
+ " where all the gui options are optional. If provided, they override the term
165
+ " colors.
166
+ function s:hi( group, attr, fg, bg, ...)
167
+ if has('gui_running') || &t_Co == 256
168
+ " For gui's and 256 color terminals
169
+ let l:fg = s:getcolor( 'g:xterm16fg_'.a:group,
170
+ \ s:use_guiattr( a:0, 2) ? a:2 : a:fg)
171
+ let l:bg = s:getcolor( 'g:xterm16bg_'.a:group,
172
+ \ s:use_guiattr( a:0, 3) ? a:3 : a:bg)
173
+
174
+ if exists('g:xterm16attr_' . a:group)
175
+ let l:attr = g:xterm16attr_{a:group}
176
+ else
177
+ let l:attr = s:use_guiattr( a:0, 1) ? a:1 : a:attr
178
+ endif
179
+
180
+ exec 'hi' a:group
181
+ \ s:ctype.'='.l:attr
182
+ \ s:ctype.'fg='.l:fg
183
+ \ s:ctype.'bg='.l:bg
184
+
185
+ " Define guisp if specified for the gui (Vim7 upwards only).
186
+ if v:version >= 700 && has('gui_running') && a:0 >= 4
187
+ let l:sp = s:getcolor( 'g:xterm16sp_'.a:group, a:4 )
188
+ exec 'hi' a:group s:ctype.'sp='.l:sp
189
+ endif
190
+ else
191
+ " for consoles / 16 color junkies
192
+ exec 'hi' a:group 'cterm='.a:attr 'ctermfg='.a:fg 'ctermbg='.a:bg
193
+ endif
194
+ endfunction
195
+
196
+ " {{{2 set_brightness( default): Set s:brightness based on default
197
+ function s:set_brightness( default)
198
+ let s:brightness = ( exists('g:xterm16_brightness')
199
+ \ && g:xterm16_brightness != 'default') ?
200
+ \ g:xterm16_brightness : a:default
201
+ if s:colormap == 'allblue'
202
+ if s:brightness == 'high'
203
+ let s:brightness = '#afafff' " 335
204
+ elseif s:brightness == 'med'
205
+ let s:brightness = '#8787d7' " 224
206
+ elseif s:brightness == 'low'
207
+ let s:brightness = '#5f5faf' " 113
208
+ endif
209
+ elseif s:colormap == 'softlight'
210
+ if s:brightness == 'high'
211
+ let s:brightness = '#ff87af' " 523
212
+ elseif s:brightness == 'med'
213
+ let s:brightness = '#d75f87' " 412
214
+ elseif s:brightness == 'low'
215
+ let s:brightness = '#af5f87' " 312
216
+ endif
217
+ else
218
+ if s:brightness == 'high'
219
+ let s:brightness = '#afd7ff' " 345
220
+ elseif s:brightness == 'med'
221
+ let s:brightness = '#87afd7' " 234
222
+ elseif s:brightness == 'low'
223
+ let s:brightness = '#5f87af' " 123
224
+ endif
225
+ endif
226
+ endfunction
227
+
228
+ " {{{1 Global functions and initialisations.
229
+ command! -nargs=* Brightness
230
+ \ if Brightness(<f-args>) <bar>
231
+ \ colo xterm16 <bar>
232
+ \ endif
233
+
234
+ " {{{2 Brightness( brightness, colormap)
235
+ function! Brightness(...)
236
+ if a:0 == 0
237
+ echo "Brightness: ".s:brightness.", Colormap: ".s:colormap
238
+ return 0
239
+ elseif a:0 > 2
240
+ echoerr 'Too many arguements.'
241
+ return 0
242
+ endif
243
+
244
+ let g:xterm16_brightness = a:1
245
+ if a:0 == 2
246
+ let g:xterm16_colormap = a:2
247
+ endif
248
+
249
+ return 1
250
+ endfunction
251
+ " }}}1
252
+
253
+ try
254
+ " {{{1 Setup defaults
255
+ " {{{2 set ctype (to cterm / gui) to be the color type
256
+ let s:ctype = has('gui_running') ? 'gui' : 'cterm'
257
+ " {{{2 Obtain intensity levels of the 6 terminal colors in s:ccube
258
+ " The 2ith and 2i+1th charecters in ccube are the hex digits of the
259
+ " intensity of the ith (0-5) term level. xterm and rxvt set up the default
260
+ " color cube differently, so we have to consider them separately.
261
+
262
+ " First check for a user specified color cube.
263
+ if exists('g:xterm16_ccube')
264
+ let s:ccube = g:xterm16_ccube
265
+
266
+ " No user specified color cube given. Try and guess from xterm16_termtype
267
+ elseif ( exists('g:xterm16_termtype') && g:xterm16_termtype == 'rxvt') ||
268
+ \ ( !exists('g:xterm16_termtype')
269
+ \ && &term =~ '^rxvt'
270
+ \ && $MRXVT_TABTITLE == "" )
271
+ " color cube for "rxvt". Make sure we're not running mrxvt (by
272
+ " checking that the MRXVT_TABTITLE variable is empty).
273
+ let s:ccube = "002a557faad4"
274
+ else
275
+ " default to xterm if nothing else is specified.
276
+ let s:ccube ="005f87afd7ff"
277
+ endif
278
+
279
+ " s:cinterval will be the intervals of intensities which get mapped to
280
+ " term color i. i.e. colors between 0 -- cinterval(0) have level 0.
281
+ " between cinterval(0) -- cinterval(1) have level 1, etc. max level is 5,
282
+ " so anything higher than cinterval(4) has level 5.
283
+ let s:cinterval = ""
284
+ let s:lower = "00"
285
+ let s:i = 1
286
+ while s:i < 6
287
+ let s:upper = s:ccube[2*s:i] . s:ccube[2*s:i + 1]
288
+ let s:cinterval = s:cinterval . s:tohex( (('0x'.s:lower) + ('0x'.s:upper))/2 )
289
+ let s:lower = s:upper
290
+ let s:i = s:i + 1
291
+ endwhile
292
+
293
+ " {{{2 Get colormap defaults in "s:colormap"
294
+ " On a terminal (without 256 colors), use "standard" colormap. Otherwise
295
+ " use value from "g:xterm16_colormap" if exists, or "soft" as default.
296
+ if !has('gui_running') && &t_Co != 256
297
+ let s:colormap = 'standard'
298
+ elseif exists('g:xterm16_colormap')
299
+ let s:colormap = g:xterm16_colormap
300
+ else
301
+ " "soft" used to be the default, but "allblue" is much better.
302
+ let s:colormap = 'allblue'
303
+ endif
304
+
305
+ " {{{2 Redefine a few colors for CRT monitors and set brightness
306
+ if s:colormap == 'allblue'
307
+ call s:set_brightness( '#8787d7' ) " 224
308
+ elseif s:colormap == 'softlight'
309
+ call s:set_brightness( '#d75f87' ) " 412
310
+ elseif exists('g:xterm16_CRTColors')
311
+ " "standard" or "soft" colormaps
312
+ if s:colormap == 'standard'
313
+ let g:xterm16_darkblue = 'h000050'
314
+ let g:xterm16_blue = 'h002550'
315
+ let g:xterm16_grey = 'm474747'
316
+
317
+ unlet! g:xterm16_skyblue g:xterm16_green g:xterm16_bluegreen
318
+
319
+ " give the original xterm16 feel
320
+ call s:set_brightness( '#80cdff')
321
+ else
322
+ " "soft" colormap
323
+ let g:xterm16_skyblue = 'h003850'
324
+ let g:xterm16_green = 'm315000'
325
+ let g:xterm16_bluegreen = 'm005031'
326
+
327
+ unlet! g:xterm16_darkblue g:xterm16_blue g:xterm16_grey
328
+
329
+ " call s:set_brightness ( '245')
330
+ " call s:set_brightness('high')
331
+ call s:set_brightness('#87d7ff') " 245
332
+ endif
333
+ else
334
+ " "standard" or "soft" colormaps with LCD colors
335
+ call s:set_brightness( '#5fafd7') " 134
336
+ endif
337
+
338
+ unlet! s:c1 s:c2 s:c3
339
+ call s:extractRGB(s:brightness)
340
+ let s:l = s:c1
341
+ let s:m = s:c2
342
+ let s:h = s:c3
343
+
344
+ " {{{2 Set a bright green cursor on all colormaps except softlight
345
+ if !exists('g:xterm16bg_Cursor')
346
+ if s:colormap == 'softlight'
347
+ let g:xterm16fg_Cursor = '#ffffff'
348
+ else
349
+ let g:xterm16bg_Cursor = '#00ff00'
350
+ endif
351
+ endif
352
+
353
+ " {{{2 Set the current pallete:
354
+ let g:xterm16_palette = 'Current palette (Brightness: '.s:brightness. ', Colormap: '.s:colormap.')'
355
+
356
+ " {{{1 Define colors and highlighting groups based on "s:colormap"
357
+ let s:cterm_none = 'NONE'
358
+ let s:gui_none = 'NONE'
359
+
360
+ " Set the background based on the colormap. 'softlight' is the only
361
+ " colormap with a light background
362
+ if s:colormap == 'softlight'
363
+ set bg=light
364
+ else
365
+ set bg=dark
366
+ endif
367
+
368
+ if s:colormap == 'standard'
369
+ " {{{2 Original colormap. 8 standard colors, and 8 brighter ones.
370
+ call s:setcolor( 'black', 0 , 0 , 0 )
371
+ call s:setcolor( 'darkred', s:m , 0 , 0 )
372
+ call s:setcolor( 'darkgreen', 0 , s:m , 0 )
373
+ call s:setcolor( 'darkyellow', s:m , s:m , 0 )
374
+ call s:setcolor( 'darkblue', 0 , 0 , s:m )
375
+ call s:setcolor( 'darkmagenta', s:m , 0 , s:m )
376
+ call s:setcolor( 'darkcyan', 0 , s:m , s:m )
377
+ call s:setcolor( 'grey', s:m*44/50, s:m*44/50, s:m*44/50)
378
+
379
+ call s:setcolor( 'darkgrey', s:l , s:l , s:l )
380
+ call s:setcolor( 'red', s:h , 0 , 0 )
381
+ call s:setcolor( 'green', 0 , s:h , 0 )
382
+ call s:setcolor( 'yellow', s:h , s:h , 0 )
383
+ call s:setcolor( 'blue', 0 , 0 , s:h )
384
+ call s:setcolor( 'magenta', s:h , 0 , s:h )
385
+ call s:setcolor( 'cyan', 0 , s:h , s:h )
386
+ call s:setcolor( 'white', s:h , s:h , s:h )
387
+
388
+ " {{{2 Highlighting groups for standard colors
389
+ call s:hi( 'Normal' , 'none' , 'grey' , 'black' )
390
+
391
+ call s:hi( 'Cursor' , 'none' , 'black' , 'green' )
392
+ call s:hi( 'CursorColumn', 'none' , 'none' , 'darkgrey' )
393
+ call s:hi( 'CursorLine' , 'none' , 'none' , 'darkgrey' )
394
+ call s:hi( 'DiffAdd' , 'none' , 'darkblue' , 'darkgreen' )
395
+ call s:hi( 'DiffChange' , 'none' , 'black' , 'darkyellow')
396
+ call s:hi( 'DiffDelete' , 'none' , 'darkblue' , 'none' )
397
+ call s:hi( 'DiffText' , 'none' , 'darkred' , 'darkyellow')
398
+ call s:hi( 'Directory' , 'none' , 'cyan' , 'none' )
399
+ call s:hi( 'ErrorMsg' , 'none' , 'white' , 'darkred' )
400
+ call s:hi( 'FoldColumn' , 'none' , 'yellow' , 'darkblue' )
401
+ call s:hi( 'Folded' , 'none' , 'yellow' , 'darkblue' )
402
+ call s:hi( 'IncSearch' , 'none' , 'grey' , 'darkblue' )
403
+ call s:hi( 'LineNr' , 'none' , 'yellow' , 'none' )
404
+ call s:hi( 'MatchParen' , 'bold' , 'none' , 'none' )
405
+ call s:hi( 'MoreMsg' , 'bold' , 'green' , 'none' )
406
+ call s:hi( 'NonText' , 'none' , 'blue' , 'none' )
407
+ call s:hi( 'Pmenu' , 'none' , 'black' , 'grey' )
408
+ call s:hi( 'PmenuSel' , 'none' , 'none' , 'darkblue' )
409
+ call s:hi( 'PmenuSbar' , 'none' , 'none' , 'darkgrey' )
410
+ call s:hi( 'PmenuThumb' , 'none' , 'none' , 'white' )
411
+ call s:hi( 'Question' , 'none' , 'green' , 'none' )
412
+ call s:hi( 'Search' , 'none' , 'black' , 'darkcyan' )
413
+ call s:hi( 'SignColumn' , 'none' , 'darkmagenta', 'darkgrey' )
414
+ call s:hi( 'SpecialKey' , 'none' , 'blue' , 'none' )
415
+ call s:hi( 'StatusLine' , 'none' , 'darkblue' , 'grey' )
416
+ call s:hi( 'StatusLineNC', 'reverse', 'none' , 'none' )
417
+ call s:hi( 'TabLineFill' , 'none' , 'black' , 'darkgrey' )
418
+ call s:hi( 'TabLine' , 'none' , 'black' , 'darkgrey' )
419
+ call s:hi( 'TabLineSel' , 'bold' , 'none' , 'none' )
420
+ call s:hi( 'Title' , 'none' , 'magenta' , 'none' )
421
+ call s:hi( 'Visual' , 'none' , 'none' , 'darkblue' )
422
+ call s:hi( 'VisualNOS' , 'none' , 'none' , 'darkgrey' )
423
+ call s:hi( 'WarningMsg' , 'bold' , 'red' , 'none' )
424
+ call s:hi( 'WildMenu' , 'none' , 'darkmagenta', 'darkyellow')
425
+
426
+ call s:hi( 'Comment' , 'none' , 'darkred' , 'none' )
427
+ call s:hi( 'Constant' , 'none' , 'darkyellow' , 'none' )
428
+ call s:hi( 'Error' , 'none' , 'white' , 'red' )
429
+ call s:hi( 'Identifier' , 'none' , 'darkcyan' , 'none' )
430
+ call s:hi( 'Ignore' , 'none' , 'darkgrey' , 'none' )
431
+ call s:hi( 'PreProc' , 'none' , 'blue' , 'none' )
432
+ call s:hi( 'Special' , 'none' , 'darkgreen' , 'none' )
433
+ call s:hi( 'Statement' , 'none' , 'cyan' , 'none' )
434
+ call s:hi( 'Todo' , 'none' , 'black' , 'yellow' )
435
+ call s:hi( 'Type' , 'none' , 'green' , 'none' )
436
+ call s:hi( 'Underlined' , 'none' , 'darkmagenta', 'none' )
437
+
438
+ " {{{2 Spelling highlighting groups.
439
+ call s:hi( 'SpellBad' , 'bold,underline', 'none', 'none' ,
440
+ \ 'undercurl' , 'none', 'none' ,
441
+ \ 'darkred' )
442
+ call s:hi( 'SpellCap' , 'bold' , 'none', 'none' ,
443
+ \ 'undercurl' , 'none', 'none' ,
444
+ \ 'blue' )
445
+ call s:hi( 'SpellLocal', 'underline' , 'none', 'none' ,
446
+ \ 'undercurl' , 'none', 'none' ,
447
+ \ 'cyan' )
448
+ call s:hi( 'SpellRare' ,'underline' , 'none', 'none' ,
449
+ \ 'undercurl' , 'none', 'none' ,
450
+ \ 'darkyellow' )
451
+
452
+ " {{{2 Define html highlighting groups for standard colors.
453
+ if !exists("g:xterm16_NoHtmlColors")
454
+ call s:hi( 'htmlBold', 'none', 'white', 'none', 'bold', 'none')
455
+ call s:hi( 'htmlItalic', 'none', 'yellow', 'none', 'italic', 'none')
456
+ call s:hi( 'htmlUnderline', 'none', 'darkmagenta', 'none', 'underline', 'none')
457
+ call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', 'bold,italic', 'none')
458
+ call s:hi( 'htmlBoldUnderline', 'bold', 'magenta', 'none', 'bold,underline', 'none')
459
+ call s:hi( 'htmlUnderlineItalic', 'none', 'magenta', 'none', 'underline,italic', 'none')
460
+ call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', 'bold,underline,italic', 'none')
461
+
462
+ hi! link htmlLink PreProc
463
+ endif
464
+ " {{{2 Remap darkblue on linux consoles
465
+ if !exists("g:xterm16_NoRemap") && &term =~# (exists("g:xterm16_TermRegexp") ? xterm16_TermRegexp : "linux")
466
+ hi! link PreProc Underlined
467
+ endif
468
+ " }}}2
469
+ elseif s:colormap == 'soft' || s:colormap == 'softlight'
470
+ " {{{2 "soft" / "softlight" colormap.
471
+ " Mix and use similar intensity colors. Only drawback is a slightly
472
+ " gaudy appearance (which is why I switched to the "allblue"
473
+ " colormap).
474
+ "
475
+ " The "softlight" colormap is a colormap with a whiteish background
476
+ " for web hosting or when there's a strong glare ...
477
+
478
+ " Background colors common to softlight / soft colormaps
479
+ call s:setcolor( 'black' , 0 , 0 , 0 )
480
+
481
+ " call s:setcolor( 'grey' , s:l/2 , s:l/2 , s:l/2 )
482
+ " call s:setcolor( 'lightgrey' , 2*s:l/3 , 2*s:l/3 , 2*s:l/3 )
483
+
484
+ " Foreground colors common to softlight / soft colormaps
485
+ call s:setcolor( 'lightbrown' , s:h , s:h/2 , 0 )
486
+ call s:setcolor( 'magenta' , s:h*3/4 , 0 , s:h )
487
+ call s:setcolor( 'red' , s:h , 0 , 0 )
488
+ call s:setcolor( 'yellow' , s:m , s:m , 0 )
489
+
490
+ if s:colormap == "soft"
491
+ " Background colors for colormap with a dark background
492
+ call s:setcolor( 'darkblue' , 0 , 0 , s:l )
493
+ call s:setcolor( 'darkcyan' , 0 , s:l , s:l )
494
+ call s:setcolor( 'darkred' , s:l , 0 , 0 )
495
+ call s:setcolor( 'darkyellow', s:l , s:l , 0 )
496
+ call s:setcolor( 'darkgrey' , s:l/3 , s:l/3 , s:l/3 )
497
+ call s:setcolor( 'grey' , s:l/2 , s:l/2 , s:l/2 )
498
+ call s:setcolor( 'lightgrey' , s:l , s:l , s:l )
499
+
500
+ " Foreground colors for colormap with a dark background
501
+ call s:setcolor( 'bluegreen' , 0 , s:m , s:m*38/50 )
502
+ call s:setcolor( 'cyan' , 0 , s:m , s:m )
503
+ call s:setcolor( 'green' , s:m*38/50 , s:m , 0 )
504
+ call s:setcolor( 'purple' , s:h*27/50 , s:h*27/50 , s:h )
505
+ call s:setcolor( 'skyblue' , 0 , s:h*27/50 , s:h )
506
+ call s:setcolor( 'white' , s:m*44/50 , s:m*44/50 , s:m*44/50 )
507
+ else
508
+ " Background colors for colormap with a light background
509
+ call s:setcolor( 'darkblue' , s:l*27/50 , s:l*27/50 , s:l )
510
+ call s:setcolor( 'darkcyan' , s:l*27/50 , s:l*38/50 , s:l )
511
+ call s:setcolor( 'darkred' , s:l , s:l*27/50 , s:l*27/50 )
512
+ call s:setcolor( 'darkyellow', s:l , s:l , s:l*27/50 )
513
+ call s:setcolor( 'darkgrey' , s:l*40/50 , s:l*40/50 , s:l*40/50 )
514
+ call s:setcolor( 'grey' , s:l*35/50 , s:l*35/50 , s:l*35/50 )
515
+ call s:setcolor( 'lightgrey' , s:l*30/50 , s:l*30/50 , s:l*30/50 )
516
+
517
+ call s:setcolor( 'white' , s:l*45/50 , s:l*45/50 , s:l*45/50 )
518
+
519
+ " Foreground colors for colormap with a light background
520
+ call s:setcolor( 'bluegreen' , 0 , s:h , 0 )
521
+ call s:setcolor( 'cyan' , 0 , s:h*38/50 , s:h )
522
+ call s:setcolor( 'green' , 0 , s:m , 0 )
523
+ call s:setcolor( 'purple' , s:h*38/50 , 0 , s:h )
524
+ call s:setcolor( 'skyblue' , 0 , 0 , s:h )
525
+ endif
526
+
527
+ " {{{2 Highlighting groups for "soft" / "softlight" colors.
528
+ if s:colormap == 'soft'
529
+ " Highlighting groups for dark background
530
+ call s:hi( 'Normal' , 'none', 'white' , 'black' )
531
+
532
+ call s:hi( 'Cursor' , 'none', 'black' , 'green' )
533
+ call s:hi( 'DiffText' , 'none', 'darkred' , 'darkyellow')
534
+ call s:hi( 'Error' , 'none', 'white' , 'darkred' )
535
+ call s:hi( 'ErrorMsg' , 'none', 'white' , 'darkred' )
536
+ call s:hi( 'FoldColumn' , 'none', 'purple' , 'darkgrey' )
537
+ call s:hi( 'Folded' , 'none', 'purple' , 'darkgrey' )
538
+ call s:hi( 'IncSearch' , 'none', 'yellow' , 'darkblue' )
539
+ call s:hi( 'StatusLine' , 'none', 'darkblue' , 'lightgrey' )
540
+ call s:hi( 'VisualNOS' , 'none', 'black' , 'darkgrey' )
541
+ else
542
+ " Highlighting groups for light background
543
+ call s:hi( 'Normal' , 'none', 'black' , 'white' )
544
+
545
+ call s:hi( 'Cursor' , 'none', 'white' , 'bluegreen' )
546
+ call s:hi( 'DiffText' , 'none', 'red' , 'darkyellow')
547
+ call s:hi( 'Error' , 'none', 'black' , 'darkred' )
548
+ call s:hi( 'ErrorMsg' , 'none', 'white' , 'red' )
549
+ call s:hi( 'FoldColumn' , 'none', 'lightgrey', 'darkgrey' )
550
+ call s:hi( 'Folded' , 'none', 'black' , 'darkgrey' )
551
+ call s:hi( 'IncSearch' , 'none', 'black' , 'darkblue' )
552
+ call s:hi( 'StatusLine' , 'none', 'skyblue' , 'lightgrey' )
553
+ call s:hi( 'VisualNOS' , 'none', 'white' , 'darkgrey' )
554
+ endif
555
+
556
+ " Highlighting groups for light / dark background.
557
+ call s:hi( 'CursorColumn', 'none', 'none' , 'grey' )
558
+ call s:hi( 'CursorLine' , 'none', 'none' , 'grey' )
559
+ call s:hi( 'DiffAdd' , 'none', 'lightbrown', 'darkblue' )
560
+ call s:hi( 'DiffChange' , 'none', 'black' , 'darkyellow')
561
+ call s:hi( 'DiffDelete' , 'none', 'purple' , 'darkblue' )
562
+ call s:hi( 'Directory' , 'none', 'cyan' , 'none' )
563
+ call s:hi( 'LineNr' , 'none', 'yellow' , 'none' )
564
+ call s:hi( 'MatchParen' , 'bold', 'none' , 'none' )
565
+ call s:hi( 'MoreMsg' , 'none', 'green' , 'none' )
566
+ call s:hi( 'NonText' , 'none', 'yellow' , 'none' )
567
+ call s:hi( 'Pmenu' , 'none', 'none' , 'grey' )
568
+ call s:hi( 'PmenuSbar' , 'none', 'none' , 'darkgrey' )
569
+ call s:hi( 'PmenuSel' , 'none', 'none' , 'darkblue' )
570
+ call s:hi( 'PmenuThumb' , 'none', 'none' , 'lightgrey' )
571
+ call s:hi( 'Question' , 'none', 'green' , 'none' )
572
+ call s:hi( 'Search' , 'none', 'black' , 'darkcyan' )
573
+ call s:hi( 'SignColumn' , 'none', 'yellow' , 'darkgrey' )
574
+ call s:hi( 'SpecialKey' , 'none', 'yellow' , 'none' )
575
+ call s:hi( 'StatusLineNC', 'none', 'black' , 'grey' )
576
+ call s:hi( 'TabLineFill' , 'none', 'none' , 'grey' )
577
+ call s:hi( 'TabLine' , 'none', 'none' , 'grey' )
578
+ call s:hi( 'TabLineSel' , 'bold', 'none' , 'none' )
579
+ call s:hi( 'Title' , 'none', 'yellow' , 'none' )
580
+ call s:hi( 'VertSplit' , 'none', 'darkgrey' , 'darkgrey' )
581
+ call s:hi( 'Visual' , 'none', 'none' , 'darkblue' )
582
+ call s:hi( 'WarningMsg' , 'none', 'red' , 'none' )
583
+ call s:hi( 'WildMenu' , 'none', 'yellow' , 'none' )
584
+
585
+ call s:hi( 'Comment' , 'none', 'red' , 'none' )
586
+ call s:hi( 'Constant' , 'none', 'lightbrown', 'none' )
587
+ call s:hi( 'Identifier' , 'none', 'cyan' , 'none' )
588
+ call s:hi( 'Ignore' , 'none', 'darkgrey' , 'none' )
589
+ call s:hi( 'PreProc' , 'none', 'purple' , 'none' )
590
+ call s:hi( 'Special' , 'none', 'green' , 'none' )
591
+ call s:hi( 'Statement' , 'none', 'skyblue' , 'none' )
592
+ call s:hi( 'Todo' , 'none', 'black' , 'darkyellow')
593
+ call s:hi( 'Type' , 'none', 'bluegreen' , 'none' )
594
+ call s:hi( 'Underlined' , 'none', 'magenta' , 'none' )
595
+
596
+ " {{{2 Spelling highlighting groups.
597
+ call s:hi( 'SpellBad' , 'bold,underline', 'none', 'darkgrey',
598
+ \ 'undercurl' , 'none', 'none' ,
599
+ \ 'red' )
600
+ call s:hi( 'SpellCap' , 'bold' , 'none', 'darkgrey',
601
+ \ 'undercurl' , 'none', 'none' ,
602
+ \ 'skyblue' )
603
+ call s:hi( 'SpellLocal', 'underline' , 'none', 'darkgrey',
604
+ \ 'undercurl' , 'none', 'none' ,
605
+ \ 'cyan' )
606
+ call s:hi( 'SpellRare' ,'underline' , 'none', 'none' ,
607
+ \ 'undercurl' , 'none', 'none' ,
608
+ \ 'yellow' )
609
+
610
+ " {{{2 Define html highlighting groups for soft colors.
611
+ if !exists("g:xterm16_NoHtmlColors")
612
+ call s:hi( 'htmlBold', 'none', 'yellow', 'none',
613
+ \ 'bold', 'none')
614
+ call s:hi( 'htmlItalic', 'none', 'yellow', 'none',
615
+ \ 'italic', 'none')
616
+ call s:hi( 'htmlUnderline', 'none', 'magenta', 'none',
617
+ \ 'underline', 'none')
618
+ call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none',
619
+ \ 'bold,italic', 'none')
620
+ call s:hi( 'htmlBoldUnderline', 'bold', 'magenta', 'none',
621
+ \ 'bold,underline', 'none')
622
+ call s:hi( 'htmlUnderlineItalic', 'bold', 'magenta', 'none',
623
+ \ 'underline,italic', 'none')
624
+ call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none',
625
+ \ 'bold,underline,italic', 'none')
626
+ endif
627
+ " }}}2
628
+ elseif s:colormap == 'allblue'
629
+ " {{{2 "allblue" colormap. All shades of blue.
630
+ " Background colors
631
+ call s:setcolor( 'black' , 0 , 0 , 0 )
632
+ call s:setcolor( 'darkred' , s:l , 0 , 0 )
633
+ call s:setcolor( 'darkcyan' , 0 , s:l , s:l )
634
+ call s:setcolor( 'darkblue' , 0 , 0 , s:l )
635
+ call s:setcolor( 'darkyellow' , s:l , s:l , 0 )
636
+
637
+ " cterm's can do grey's with better accuracy, so use many shades of
638
+ " grey for backgrounds instead of the gaudy yellow's etc.
639
+ call s:setcolor( 'grey1' , s:l/8 , s:l/8 , s:l/8 )
640
+ call s:setcolor( 'grey2' , 2*s:l/8 , 2*s:l/8 , 2*s:l/8 )
641
+ call s:setcolor( 'grey3' , 3*s:l/8 , 3*s:l/8 , 3*s:l/8 )
642
+ call s:setcolor( 'grey4' , 4*s:l/8 , 4*s:l/8 , 4*s:l/8 )
643
+ call s:setcolor( 'grey5' , 5*s:l/8 , 5*s:l/8 , 5*s:l/8 )
644
+ " call s:setcolor( 'grey6' , 6*s:l/8 , 6*s:l/8 , 6*s:l/8 )
645
+ " call s:setcolor( 'grey7' , 7*s:l/8 , 7*s:l/8 , 7*s:l/8 )
646
+ call s:setcolor( 'grey' , s:l , s:l , s:l )
647
+
648
+ " Foreground colors:
649
+ "
650
+ " s:m -- lowest intensity level for fg colors
651
+ " s:h -- highest intensity level.
652
+ " s:M -- medium intensity (average of the above two)
653
+
654
+ let s:M = (s:m + s:h) / 2
655
+
656
+ call s:setcolor( 'red' , s:h , 0 , 0 )
657
+ call s:setcolor( 'lightbrown' , s:M , s:m , 0 )
658
+ call s:setcolor( 'yellow' , s:M , s:M , s:m )
659
+ call s:setcolor( 'dirtygreen' , s:m , s:m , 0 )
660
+ call s:setcolor( 'green' , s:m , s:M , s:m )
661
+ call s:setcolor( 'bluegreen' , 0 , s:M , s:m )
662
+ call s:setcolor( 'yellowgreen', s:m , s:M , 0 )
663
+ call s:setcolor( 'skyblue' , 0 , s:m , s:M )
664
+ call s:setcolor( 'lightblue' , 0 , s:m , s:h )
665
+ call s:setcolor( 'cyan' , 0 , s:M , s:M )
666
+ call s:setcolor( 'lightcyan' , s:m , s:M , s:M )
667
+ call s:setcolor( 'darkpurple' , s:m , 0 , s:h )
668
+ call s:setcolor( 'purple' , s:m , s:m , s:M )
669
+
670
+ " Unused colors that are pretty reasonable
671
+ " call s:setcolor( 'lightred' , s:M , s:m , s:m )
672
+ " call s:setcolor( 'bluewhite' , s:M , s:M , s:h )
673
+ " call s:setcolor( 'lightpurple', s:m , s:m , s:h )
674
+
675
+ " Greys can be done with better accurcy on cterms!
676
+ call s:setcolor( 'white' , 48*s:M/50 , 48*s:M/50 , 48*s:M/50 )
677
+ call s:setcolor( 'white1' , 40*s:M/50 , 40*s:M/50 , 40*s:M/ 50 )
678
+
679
+ unlet s:M
680
+
681
+ " {{{2 Highlighting groups for "allblue" colors.
682
+ call s:hi( 'Normal' , 'none' , 'white' , 'black' )
683
+
684
+ call s:hi( 'Cursor' , 'none' , 'black' , 'green' )
685
+ call s:hi( 'CursorColumn' , 'none' , 'none' , 'grey4' )
686
+ call s:hi( 'CursorLine' , 'none' , 'none' , 'grey4' )
687
+ call s:hi( 'DiffAdd' , 'none' , 'lightbrown' , 'grey2' )
688
+ call s:hi( 'DiffChange' , 'none' , 'yellow' , 'grey2' )
689
+ call s:hi( 'DiffDelete' , 'none' , 'dirtygreen' , 'grey2' )
690
+ call s:hi( 'DiffText' , 'none' , 'yellowgreen' , 'grey2' )
691
+ call s:hi( 'Directory' , 'none' , 'lightblue' , 'none' )
692
+ call s:hi( 'ErrorMsg' , 'none' , 'white' , 'darkred' )
693
+ call s:hi( 'FoldColumn' , 'none' , 'grey4' , 'none' )
694
+ call s:hi( 'Folded' , 'none' , 'white1' , 'grey2' )
695
+ call s:hi( 'IncSearch' , 'none' , 'white' , 'darkblue' )
696
+ call s:hi( 'LineNr' , 'none' , 'yellow' , 'none' )
697
+ call s:hi( 'MatchParen' , 'bold' , 'none' , 'none' )
698
+ call s:hi( 'ModeMsg' , 'bold' , 'none' , 'none' )
699
+ call s:hi( 'MoreMsg' , 'none' , 'green' , 'none' )
700
+ call s:hi( 'NonText' , 'none' , 'lightbrown' , 'none' )
701
+ call s:hi( 'Pmenu' , 'none' , 'none' , 'grey3' )
702
+ call s:hi( 'PmenuSel' , 'none' , 'none' , 'darkblue' )
703
+ call s:hi( 'PmenuSbar' , 'none' , 'none' , 'grey2' )
704
+ call s:hi( 'PmenuThumb' , 'none' , 'none' , 'grey4' )
705
+ call s:hi( 'Question' , 'none' , 'green' , 'none' )
706
+ call s:hi( 'Search' , 'none' , 'black' , 'darkcyan' )
707
+ call s:hi( 'SignColumn' , 'none' , 'yellow' , 'grey1' )
708
+ call s:hi( 'SpecialKey' , 'none' , 'yellow' , 'none' )
709
+ call s:hi( 'StatusLineNC' , 'none' , 'grey' , 'grey3' )
710
+ call s:hi( 'StatusLine' , 'none' , 'white' , 'grey5' )
711
+ call s:hi( 'TabLine' , 'none' , 'none' , 'grey3' )
712
+ call s:hi( 'TabLineFill' , 'none' , 'none' , 'grey3' )
713
+ call s:hi( 'TabLineSel' , 'bold' , 'none' , 'none' )
714
+ call s:hi( 'Title' , 'none' , 'yellow' , 'none' )
715
+ call s:hi( 'VertSplit' , 'none' , 'grey3' , 'grey3' )
716
+ call s:hi( 'Visual' , 'none' , 'none' , 'darkblue' )
717
+ call s:hi( 'VisualNOS' , 'none' , 'none' , 'grey2' )
718
+ call s:hi( 'WarningMsg' , 'none' , 'red' , 'none' )
719
+ call s:hi( 'WildMenu' , 'none' , 'yellow' , 'none' )
720
+
721
+ call s:hi( 'Comment' , 'none' , 'purple' , 'none' )
722
+ call s:hi( 'Constant' , 'none' , 'lightcyan' , 'none' )
723
+ call s:hi( 'Error' , 'none' , 'red' , 'none' )
724
+ call s:hi( 'Identifier' , 'none' , 'cyan' , 'none' )
725
+ call s:hi( 'Ignore' , 'none' , 'grey3' , 'none' )
726
+ call s:hi( 'PreProc' , 'none' , 'darkpurple' , 'none' )
727
+ call s:hi( 'Special' , 'none' , 'bluegreen' , 'none' )
728
+ call s:hi( 'Statement' , 'none' , 'skyblue' , 'none' )
729
+ call s:hi( 'Todo' , 'none' , 'lightbrown' , 'none' )
730
+ call s:hi( 'Type' , 'none' , 'green' , 'none' )
731
+ call s:hi( 'Underlined' , 'none' , 'darkpurple' , 'none' )
732
+
733
+ " {{{2 Spelling highlighting groups.
734
+ "
735
+ " The undercurl looks great in gui, so let's use that. For cterm use
736
+ " some crappy grey background + bold / etc. Not something that stands
737
+ " out too much because there are invariably numerous spelling mistakes
738
+ " highlighted in most code.
739
+ "
740
+ call s:hi( 'SpellBad' , 'bold,underline' , 'none', 'grey2',
741
+ \ 'undercurl' , 'none', 'none' , 'red' )
742
+ call s:hi( 'SpellCap' , 'bold' , 'none', 'grey2',
743
+ \ 'undercurl' , 'none', 'none' , 'skyblue' )
744
+ call s:hi( 'SpellLocal' , 'underline' , 'none', 'grey2',
745
+ \ 'undercurl' , 'none', 'none' , 'lightcyan' )
746
+ call s:hi( 'SpellRare' , 'underline' , 'none', 'none' ,
747
+ \ 'undercurl' , 'none', 'none' , 'yellow' )
748
+
749
+ " {{{2 Highlighting groups for email.
750
+ "
751
+ " mailURL links to Constant, which is light cyan. This does not stand
752
+ " out well in quoted emails (which is cyan), or regular text. Better
753
+ " to use light brown (like the soft colormap).
754
+ hi link mailURL Todo
755
+
756
+ " {{{2 Define html highlighting groups for "allblue" colors
757
+ if !exists("g:xterm16_NoHtmlColors")
758
+ call s:hi( 'htmlBold', 'none', 'yellow', 'none', 'bold', 'none')
759
+ call s:hi( 'htmlItalic', 'none', 'yellow', 'none', 'italic', 'none')
760
+ call s:hi( 'htmlUnderline', 'none', 'darkpurple', 'none', 'underline', 'none')
761
+ call s:hi( 'htmlBoldItalic', 'bold', 'yellow', 'none', 'bold,italic', 'none')
762
+ call s:hi( 'htmlBoldUnderline', 'bold', 'darkpurple', 'none', 'bold,underline', 'none')
763
+ call s:hi( 'htmlUnderlineItalic', 'bold', 'darkpurple', 'none', 'underline,italic', 'none')
764
+ call s:hi( 'htmlBoldUnderlineItalic', 'bold', 'white', 'none', 'bold,underline,italic', 'none')
765
+ endif
766
+ " }}}2
767
+ else
768
+ throw 'xterm16 Error: Unrecognised colormap "' . s:colormap . '"'
769
+ endif
770
+ " }}}1
771
+ catch /^xterm16 Error:/
772
+ " {{{1 Handle internal exceptions.
773
+ unlet colors_name
774
+
775
+ echohl ErrorMsg
776
+ echomsg v:exception
777
+ echohl None
778
+ " }}}1
779
+ finally
780
+ " {{{1 Unlet script variables and functions
781
+ " Restore compatibility options
782
+ let &cpo = s:cpo_save
783
+ unlet! s:c1 s:c2 s:c3
784
+ unlet! s:i s:lower s:upper s:ccube s:cinterval
785
+ unlet! s:cpo_save s:hex s:l s:m s:h s:cterm_none s:gui_none
786
+
787
+ " Delete colors of "standard" colormap
788
+ unlet! s:gui_black s:gui_darkred s:gui_darkgreen s:gui_darkyellow s:gui_darkblue s:gui_darkmagenta s:gui_darkcyan s:gui_grey s:gui_darkgrey s:gui_red s:gui_green s:gui_yellow s:gui_blue s:gui_magenta s:gui_cyan s:gui_white
789
+ unlet! s:cterm_black s:cterm_darkred s:cterm_darkgreen s:cterm_darkyellow s:cterm_darkblue s:cterm_darkmagenta s:cterm_darkcyan s:cterm_grey s:cterm_darkgrey s:cterm_red s:cterm_green s:cterm_yellow s:cterm_blue s:cterm_magenta s:cterm_cyan s:cterm_white
790
+
791
+ " Delete extra colors of "soft" colormap
792
+ unlet! s:gui_lightbrown s:gui_bluegreen s:gui_skyblue s:gui_purple
793
+ unlet! s:cterm_lightbrown s:cterm_bluegreen s:cterm_skyblue s:cterm_purple
794
+
795
+ " Delete extra colors from "allblue" colormap
796
+ unlet! s:gui_darkcyan s:gui_darkblue s:gui_grey1 s:gui_grey2 s:gui_grey3 s:gui_grey4 s:gui_grey5 s:gui_white1 s:gui_dirtygreen s:gui_yellowgreen s:gui_lightblue s:gui_lightcyan s:gui_darkpurple
797
+ unlet! s:cterm_darkcyan s:cterm_darkblue s:cterm_grey1 s:cterm_grey2 s:cterm_grey3 s:cterm_grey4 s:cterm_grey5 s:cterm_white1 s:cterm_dirtygreen s:cterm_yellowgreen s:cterm_lightblue s:cterm_lightcyan s:cterm_darkpurple
798
+
799
+ delfunction s:tohex
800
+ delfunction s:extractRGB
801
+ delfunction s:guilevel
802
+ delfunction s:ctermlevel
803
+ delfunction s:guicolor
804
+ delfunction s:ctermcolor
805
+ delfunction s:setcolor
806
+ delfunction s:getcolor
807
+ delfunction s:use_guiattr
808
+ delfunction s:hi
809
+ delfunction s:set_brightness
810
+ " }}}1
811
+ endtry