summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--after/syntax/css.vim6
-rw-r--r--after/syntax/css/vim-coloresque.vim632
-rw-r--r--after/syntax/html.vim8
-rw-r--r--after/syntax/less.vim7
-rw-r--r--after/syntax/sass.vim7
-rw-r--r--after/syntax/scss.vim1
-rw-r--r--after/syntax/stylus.vim7
-rw-r--r--after/syntax/vim.vim7
-rw-r--r--autoload/css_color.vim559
-rwxr-xr-xbuild2
10 files changed, 597 insertions, 639 deletions
diff --git a/after/syntax/css.vim b/after/syntax/css.vim
new file mode 100644
index 00000000..1f693c9d
--- /dev/null
+++ b/after/syntax/css.vim
@@ -0,0 +1,6 @@
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+call css_color#init('css', 'cssMediaBlock,cssFunction,cssDefinition,cssAttrRegion,cssComment')
diff --git a/after/syntax/css/vim-coloresque.vim b/after/syntax/css/vim-coloresque.vim
deleted file mode 100644
index c80a9a52..00000000
--- a/after/syntax/css/vim-coloresque.vim
+++ /dev/null
@@ -1,632 +0,0 @@
-" Name: Coloresque
-" Language: color preview in vim
-" Author: Gorodinskii Konstantin <gor.konstantin@gmail.com>
-" Licence: Vim license
-" Version: 0.9.5
-" based on
-" https://github.com/ap/vim-css-color
-" https://github.com/lilydjwg/colorizer
-" vim:et:ts=2 sw=2 sts=2
-
-let s:hex={}
-let b:matchescache = {}
-let b:color_pattern = {}
-
-let w:colorDictRegExp=''
-for i in range(0, 255)
- let s:hex[ printf( '%02x', i ) ] = i
-endfor
-
-let s:black = '#000000'
-let s:white = '#ffffff'
-
-function! s:FGForBG(color)
- " pick suitable text color given a background color
- let color = tolower(a:color)
- let r = s:hex[color[0:1]]
- let g = s:hex[color[2:3]]
- let b = s:hex[color[4:5]]
- return r*30 + g*59 + b*11 > 12000 ? s:black : s:white
-endfunction
-
-let s:color_prefix = 'gui'
-let s:fg_color_calc = 'let color = "#" . toupper(a:color)'
-
-function! s:RestoreColors()
- for part in keys(b:color_pattern)
-
- "if b:color_pattern[part]=="ffffff"
- "echoe part
- "endif
-
- call s:MatchColorValue(b:color_pattern[part], part)
- "echoe color
- "echoe b:color_pattern[color]
- "let group = 'cssColor' . tolower(strpart(b:color_pattern[part]["color"], 1))
- ""exe 'syn match' group '/'.escape(pattern, '/').'/ contained'
- "exe 'syn cluster cssColors add='.group
- "exe 'hi' group s:color_prefix.'bg='.b:color_pattern[part]["bg"] s:color_prefix.'fg='.b:color_pattern[part]["fg"]
-
- "if !exists('b:matchescache')
- "let b:matchescache={}
- "endif
-
- "let b:matchescache[part] = matchadd(group, part, -1)
- endfor
-endfunction
-
-function! s:MatchColorValue(color, part)
- if ! len(a:color) | return | endif
-
- let group = 'cssColor' . tolower(a:color)
-
- if !exists('b:color_pattern[a:part]')
- exe s:fg_color_calc
- exe 'syn cluster cssColors add='.group
- exe 'hi' group s:color_prefix.'bg='.color s:color_prefix.'fg='.s:FGForBG(a:color)
- let b:color_pattern[a:part] = a:color
- endif
-
- if !exists('b:matchescache')
- let b:matchescache = {}
- elseif !exists('b:matchescache[a:part]')
- let b:matchescache[a:part] = matchadd(group, a:part, -1)
- endif
-
- "call add(w:matchescache, matchadd(group, a:part, -1))
-
- return ''
-endfunction
-
-function! s:HexForRGBValue(r,g,b)
- " Convert 80% -> 204, 100% -> 255, etc.
- let rgb = map( [a:r,a:g,a:b], 'v:val =~ "%$" ? ( 255 * v:val ) / 100 : v:val' )
- return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
-endfunction
-
-function! s:HexForHSLValue(h,s,l)
- " Convert 80% -> 0.8, 100% -> 1.0, etc.
- let [s,l] = map( [a:s, a:l], 'v:val =~ "%$" ? v:val / 100.0 : str2float(v:val)' )
- " algorithm transcoded to vim from http://www.w3.org/TR/css3-color/#hsl-color
- let hh = ( a:h % 360 ) / 360.0
- let m2 = l <= 0.5 ? l * ( s + 1 ) : l + s - l * s
- let m1 = l * 2 - m2
- let rgb = []
- for h in [ hh + (1/3.0), hh, hh - (1/3.0) ]
- let h = h < 0 ? h + 1 : h > 1 ? h - 1 : h
- let v =
- \ h * 6 < 1 ? m1 + ( m2 - m1 ) * h * 6 :
- \ h * 2 < 1 ? m2 :
- \ h * 3 < 2 ? m1 + ( m2 - m1 ) * ( 2/3.0 - h ) * 6 :
- \ m1
- if v > 1.0 | return '' | endif
- let rgb += [ float2nr( 255 * v ) ]
- endfor
- return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
-endfunction
-
-function! s:ClearMatches()
- call clearmatches()
-
- if !exists('b:matchescache')
- return
- endif
- "for i in values(b:matchescache)
- "call matchdelete(i)
- "endfor
- unlet b:matchescache
-endfunction
-
-function! s:VimCssInit(update)
-
- if a:update==1
- call s:ClearMatches()
- endif
- :set isk+=-
- :set isk+=#
- :set isk+=.
-
- if len(keys(b:color_pattern))>0
- call s:RestoreColors()
- return
- endif
-
- "let b:matchescache = {}
-
- call s:AdditionalColors()
-
- "for i in range(1, line("$"))
- call s:PreviewCSSColor(join(getline(1,'$'), "\n"))
- "endfor
-
-endfunction
-
-function! s:AdditionalColors()
- "if exists('&b:colorDictRegExp')&&b:colorDictRegExp!=''
- "return
- "endif
-
- " w3c Colors
- " plus extra colors
- let w:colorDict = {
- \'black': '#000000',
- \'red': '#ff0000',
- \'silver': '#c0c0c0',
- \'gray': '#808080',
- \'white': '#ffffff',
- \'maroon': '#800000',
- \'purple': '#800080',
- \'fuchsia': '#ff00ff',
- \'green': '#008000',
- \'lime': '#00ff00',
- \'olive': '#808000',
- \'yellow': '#ffff00',
- \'navy': '#000080',
- \'blue': '#0000ff',
- \'teal': '#008080',
- \'aqua': '#00ffff',
- \'aliceblue': '#f0f8ff',
- \'antiquewhite': '#faebd7',
- \'aquamarine': '#7fffd4',
- \'azure': '#f0ffff',
- \'beige': '#f5f5dc',
- \'bisque': '#ffe4c4',
- \'blanchedalmond': '#ffebcd',
- \'blueviolet': '#8a2be2',
- \'brown': '#a52a2a',
- \'burlywood': '#deb887',
- \'cadetblue': '#5f9ea0',
- \'chartreuse': '#7fff00',
- \'chocolate': '#d2691e',
- \'coral': '#ff7f50',
- \'cornflowerblue': '#6495ed',
- \'cornsilk': '#fff8dc',
- \'crimson': '#dc143c',
- \'cyan': '#00ffff',
- \'darkblue': '#00008b',
- \'darkcyan': '#008b8b',
- \'darkgoldenrod': '#b8860b',
- \'darkgray': '#a9a9a9',
- \'darkgreen': '#006400',
- \'darkgrey': '#a9a9a9',
- \'darkkhaki': '#bdb76b',
- \'darkmagenta': '#8b008b',
- \'darkolivegreen': '#556b2f',
- \'darkorchid': '#9932cc',
- \'darkred': '#8b0000',
- \'darksalmon': '#e9967a',
- \'darkseagreen': '#8fbc8f',
- \'darkslateblue': '#483d8b',
- \'darkslategray': '#2f4f4f',
- \'darkslategrey': '#2f4f4f',
- \'darkturquoise': '#00ced1',
- \'darkviolet': '#9400d3',
- \'darkorange': '#ff8c00',
- \'deeppink': '#ff1493',
- \'deepskyblue': '#00bfff',
- \'dimgray': '#696969',
- \'dimgrey': '#696969',
- \'dodgerblue': '#1e90ff',
- \'firebrick': '#b22222',
- \'floralwhite': '#fffaf0',
- \'forestgreen': '#228b22',
- \'gainsboro': '#dcdcdc',
- \'ghostwhite': '#f8f8ff',
- \'gold': '#ffd700',
- \'goldenrod': '#daa520',
- \'greenyellow': '#adff2f',
- \'grey': '#808080',
- \'honeydew': '#f0fff0',
- \'hotpink': '#ff69b4',
- \'indianred': '#cd5c5c',
- \'indigo': '#4b0082',
- \'ivory': '#fffff0',
- \'khaki': '#f0e68c',
- \'lavender': '#e6e6fa',
- \'lavenderblush': '#fff0f5',
- \'lawngreen': '#7cfc00',
- \'lemonchiffon': '#fffacd',
- \'lightblue': '#add8e6',
- \'lightcoral': '#f08080',
- \'lightcyan': '#e0ffff',
- \'lightgoldenrodyellow': '#fafad2',
- \'lightgray': '#d3d3d3',
- \'lightgreen': '#90ee90',
- \'lightgrey': '#d3d3d3',
- \'lightpink': '#ffb6c1',
- \'lightsalmon': '#ffa07a',
- \'lightseagreen': '#20b2aa',
- \'lightskyblue': '#87cefa',
- \'lightslategray': '#778899',
- \'lightslategrey': '#778899',
- \'lightsteelblue': '#b0c4de',
- \'lightyellow': '#ffffe0',
- \'limegreen': '#32cd32',
- \'linen': '#faf0e6',
- \'magenta': '#ff00ff',
- \'mediumaquamarine': '#66cdaa',
- \'mediumblue': '#0000cd',
- \'mediumorchid': '#ba55d3',
- \'mediumpurple': '#9370d8',
- \'mediumseagreen': '#3cb371',
- \'mediumslateblue': '#7b68ee',
- \'mediumspringgreen': '#00fa9a',
- \'mediumturquoise': '#48d1cc',
- \'mediumvioletred': '#c71585',
- \'midnightblue': '#191970',
- \'mintcream': '#f5fffa',
- \'mistyrose': '#ffe4e1',
- \'moccasin': '#ffe4b5',
- \'navajowhite': '#ffdead',
- \'oldlace': '#fdf5e6',
- \'olivedrab': '#6b8e23',
- \'orange': '#ffa500',
- \'orangered': '#ff4500',
- \'orchid': '#da70d6',
- \'palegoldenrod': '#eee8aa',
- \'palegreen': '#98fb98',
- \'paleturquoise': '#afeeee',
- \'palevioletred': '#d87093',
- \'papayawhip': '#ffefd5',
- \'peachpuff': '#ffdab9',
- \'peru': '#cd853f',
- \'pink': '#ffc0cb',
- \'plum': '#dda0dd',
- \'powderblue': '#b0e0e6',
- \'rosybrown': '#bc8f8f',
- \'royalblue': '#4169e1',
- \'saddlebrown': '#8b4513',
- \'salmon': '#fa8072',
- \'sandybrown': '#f4a460',
- \'seagreen': '#2e8b57',
- \'seashell': '#fff5ee',
- \'sienna': '#a0522d',
- \'skyblue': '#87ceeb',
- \'slateblue': '#6a5acd',
- \'slategray': '#708090',
- \'slategrey': '#708090',
- \'snow': '#fffafa',
- \'springgreen': '#00ff7f',
- \'steelblue': '#4682b4',
- \'tan': '#d2b48c',
- \'thistle': '#d8bfd8',
- \'tomato': '#ff6347',
- \'turquoise': '#40e0d0',
- \'violet': '#ee82ee',
- \'wheat': '#f5deb3',
- \'whitesmoke': '#f5f5f5',
- \'yellowgreen': '#9acd32'
- \}
-
- "let w:colorDictRegExp = '\('
- for _color in keys(w:colorDict)
- "let w:colorDictRegExp.='\<'._color.'\>\|'
- call s:MatchColorValue(strpart(w:colorDict[tolower(_color)], 1), '\<\c'._color.'\>')
- endfor
- "let w:colorDictRegExp=strpart(w:colorDictRegExp, 0, len(w:colorDictRegExp)-2).'\)\c'
-endfunction
-
-function! s:ProcessByLine(w)
- call s:PreviewCSSColor(getline(a:w))
-endfunction
-
-function! s:PreviewCSSColor(str)
- "if !exists('&w:colorDictRegExp')
- "endif
-
- let line=a:str "getline(a:w)
- let colorexps = {
- \ 'hex' : '#[0-9A-Fa-f]\{3\}\>\|#[0-9A-Fa-f]\{6\}\>',
- \ 'rgba' : 'rgba\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)',
- \ 'hsla' : 'hsla\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)'
- \ }
- "\ 'color': w:colorDictRegExp
-
- "let foundcolor=''
-
- for exp in keys(colorexps)
- let place=0
-
- if exists("foundcolor")
- unlet foundcolor
- endif
-
- while 1
- if exp=='rgba'||exp=='hsla'
- let foundcolor = matchlist(a:str, colorexps[exp], place)
- else
- let foundcolor = matchstr(a:str, colorexps[exp], place)
- endif
-
- let place = matchend(a:str, colorexps[exp], place)
-
- if empty(foundcolor)
- break
- endif
-
- if exp=='hex'
- let part = foundcolor.'\>'
- else
- let part = foundcolor[0]
- endif
-
- if exp=='hex'
- if len(foundcolor) == 4
- let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
- endif
- call s:MatchColorValue(strpart(foundcolor, 1), part)
- elseif exp=='rgba'
- "TODO get rid of duplicated variables
- call s:MatchColorValue(s:HexForRGBValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
- elseif exp=='hsla'
- call s:MatchColorValue(s:HexForHSLValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
- endif
- endwhile
- endfor
-
-endfunction
-
-if has("gui_running") || &t_Co==256
- " HACK modify cssDefinition to add @cssColors to its contains
- redir => cssdef
- silent! syn list cssDefinition
- redir END
- if len( cssdef )
- for out in split( cssdef, "\n" )
- if out !~ '^cssDefinition ' | continue | endif
- let out = substitute( out, ' \+xxx \+', ' ', '' )
- let out = substitute( out, ' contains=\zs', '@cssColors,', '' )
- exe 'syn region' out
- endfor
- endif
-
- if ! has('gui_running')
-
- let s:black = 0
- let s:white = 15
-
- let s:color_prefix = 'cterm'
- let s:fg_color_calc = 'let color = s:XTermColorForRGB(a:color)'
-
- " preset 16 vt100 colors
- let s:xtermcolor = [
- \ [ 0x00, 0x00, 0x00, 0 ],
- \ [ 0xCD, 0x00, 0x00, 1 ],
- \ [ 0x00, 0xCD, 0x00, 2 ],
- \ [ 0xCD, 0xCD, 0x00, 3 ],
- \ [ 0x00, 0x00, 0xEE, 4 ],
- \ [ 0xCD, 0x00, 0xCD, 5 ],
- \ [ 0x00, 0xCD, 0xCD, 6 ],
- \ [ 0xE5, 0xE5, 0xE5, 7 ],
- \ [ 0x7F, 0x7F, 0x7F, 8 ],
- \ [ 0xFF, 0x00, 0x00, 9 ],
- \ [ 0x00, 0xFF, 0x00, 10 ],
- \ [ 0xFF, 0xFF, 0x00, 11 ],
- \ [ 0x5C, 0x5C, 0xFF, 12 ],
- \ [ 0xFF, 0x00, 0xFF, 13 ],
- \ [ 0x00, 0xFF, 0xFF, 14 ],
- \ [ 0xFF, 0xFF, 0xFF, 15 ]]
- " grayscale ramp
- " (value is 8+10*lum for lum in 0..23)
- let s:xtermcolor += [
- \ [ 0x08, 0x08, 0x08, 232 ],
- \ [ 0x12, 0x12, 0x12, 233 ],
- \ [ 0x1C, 0x1C, 0x1C, 234 ],
- \ [ 0x26, 0x26, 0x26, 235 ],
- \ [ 0x30, 0x30, 0x30, 236 ],
- \ [ 0x3A, 0x3A, 0x3A, 237 ],
- \ [ 0x44, 0x44, 0x44, 238 ],
- \ [ 0x4E, 0x4E, 0x4E, 239 ],
- \ [ 0x58, 0x58, 0x58, 240 ],
- \ [ 0x62, 0x62, 0x62, 241 ],
- \ [ 0x6C, 0x6C, 0x6C, 242 ],
- \ [ 0x76, 0x76, 0x76, 243 ],
- \ [ 0x80, 0x80, 0x80, 244 ],
- \ [ 0x8A, 0x8A, 0x8A, 245 ],
- \ [ 0x94, 0x94, 0x94, 246 ],
- \ [ 0x9E, 0x9E, 0x9E, 247 ],
- \ [ 0xA8, 0xA8, 0xA8, 248 ],
- \ [ 0xB2, 0xB2, 0xB2, 249 ],
- \ [ 0xBC, 0xBC, 0xBC, 250 ],
- \ [ 0xC6, 0xC6, 0xC6, 251 ],
- \ [ 0xD0, 0xD0, 0xD0, 252 ],
- \ [ 0xDA, 0xDA, 0xDA, 253 ],
- \ [ 0xE4, 0xE4, 0xE4, 254 ],
- \ [ 0xEE, 0xEE, 0xEE, 255 ]]
-
- " the 6 values used in the xterm color cube
- " 0 95 135 175 215 255
- let s:cubergb = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ]
-
- " 0..255 mapped to 0..5 based on the color cube values
- let s:xvquant = repeat([0],48)
- \ + repeat([1],68)
- \ + repeat([2],40)
- \ + repeat([3],40)
- \ + repeat([4],40)
- \ + repeat([5],20)
- " tweak the mapping for the exact matches (0 and 1 already correct)
- let s:xvquant[s:cubergb[2]] = 2
- let s:xvquant[s:cubergb[3]] = 3
- let s:xvquant[s:cubergb[4]] = 4
- let s:xvquant[s:cubergb[5]] = 5
-
- " selects the nearest xterm color for a rgb value like #FF0000
- function! s:XTermColorForRGB(color)
- let best_match=0
- let smallest_distance = 10000000000
- let color = tolower(a:color)
- let r = s:hex[color[0:1]]
- let g = s:hex[color[2:3]]
- let b = s:hex[color[4:5]]
-
- let vr = s:xvquant[r]
- let vg = s:xvquant[g]
- let vb = s:xvquant[b]
- let cidx = vr * 36 + vg * 6 + vb + 16
- let ccol = [ s:cubergb[vr], s:cubergb[vg], s:cubergb[vb], cidx ]
-
- for [tr,tg,tb,idx] in [ ccol ] + s:xtermcolor
- let dr = tr - r
- let dg = tg - g
- let db = tb - b
- let distance = dr*dr + dg*dg + db*db
- if distance == 0 | return idx | endif
- if distance > smallest_distance | continue | endif
- let smallest_distance = distance
- let best_match = idx
- endfor
- return best_match
- endfunction
- endif
-
- hi cssColor000000 guibg=#000000 guifg=#FFFFFF ctermbg=16 ctermfg=231 | syn cluster cssColors add=cssColor000000
- hi cssColor000080 guibg=#000080 guifg=#FFFFFF ctermbg=235 ctermfg=231 | syn cluster cssColors add=cssColor000080
- hi cssColor00008b guibg=#00008B guifg=#FFFFFF ctermbg=4 ctermfg=231 | syn cluster cssColors add=cssColor00008b
- hi cssColor0000cd guibg=#0000CD guifg=#FFFFFF ctermbg=4 ctermfg=231 | syn cluster cssColors add=cssColor0000cd
- hi cssColor0000ff guibg=#0000FF guifg=#FFFFFF ctermbg=4 ctermfg=231 | syn cluster cssColors add=cssColor0000ff
- hi cssColor006400 guibg=#006400 guifg=#FFFFFF ctermbg=235 ctermfg=231 | syn cluster cssColors add=cssColor006400
- hi cssColor008000 guibg=#008000 guifg=#FFFFFF ctermbg=2 ctermfg=231 | syn cluster cssColors add=cssColor008000
- hi cssColor008080 guibg=#008080 guifg=#FFFFFF ctermbg=30 ctermfg=231 | syn cluster cssColors add=cssColor008080
- hi cssColor008b8b guibg=#008B8B guifg=#FFFFFF ctermbg=30 ctermfg=231 | syn cluster cssColors add=cssColor008b8b
- hi cssColor00bfff guibg=#00BFFF guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00bfff
- hi cssColor00ced1 guibg=#00CED1 guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00ced1
- hi cssColor00fa9a guibg=#00FA9A guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00fa9a
- hi cssColor00ff00 guibg=#00FF00 guifg=#000000 ctermbg=10 ctermfg=16 | syn cluster cssColors add=cssColor00ff00
- hi cssColor00ff7f guibg=#00FF7F guifg=#000000 ctermbg=6 ctermfg=16 | syn cluster cssColors add=cssColor00ff7f
- hi cssColor00ffff guibg=#00FFFF guifg=#000000 ctermbg=51 ctermfg=16 | syn cluster cssColors add=cssColor00ffff
- hi cssColor191970 guibg=#191970 guifg=#FFFFFF ctermbg=237 ctermfg=231 | syn cluster cssColors add=cssColor191970
- hi cssColor1e90ff guibg=#1E90FF guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor1e90ff
- hi cssColor20b2aa guibg=#20B2AA guifg=#000000 ctermbg=37 ctermfg=16 | syn cluster cssColors add=cssColor20b2aa
- hi cssColor228b22 guibg=#228B22 guifg=#FFFFFF ctermbg=2 ctermfg=231 | syn cluster cssColors add=cssColor228b22
- hi cssColor2e8b57 guibg=#2E8B57 guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor2e8b57
- hi cssColor2f4f4f guibg=#2F4F4F guifg=#FFFFFF ctermbg=238 ctermfg=231 | syn cluster cssColors add=cssColor2f4f4f
- hi cssColor32cd32 guibg=#32CD32 guifg=#000000 ctermbg=2 ctermfg=16 | syn cluster cssColors add=cssColor32cd32
- hi cssColor3cb371 guibg=#3CB371 guifg=#000000 ctermbg=71 ctermfg=16 | syn cluster cssColors add=cssColor3cb371
- hi cssColor40e0d0 guibg=#40E0D0 guifg=#000000 ctermbg=80 ctermfg=16 | syn cluster cssColors add=cssColor40e0d0
- hi cssColor4169e1 guibg=#4169E1 guifg=#FFFFFF ctermbg=12 ctermfg=231 | syn cluster cssColors add=cssColor4169e1
- hi cssColor4682b4 guibg=#4682B4 guifg=#FFFFFF ctermbg=67 ctermfg=231 | syn cluster cssColors add=cssColor4682b4
- hi cssColor483d8b guibg=#483D8B guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor483d8b
- hi cssColor48d1cc guibg=#48D1CC guifg=#000000 ctermbg=80 ctermfg=16 | syn cluster cssColors add=cssColor48d1cc
- hi cssColor4b0082 guibg=#4B0082 guifg=#FFFFFF ctermbg=238 ctermfg=231 | syn cluster cssColors add=cssColor4b0082
- hi cssColor556b2f guibg=#556B2F guifg=#FFFFFF ctermbg=239 ctermfg=231 | syn cluster cssColors add=cssColor556b2f
- hi cssColor5f9ea0 guibg=#5F9EA0 guifg=#000000 ctermbg=73 ctermfg=16 | syn cluster cssColors add=cssColor5f9ea0
- hi cssColor6495ed guibg=#6495ED guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor6495ed
- hi cssColor66cdaa guibg=#66CDAA guifg=#000000 ctermbg=79 ctermfg=16 | syn cluster cssColors add=cssColor66cdaa
- hi cssColor696969 guibg=#696969 guifg=#FFFFFF ctermbg=242 ctermfg=231 | syn cluster cssColors add=cssColor696969
- hi cssColor6a5acd guibg=#6A5ACD guifg=#FFFFFF ctermbg=12 ctermfg=231 | syn cluster cssColors add=cssColor6a5acd
- hi cssColor6b8e23 guibg=#6B8E23 guifg=#FFFFFF ctermbg=241 ctermfg=231 | syn cluster cssColors add=cssColor6b8e23
- hi cssColor708090 guibg=#708090 guifg=#000000 ctermbg=66 ctermfg=16 | syn cluster cssColors add=cssColor708090
- hi cssColor778899 guibg=#778899 guifg=#000000 ctermbg=102 ctermfg=16 | syn cluster cssColors add=cssColor778899
- hi cssColor7b68ee guibg=#7B68EE guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor7b68ee
- hi cssColor7cfc00 guibg=#7CFC00 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColor7cfc00
- hi cssColor7fff00 guibg=#7FFF00 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColor7fff00
- hi cssColor7fffd4 guibg=#7FFFD4 guifg=#000000 ctermbg=122 ctermfg=16 | syn cluster cssColors add=cssColor7fffd4
- hi cssColor800000 guibg=#800000 guifg=#FFFFFF ctermbg=88 ctermfg=231 | syn cluster cssColors add=cssColor800000
- hi cssColor800080 guibg=#800080 guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor800080
- hi cssColor808000 guibg=#808000 guifg=#FFFFFF ctermbg=240 ctermfg=231 | syn cluster cssColors add=cssColor808000
- hi cssColor808080 guibg=#808080 guifg=#000000 ctermbg=244 ctermfg=16 | syn cluster cssColors add=cssColor808080
- hi cssColor87ceeb guibg=#87CEEB guifg=#000000 ctermbg=117 ctermfg=16 | syn cluster cssColors add=cssColor87ceeb
- hi cssColor87cefa guibg=#87CEFA guifg=#000000 ctermbg=117 ctermfg=16 | syn cluster cssColors add=cssColor87cefa
- hi cssColor8a2be2 guibg=#8A2BE2 guifg=#FFFFFF ctermbg=12 ctermfg=231 | syn cluster cssColors add=cssColor8a2be2
- hi cssColor8b0000 guibg=#8B0000 guifg=#FFFFFF ctermbg=88 ctermfg=231 | syn cluster cssColors add=cssColor8b0000
- hi cssColor8b008b guibg=#8B008B guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColor8b008b
- hi cssColor8b4513 guibg=#8B4513 guifg=#FFFFFF ctermbg=94 ctermfg=231 | syn cluster cssColors add=cssColor8b4513
- hi cssColor8fbc8f guibg=#8FBC8F guifg=#000000 ctermbg=108 ctermfg=16 | syn cluster cssColors add=cssColor8fbc8f
- hi cssColor90ee90 guibg=#90EE90 guifg=#000000 ctermbg=249 ctermfg=16 | syn cluster cssColors add=cssColor90ee90
- hi cssColor9370d8 guibg=#9370D8 guifg=#000000 ctermbg=12 ctermfg=16 | syn cluster cssColors add=cssColor9370d8
- hi cssColor9400d3 guibg=#9400D3 guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColor9400d3
- hi cssColor98fb98 guibg=#98FB98 guifg=#000000 ctermbg=250 ctermfg=16 | syn cluster cssColors add=cssColor98fb98
- hi cssColor9932cc guibg=#9932CC guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColor9932cc
- hi cssColor9acd32 guibg=#9ACD32 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColor9acd32
- hi cssColora0522d guibg=#A0522D guifg=#FFFFFF ctermbg=130 ctermfg=231 | syn cluster cssColors add=cssColora0522d
- hi cssColora52a2a guibg=#A52A2A guifg=#FFFFFF ctermbg=124 ctermfg=231 | syn cluster cssColors add=cssColora52a2a
- hi cssColora9a9a9 guibg=#A9A9A9 guifg=#000000 ctermbg=248 ctermfg=16 | syn cluster cssColors add=cssColora9a9a9
- hi cssColoradd8e6 guibg=#ADD8E6 guifg=#000000 ctermbg=152 ctermfg=16 | syn cluster cssColors add=cssColoradd8e6
- hi cssColoradff2f guibg=#ADFF2F guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColoradff2f
- hi cssColorafeeee guibg=#AFEEEE guifg=#000000 ctermbg=159 ctermfg=16 | syn cluster cssColors add=cssColorafeeee
- hi cssColorb0c4de guibg=#B0C4DE guifg=#000000 ctermbg=152 ctermfg=16 | syn cluster cssColors add=cssColorb0c4de
- hi cssColorb0e0e6 guibg=#B0E0E6 guifg=#000000 ctermbg=152 ctermfg=16 | syn cluster cssColors add=cssColorb0e0e6
- hi cssColorb22222 guibg=#B22222 guifg=#FFFFFF ctermbg=124 ctermfg=231 | syn cluster cssColors add=cssColorb22222
- hi cssColorb8860b guibg=#B8860B guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColorb8860b
- hi cssColorba55d3 guibg=#BA55D3 guifg=#000000 ctermbg=5 ctermfg=16 | syn cluster cssColors add=cssColorba55d3
- hi cssColorbc8f8f guibg=#BC8F8F guifg=#000000 ctermbg=138 ctermfg=16 | syn cluster cssColors add=cssColorbc8f8f
- hi cssColorbdb76b guibg=#BDB76B guifg=#000000 ctermbg=247 ctermfg=16 | syn cluster cssColors add=cssColorbdb76b
- hi cssColorc0c0c0 guibg=#C0C0C0 guifg=#000000 ctermbg=250 ctermfg=16 | syn cluster cssColors add=cssColorc0c0c0
- hi cssColorc71585 guibg=#C71585 guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColorc71585
- hi cssColorcd5c5c guibg=#CD5C5C guifg=#000000 ctermbg=167 ctermfg=16 | syn cluster cssColors add=cssColorcd5c5c
- hi cssColorcd853f guibg=#CD853F guifg=#000000 ctermbg=173 ctermfg=16 | syn cluster cssColors add=cssColorcd853f
- hi cssColord2691e guibg=#D2691E guifg=#000000 ctermbg=166 ctermfg=16 | syn cluster cssColors add=cssColord2691e
- hi cssColord2b48c guibg=#D2B48C guifg=#000000 ctermbg=180 ctermfg=16 | syn cluster cssColors add=cssColord2b48c
- hi cssColord3d3d3 guibg=#D3D3D3 guifg=#000000 ctermbg=252 ctermfg=16 | syn cluster cssColors add=cssColord3d3d3
- hi cssColord87093 guibg=#D87093 guifg=#000000 ctermbg=168 ctermfg=16 | syn cluster cssColors add=cssColord87093
- hi cssColord8bfd8 guibg=#D8BFD8 guifg=#000000 ctermbg=252 ctermfg=16 | syn cluster cssColors add=cssColord8bfd8
- hi cssColorda70d6 guibg=#DA70D6 guifg=#000000 ctermbg=249 ctermfg=16 | syn cluster cssColors add=cssColorda70d6
- hi cssColordaa520 guibg=#DAA520 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColordaa520
- hi cssColordc143c guibg=#DC143C guifg=#FFFFFF ctermbg=161 ctermfg=231 | syn cluster cssColors add=cssColordc143c
- hi cssColordcdcdc guibg=#DCDCDC guifg=#000000 ctermbg=253 ctermfg=16 | syn cluster cssColors add=cssColordcdcdc
- hi cssColordda0dd guibg=#DDA0DD guifg=#000000 ctermbg=182 ctermfg=16 | syn cluster cssColors add=cssColordda0dd
- hi cssColordeb887 guibg=#DEB887 guifg=#000000 ctermbg=180 ctermfg=16 | syn cluster cssColors add=cssColordeb887
- hi cssColore0ffff guibg=#E0FFFF guifg=#000000 ctermbg=195 ctermfg=16 | syn cluster cssColors add=cssColore0ffff
- hi cssColore6e6fa guibg=#E6E6FA guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColore6e6fa
- hi cssColore9967a guibg=#E9967A guifg=#000000 ctermbg=174 ctermfg=16 | syn cluster cssColors add=cssColore9967a
- hi cssColoree82ee guibg=#EE82EE guifg=#000000 ctermbg=251 ctermfg=16 | syn cluster cssColors add=cssColoree82ee
- hi cssColoreee8aa guibg=#EEE8AA guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColoreee8aa
- hi cssColorf08080 guibg=#F08080 guifg=#000000 ctermbg=210 ctermfg=16 | syn cluster cssColors add=cssColorf08080
- hi cssColorf0e68c guibg=#F0E68C guifg=#000000 ctermbg=222 ctermfg=16 | syn cluster cssColors add=cssColorf0e68c
- hi cssColorf0f8ff guibg=#F0F8FF guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf0f8ff
- hi cssColorf0fff0 guibg=#F0FFF0 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorf0fff0
- hi cssColorf0ffff guibg=#F0FFFF guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf0ffff
- hi cssColorf4a460 guibg=#F4A460 guifg=#000000 ctermbg=215 ctermfg=16 | syn cluster cssColors add=cssColorf4a460
- hi cssColorf5deb3 guibg=#F5DEB3 guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorf5deb3
- hi cssColorf5f5dc guibg=#F5F5DC guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorf5f5dc
- hi cssColorf5f5f5 guibg=#F5F5F5 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorf5f5f5
- hi cssColorf5fffa guibg=#F5FFFA guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf5fffa
- hi cssColorf8f8ff guibg=#F8F8FF guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorf8f8ff
- hi cssColorfa8072 guibg=#FA8072 guifg=#000000 ctermbg=209 ctermfg=16 | syn cluster cssColors add=cssColorfa8072
- hi cssColorfaebd7 guibg=#FAEBD7 guifg=#000000 ctermbg=7 ctermfg=16 | syn cluster cssColors add=cssColorfaebd7
- hi cssColorfaf0e6 guibg=#FAF0E6 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfaf0e6
- hi cssColorfafad2 guibg=#FAFAD2 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfafad2
- hi cssColorfdf5e6 guibg=#FDF5E6 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfdf5e6
- hi cssColorff0000 guibg=#FF0000 guifg=#FFFFFF ctermbg=196 ctermfg=231 | syn cluster cssColors add=cssColorff0000
- hi cssColorff00ff guibg=#FF00FF guifg=#FFFFFF ctermbg=13 ctermfg=231 | syn cluster cssColors add=cssColorff00ff
- hi cssColorff1493 guibg=#FF1493 guifg=#FFFFFF ctermbg=5 ctermfg=231 | syn cluster cssColors add=cssColorff1493
- hi cssColorff4500 guibg=#FF4500 guifg=#FFFFFF ctermbg=9 ctermfg=231 | syn cluster cssColors add=cssColorff4500
- hi cssColorff6347 guibg=#FF6347 guifg=#000000 ctermbg=203 ctermfg=16 | syn cluster cssColors add=cssColorff6347
- hi cssColorff69b4 guibg=#FF69B4 guifg=#000000 ctermbg=205 ctermfg=16 | syn cluster cssColors add=cssColorff69b4
- hi cssColorff7f50 guibg=#FF7F50 guifg=#000000 ctermbg=209 ctermfg=16 | syn cluster cssColors add=cssColorff7f50
- hi cssColorff8c00 guibg=#FF8C00 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColorff8c00
- hi cssColorffa07a guibg=#FFA07A guifg=#000000 ctermbg=216 ctermfg=16 | syn cluster cssColors add=cssColorffa07a
- hi cssColorffa500 guibg=#FFA500 guifg=#000000 ctermbg=3 ctermfg=16 | syn cluster cssColors add=cssColorffa500
- hi cssColorffb6c1 guibg=#FFB6C1 guifg=#000000 ctermbg=217 ctermfg=16 | syn cluster cssColors add=cssColorffb6c1
- hi cssColorffc0cb guibg=#FFC0CB guifg=#000000 ctermbg=218 ctermfg=16 | syn cluster cssColors add=cssColorffc0cb
- hi cssColorffd700 guibg=#FFD700 guifg=#000000 ctermbg=11 ctermfg=16 | syn cluster cssColors add=cssColorffd700
- hi cssColorffdab9 guibg=#FFDAB9 guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorffdab9
- hi cssColorffdead guibg=#FFDEAD guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorffdead
- hi cssColorffe4b5 guibg=#FFE4B5 guifg=#000000 ctermbg=223 ctermfg=16 | syn cluster cssColors add=cssColorffe4b5
- hi cssColorffe4c4 guibg=#FFE4C4 guifg=#000000 ctermbg=224 ctermfg=16 | syn cluster cssColors add=cssColorffe4c4
- hi cssColorffe4e1 guibg=#FFE4E1 guifg=#000000 ctermbg=224 ctermfg=16 | syn cluster cssColors add=cssColorffe4e1
- hi cssColorffebcd guibg=#FFEBCD guifg=#000000 ctermbg=7 ctermfg=16 | syn cluster cssColors add=cssColorffebcd
- hi cssColorffefd5 guibg=#FFEFD5 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorffefd5
- hi cssColorfff0f5 guibg=#FFF0F5 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfff0f5
- hi cssColorfff5ee guibg=#FFF5EE guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfff5ee
- hi cssColorfff8dc guibg=#FFF8DC guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfff8dc
- hi cssColorfffacd guibg=#FFFACD guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorfffacd
- hi cssColorfffaf0 guibg=#FFFAF0 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffaf0
- hi cssColorfffafa guibg=#FFFAFA guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffafa
- hi cssColorffff00 guibg=#FFFF00 guifg=#000000 ctermbg=11 ctermfg=16 | syn cluster cssColors add=cssColorffff00
- hi cssColorffffe0 guibg=#FFFFE0 guifg=#000000 ctermbg=255 ctermfg=16 | syn cluster cssColors add=cssColorffffe0
- hi cssColorfffff0 guibg=#FFFFF0 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffff0
- hi cssColorffffff guibg=#FFFFFF guifg=#000000 ctermbg=231 ctermfg=16 | syn cluster cssColors add=cssColorffffff
-
- "call s:VimCssInit(1)
-
- ":augroup css
- "au!
- autocmd CursorMovedI <buffer> silent call s:ProcessByLine('.')
- autocmd ColorScheme <buffer> silent call s:VimCssInit(1)
- autocmd BufEnter <buffer> silent call s:VimCssInit(1)
- ":augroup END
-
- "autocmd CursorMoved <buffer> silent call s:ProcessByLine('.')
-endif
diff --git a/after/syntax/html.vim b/after/syntax/html.vim
index c1ccd239..104642c2 100644
--- a/after/syntax/html.vim
+++ b/after/syntax/html.vim
@@ -9,4 +9,10 @@ syn region coffeeScript start=#<script [^>]*type="text/coffeescript"[^>]*>#
\ end=#</script>#me=s-1 keepend
\ contains=@htmlCoffeeScript,htmlScriptTag,@htmlPreproc
\ containedin=htmlHead
-syn include syntax/css/vim-coloresque.vim
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+" default html syntax should already be including the css syntax
+syn cluster colorableGroup add=htmlString,htmlCommentPart
diff --git a/after/syntax/less.vim b/after/syntax/less.vim
index d6ab73ff..4ed28557 100644
--- a/after/syntax/less.vim
+++ b/after/syntax/less.vim
@@ -1 +1,6 @@
-syn include syntax/css/vim-coloresque.vim
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+call css_color#init('css', 'lessVariableValue')
diff --git a/after/syntax/sass.vim b/after/syntax/sass.vim
index d6ab73ff..7a2942f9 100644
--- a/after/syntax/sass.vim
+++ b/after/syntax/sass.vim
@@ -1 +1,6 @@
-syn include syntax/css/vim-coloresque.vim
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+call css_color#init('css', 'sassCssAttribute,sassComment,sassCssComment')
diff --git a/after/syntax/scss.vim b/after/syntax/scss.vim
deleted file mode 100644
index d6ab73ff..00000000
--- a/after/syntax/scss.vim
+++ /dev/null
@@ -1 +0,0 @@
-syn include syntax/css/vim-coloresque.vim
diff --git a/after/syntax/stylus.vim b/after/syntax/stylus.vim
index d6ab73ff..2c50a988 100644
--- a/after/syntax/stylus.vim
+++ b/after/syntax/stylus.vim
@@ -1 +1,6 @@
-syn include syntax/css/vim-coloresque.vim
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+call css_color#init('css', 'stylusCssAttribute,stylusComment,cssComment')
diff --git a/after/syntax/vim.vim b/after/syntax/vim.vim
index d6ab73ff..4fdaee2e 100644
--- a/after/syntax/vim.vim
+++ b/after/syntax/vim.vim
@@ -1 +1,6 @@
-syn include syntax/css/vim-coloresque.vim
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+call css_color#init('any', 'vimHiGuiRgb,vimComment,vimLineComment')
diff --git a/autoload/css_color.vim b/autoload/css_color.vim
new file mode 100644
index 00000000..56a50157
--- /dev/null
+++ b/autoload/css_color.vim
@@ -0,0 +1,559 @@
+" Language: Colorful CSS Color Preview
+" Author: Aristotle Pagaltzis <pagaltzis@gmx.de>
+" Last Change: 2014-01-14
+" Licence: No Warranties. WTFPL. But please tell me!
+" Version: 1.0
+
+if v:version < 700
+ echoerr printf('Vim 7 is required for css-color (this is only %d.%d)',v:version/100,v:version%100)
+ finish
+endif
+
+if !( has('gui_running') || &t_Co==256 ) | finish | endif
+
+function! s:rgb2color(r,g,b)
+ " Convert 80% -> 204, 100% -> 255, etc.
+ let rgb = map( [a:r,a:g,a:b], 'v:val =~ "%$" ? ( 255 * v:val ) / 100 : v:val' )
+ return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
+endfunction
+
+function! s:hsl2color(h,s,l)
+ " Convert 80% -> 0.8, 100% -> 1.0, etc.
+ let [s,l] = map( [a:s, a:l], 'v:val =~ "%$" ? v:val / 100.0 : v:val + 0.0' )
+ " algorithm transcoded to vim from http://www.w3.org/TR/css3-color/#hsl-color
+ let hh = ( a:h % 360 ) / 360.0
+ let m2 = l <= 0.5 ? l * ( s + 1 ) : l + s - l * s
+ let m1 = l * 2 - m2
+ let rgb = []
+ for h in [ hh + (1/3.0), hh, hh - (1/3.0) ]
+ let h = h < 0 ? h + 1 : h > 1 ? h - 1 : h
+ let v =
+ \ h * 6 < 1 ? m1 + ( m2 - m1 ) * h * 6 :
+ \ h * 2 < 1 ? m2 :
+ \ h * 3 < 2 ? m1 + ( m2 - m1 ) * ( 2/3.0 - h ) * 6 :
+ \ m1
+ if v > 1.0 | return '' | endif
+ let rgb += [ float2nr( 255 * v ) ]
+ endfor
+ return printf( '%02x%02x%02x', rgb[0], rgb[1], rgb[2] )
+endfunction
+
+let s:hex={}
+for i in range(0, 255)
+ let s:hex[ printf( '%02x', i ) ] = i
+endfor
+
+if has('gui_running')
+ let s:is_gui = 1
+else
+ let s:is_gui = 0
+
+ " preset 16 vt100 colors
+ let s:xtermcolor = [
+ \ [ 0x00, 0x00, 0x00, 0 ],
+ \ [ 0xCD, 0x00, 0x00, 1 ],
+ \ [ 0x00, 0xCD, 0x00, 2 ],
+ \ [ 0xCD, 0xCD, 0x00, 3 ],
+ \ [ 0x00, 0x00, 0xEE, 4 ],
+ \ [ 0xCD, 0x00, 0xCD, 5 ],
+ \ [ 0x00, 0xCD, 0xCD, 6 ],
+ \ [ 0xE5, 0xE5, 0xE5, 7 ],
+ \ [ 0x7F, 0x7F, 0x7F, 8 ],
+ \ [ 0xFF, 0x00, 0x00, 9 ],
+ \ [ 0x00, 0xFF, 0x00, 10 ],
+ \ [ 0xFF, 0xFF, 0x00, 11 ],
+ \ [ 0x5C, 0x5C, 0xFF, 12 ],
+ \ [ 0xFF, 0x00, 0xFF, 13 ],
+ \ [ 0x00, 0xFF, 0xFF, 14 ],
+ \ [ 0xFF, 0xFF, 0xFF, 15 ]]
+ " grayscale ramp
+ " (value is 8+10*lum for lum in 0..23)
+ let s:xtermcolor += [
+ \ [ 0x08, 0x08, 0x08, 232 ],
+ \ [ 0x12, 0x12, 0x12, 233 ],
+ \ [ 0x1C, 0x1C, 0x1C, 234 ],
+ \ [ 0x26, 0x26, 0x26, 235 ],
+ \ [ 0x30, 0x30, 0x30, 236 ],
+ \ [ 0x3A, 0x3A, 0x3A, 237 ],
+ \ [ 0x44, 0x44, 0x44, 238 ],
+ \ [ 0x4E, 0x4E, 0x4E, 239 ],
+ \ [ 0x58, 0x58, 0x58, 240 ],
+ \ [ 0x62, 0x62, 0x62, 241 ],
+ \ [ 0x6C, 0x6C, 0x6C, 242 ],
+ \ [ 0x76, 0x76, 0x76, 243 ],
+ \ [ 0x80, 0x80, 0x80, 244 ],
+ \ [ 0x8A, 0x8A, 0x8A, 245 ],
+ \ [ 0x94, 0x94, 0x94, 246 ],
+ \ [ 0x9E, 0x9E, 0x9E, 247 ],
+ \ [ 0xA8, 0xA8, 0xA8, 248 ],
+ \ [ 0xB2, 0xB2, 0xB2, 249 ],
+ \ [ 0xBC, 0xBC, 0xBC, 250 ],
+ \ [ 0xC6, 0xC6, 0xC6, 251 ],
+ \ [ 0xD0, 0xD0, 0xD0, 252 ],
+ \ [ 0xDA, 0xDA, 0xDA, 253 ],
+ \ [ 0xE4, 0xE4, 0xE4, 254 ],
+ \ [ 0xEE, 0xEE, 0xEE, 255 ]]
+
+ " the 6 values used in the xterm color cube
+ " 0 95 135 175 215 255
+ let s:cubergb = [ 0x00, 0x5F, 0x87, 0xAF, 0xD7, 0xFF ]
+
+ " 0..255 mapped to 0..5 based on the color cube values
+ let s:xvquant = repeat([0],48)
+ \ + repeat([1],68)
+ \ + repeat([2],40)
+ \ + repeat([3],40)
+ \ + repeat([4],40)
+ \ + repeat([5],20)
+ " tweak the mapping for the exact matches (0 and 1 already correct)
+ let s:xvquant[s:cubergb[2]] = 2
+ let s:xvquant[s:cubergb[3]] = 3
+ let s:xvquant[s:cubergb[4]] = 4
+ let s:xvquant[s:cubergb[5]] = 5
+
+ " selects the nearest xterm color for a rgb value like #FF0000
+ function! s:rgb2xterm(color)
+ let best_match=0
+ let smallest_distance = 10000000000
+ let color = tolower(a:color)
+ let r = s:hex[color[0:1]]
+ let g = s:hex[color[2:3]]
+ let b = s:hex[color[4:5]]
+
+ let vr = s:xvquant[r]
+ let vg = s:xvquant[g]
+ let vb = s:xvquant[b]
+ let cidx = vr * 36 + vg * 6 + vb + 16
+ let ccol = [ s:cubergb[vr], s:cubergb[vg], s:cubergb[vb], cidx ]
+
+ for [tr,tg,tb,idx] in [ ccol ] + s:xtermcolor
+ let dr = tr - r
+ let dg = tg - g
+ let db = tb - b
+ let distance = dr*dr + dg*dg + db*db
+ if distance == 0 | return idx | endif
+ if distance > smallest_distance | continue | endif
+ let smallest_distance = distance
+ let best_match = idx
+ endfor
+ return best_match
+ endfunction
+endif
+
+let s:pattern_color = {}
+let s:color_fg = {}
+let s:color_bg = {}
+let [s:hi_cmd, s:black, s:white] = s:is_gui
+ \ ? ['hi %s guibg=#%s guifg=%s', '#000000', '#ffffff']
+ \ : ['hi %s ctermbg=%s ctermfg=%s', 0, 15]
+function! s:create_syn_match()
+
+ let pattern = submatch(0)
+
+ if has_key( b:has_pattern_syn, pattern ) | return | endif
+ let b:has_pattern_syn[pattern] = 1
+
+ let rgb_color = get( s:pattern_color, pattern, '' )
+
+ if ! strlen( rgb_color )
+ let hexcolor = submatch(1)
+ let funcname = submatch(2)
+
+ if funcname == 'rgb'
+ let rgb_color = s:rgb2color(submatch(3),submatch(4),submatch(5))
+ elseif funcname == 'hsl'
+ let rgb_color = s:hsl2color(submatch(3),submatch(4),submatch(5))
+ elseif strlen(hexcolor) == 6
+ let rgb_color = tolower(hexcolor)
+ elseif strlen(hexcolor) == 3
+ let rgb_color = substitute(tolower(hexcolor), '\(.\)', '\1\1', 'g')
+ else
+ throw 'css_color: create_syn_match invoked on bad match data'
+ endif
+
+ let s:pattern_color[pattern] = rgb_color
+ endif
+
+ if ! has_key( b:has_color_hi, rgb_color )
+ " check GUI flag early here to avoid pure-overhead caching
+ let syn_bg = s:is_gui ? rgb_color : get( s:color_bg, rgb_color, '' )
+ if ! strlen(syn_bg)
+ let syn_bg = s:rgb2xterm(rgb_color)
+ let s:color_bg[rgb_color] = syn_bg
+ endif
+
+ let syn_fg = get( s:color_fg, rgb_color, '' )
+ if ! strlen(syn_fg)
+ let r = s:hex[rgb_color[0:1]]
+ let g = s:hex[rgb_color[2:3]]
+ let b = s:hex[rgb_color[4:5]]
+ let syn_fg = r*30 + g*59 + b*11 > 12000 ? s:black : s:white
+ let s:color_fg[rgb_color] = syn_fg
+ endif
+ endif
+
+ let group = 'BG' . rgb_color
+
+ if ! has_key( b:has_color_hi, rgb_color )
+ exe printf( s:hi_cmd, group, syn_bg, syn_fg )
+ let b:has_color_hi[rgb_color] = 1
+ endif
+
+ " iff pattern ends on word character, require word break to match
+ if pattern =~ '\>$' | let pattern .= '\>' | endif
+ exe 'syn match' group '/'.escape(pattern, '/').'/ contained containedin=@colorableGroup'
+
+ return ''
+endfunction
+
+function! s:update_matches()
+ call filter(b:color_match_id, 'matchdelete(v:val)')
+ if &l:cursorline
+ " adds matches based that duplicate the highlighted colors on the current line
+ let lnr = line('.')
+ let group = ''
+ let groupstart = 0
+ let endcol = col('$')
+ for col in range( 1, endcol )
+ let nextgroup = col < endcol ? synIDattr( synID( lnr, col, 1 ), 'name' ) : ''
+ if group == nextgroup | continue | endif
+ if group =~ '^BG\x\{6}$'
+ let regex = '\%'.lnr.'l\%'.groupstart.'c'.repeat( '.', col - groupstart )
+ let match = matchadd( group, regex, -1 )
+ let b:color_match_id += [ match ]
+ endif
+ let group = nextgroup
+ let groupstart = col
+ endfor
+ endif
+endfunction
+
+let s:_hexcolor = '#\(\x\{3}\|\x\{6}\)\>' " submatch 1
+let s:_funcname = '\(rgb\|hsl\)a\?' " submatch 2
+let s:_numval = '\(\d\{1,3}%\?\)' " submatch 3,4,5
+let s:_ws_ = '\s*'
+let s:_listsep = s:_ws_ . ',' . s:_ws_
+let s:_otherargs_ = '\%(,[^)]*\)\?'
+let s:_funcexpr = s:_funcname . '[(]' . s:_numval . s:_listsep . s:_numval . s:_listsep . s:_numval . s:_ws_ . s:_otherargs_ . '[)]'
+let s:_csscolor = s:_hexcolor . '\|' . s:_funcexpr
+" N.B. these substitute() calls are here just for the side effect
+" of invoking s:create_syn_match during substitution -- because
+" match() and friends do not allow finding all matches in a single
+" scan without examining the start of the string over and over
+function! s:parse_css_screen()
+ call substitute( join( getline('w0','w$'), "\n" ), s:_csscolor, '\=s:create_syn_match()', 'g' )
+ call s:update_matches()
+endfunction
+function! s:parse_any_screen()
+ call substitute( join( getline('w0','w$'), "\n" ), s:_hexcolor, '\=s:create_syn_match()', 'g' )
+ call s:update_matches()
+endfunction
+
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+function! css_color#init(type, groups)
+ exe 'syn cluster colorableGroup contains=' . a:groups
+
+ let b:has_color_hi = {}
+ let b:has_pattern_syn = {}
+ let b:color_match_id = []
+
+ augroup CSSColor
+ autocmd! * <buffer>
+ exe 'autocmd CursorMoved,CursorMovedI <buffer> call s:parse_'.a:type.'_screen()'
+ augroup END
+
+ do CSSColor CursorMoved <buffer>
+
+ if a:type != 'css' | return | endif
+
+ hi BG000000 guibg=#000000 guifg=#FFFFFF ctermbg=16 ctermfg=231
+ hi BG000080 guibg=#000080 guifg=#FFFFFF ctermbg=235 ctermfg=231
+ hi BG00008b guibg=#00008B guifg=#FFFFFF ctermbg=4 ctermfg=231
+ hi BG0000cd guibg=#0000CD guifg=#FFFFFF ctermbg=4 ctermfg=231
+ hi BG0000ff guibg=#0000FF guifg=#FFFFFF ctermbg=4 ctermfg=231
+ hi BG006400 guibg=#006400 guifg=#FFFFFF ctermbg=235 ctermfg=231
+ hi BG008000 guibg=#008000 guifg=#FFFFFF ctermbg=2 ctermfg=231
+ hi BG008080 guibg=#008080 guifg=#FFFFFF ctermbg=30 ctermfg=231
+ hi BG008b8b guibg=#008B8B guifg=#FFFFFF ctermbg=30 ctermfg=231
+ hi BG00bfff guibg=#00BFFF guifg=#000000 ctermbg=6 ctermfg=16
+ hi BG00ced1 guibg=#00CED1 guifg=#000000 ctermbg=6 ctermfg=16
+ hi BG00fa9a guibg=#00FA9A guifg=#000000 ctermbg=6 ctermfg=16
+ hi BG00ff00 guibg=#00FF00 guifg=#000000 ctermbg=10 ctermfg=16
+ hi BG00ff7f guibg=#00FF7F guifg=#000000 ctermbg=6 ctermfg=16
+ hi BG00ffff guibg=#00FFFF guifg=#000000 ctermbg=51 ctermfg=16
+ hi BG191970 guibg=#191970 guifg=#FFFFFF ctermbg=237 ctermfg=231
+ hi BG1e90ff guibg=#1E90FF guifg=#000000 ctermbg=12 ctermfg=16
+ hi BG20b2aa guibg=#20B2AA guifg=#000000 ctermbg=37 ctermfg=16
+ hi BG228b22 guibg=#228B22 guifg=#FFFFFF ctermbg=2 ctermfg=231
+ hi BG2e8b57 guibg=#2E8B57 guifg=#FFFFFF ctermbg=240 ctermfg=231
+ hi BG2f4f4f guibg=#2F4F4F guifg=#FFFFFF ctermbg=238 ctermfg=231
+ hi BG32cd32 guibg=#32CD32 guifg=#000000 ctermbg=2 ctermfg=16
+ hi BG3cb371 guibg=#3CB371 guifg=#000000 ctermbg=71 ctermfg=16
+ hi BG40e0d0 guibg=#40E0D0 guifg=#000000 ctermbg=80 ctermfg=16
+ hi BG4169e1 guibg=#4169E1 guifg=#FFFFFF ctermbg=12 ctermfg=231
+ hi BG4682b4 guibg=#4682B4 guifg=#FFFFFF ctermbg=67 ctermfg=231
+ hi BG483d8b guibg=#483D8B guifg=#FFFFFF ctermbg=240 ctermfg=231
+ hi BG48d1cc guibg=#48D1CC guifg=#000000 ctermbg=80 ctermfg=16
+ hi BG4b0082 guibg=#4B0082 guifg=#FFFFFF ctermbg=238 ctermfg=231
+ hi BG556b2f guibg=#556B2F guifg=#FFFFFF ctermbg=239 ctermfg=231
+ hi BG5f9ea0 guibg=#5F9EA0 guifg=#000000 ctermbg=73 ctermfg=16
+ hi BG6495ed guibg=#6495ED guifg=#000000 ctermbg=12 ctermfg=16
+ hi BG66cdaa guibg=#66CDAA guifg=#000000 ctermbg=79 ctermfg=16
+ hi BG696969 guibg=#696969 guifg=#FFFFFF ctermbg=242 ctermfg=231
+ hi BG6a5acd guibg=#6A5ACD guifg=#FFFFFF ctermbg=12 ctermfg=231
+ hi BG6b8e23 guibg=#6B8E23 guifg=#FFFFFF ctermbg=241 ctermfg=231
+ hi BG708090 guibg=#708090 guifg=#000000 ctermbg=66 ctermfg=16
+ hi BG778899 guibg=#778899 guifg=#000000 ctermbg=102 ctermfg=16
+ hi BG7b68ee guibg=#7B68EE guifg=#000000 ctermbg=12 ctermfg=16
+ hi BG7cfc00 guibg=#7CFC00 guifg=#000000 ctermbg=3 ctermfg=16
+ hi BG7fff00 guibg=#7FFF00 guifg=#000000 ctermbg=3 ctermfg=16
+ hi BG7fffd4 guibg=#7FFFD4 guifg=#000000 ctermbg=122 ctermfg=16
+ hi BG800000 guibg=#800000 guifg=#FFFFFF ctermbg=88 ctermfg=231
+ hi BG800080 guibg=#800080 guifg=#FFFFFF ctermbg=240 ctermfg=231
+ hi BG808000 guibg=#808000 guifg=#FFFFFF ctermbg=240 ctermfg=231
+ hi BG808080 guibg=#808080 guifg=#000000 ctermbg=244 ctermfg=16
+ hi BG87ceeb guibg=#87CEEB guifg=#000000 ctermbg=117 ctermfg=16
+ hi BG87cefa guibg=#87CEFA guifg=#000000 ctermbg=117 ctermfg=16
+ hi BG8a2be2 guibg=#8A2BE2 guifg=#FFFFFF ctermbg=12 ctermfg=231
+ hi BG8b0000 guibg=#8B0000 guifg=#FFFFFF ctermbg=88 ctermfg=231
+ hi BG8b008b guibg=#8B008B guifg=#FFFFFF ctermbg=5 ctermfg=231
+ hi BG8b4513 guibg=#8B4513 guifg=#FFFFFF ctermbg=94 ctermfg=231
+ hi BG8fbc8f guibg=#8FBC8F guifg=#000000 ctermbg=108 ctermfg=16
+ hi BG90ee90 guibg=#90EE90 guifg=#000000 ctermbg=249 ctermfg=16
+ hi BG9370d8 guibg=#9370D8 guifg=#000000 ctermbg=12 ctermfg=16
+ hi BG9400d3 guibg=#9400D3 guifg=#FFFFFF ctermbg=5 ctermfg=231
+ hi BG98fb98 guibg=#98FB98 guifg=#000000 ctermbg=250 ctermfg=16
+ hi BG9932cc guibg=#9932CC guifg=#FFFFFF ctermbg=5 ctermfg=231
+ hi BG9acd32 guibg=#9ACD32 guifg=#000000 ctermbg=3 ctermfg=16
+ hi BGa0522d guibg=#A0522D guifg=#FFFFFF ctermbg=130 ctermfg=231
+ hi BGa52a2a guibg=#A52A2A guifg=#FFFFFF ctermbg=124 ctermfg=231
+ hi BGa9a9a9 guibg=#A9A9A9 guifg=#000000 ctermbg=248 ctermfg=16
+ hi BGadd8e6 guibg=#ADD8E6 guifg=#000000 ctermbg=152 ctermfg=16
+ hi BGadff2f guibg=#ADFF2F guifg=#000000 ctermbg=3 ctermfg=16
+ hi BGafeeee guibg=#AFEEEE guifg=#000000 ctermbg=159 ctermfg=16
+ hi BGb0c4de guibg=#B0C4DE guifg=#000000 ctermbg=152 ctermfg=16
+ hi BGb0e0e6 guibg=#B0E0E6 guifg=#000000 ctermbg=152 ctermfg=16
+ hi BGb22222 guibg=#B22222 guifg=#FFFFFF ctermbg=124 ctermfg=231
+ hi BGb8860b guibg=#B8860B guifg=#000000 ctermbg=3 ctermfg=16
+ hi BGba55d3 guibg=#BA55D3 guifg=#000000 ctermbg=5 ctermfg=16
+ hi BGbc8f8f guibg=#BC8F8F guifg=#000000 ctermbg=138 ctermfg=16
+ hi BGbdb76b guibg=#BDB76B guifg=#000000 ctermbg=247 ctermfg=16
+ hi BGc0c0c0 guibg=#C0C0C0 guifg=#000000 ctermbg=250 ctermfg=16
+ hi BGc71585 guibg=#C71585 guifg=#FFFFFF ctermbg=5 ctermfg=231
+ hi BGcd5c5c guibg=#CD5C5C guifg=#000000 ctermbg=167 ctermfg=16
+ hi BGcd853f guibg=#CD853F guifg=#000000 ctermbg=173 ctermfg=16
+ hi BGd2691e guibg=#D2691E guifg=#000000 ctermbg=166 ctermfg=16
+ hi BGd2b48c guibg=#D2B48C guifg=#000000 ctermbg=180 ctermfg=16
+ hi BGd3d3d3 guibg=#D3D3D3 guifg=#000000 ctermbg=252 ctermfg=16
+ hi BGd87093 guibg=#D87093 guifg=#000000 ctermbg=168 ctermfg=16
+ hi BGd8bfd8 guibg=#D8BFD8 guifg=#000000 ctermbg=252 ctermfg=16
+ hi BGda70d6 guibg=#DA70D6 guifg=#000000 ctermbg=249 ctermfg=16
+ hi BGdaa520 guibg=#DAA520 guifg=#000000 ctermbg=3 ctermfg=16
+ hi BGdc143c guibg=#DC143C guifg=#FFFFFF ctermbg=161 ctermfg=231
+ hi BGdcdcdc guibg=#DCDCDC guifg=#000000 ctermbg=253 ctermfg=16
+ hi BGdda0dd guibg=#DDA0DD guifg=#000000 ctermbg=182 ctermfg=16
+ hi BGdeb887 guibg=#DEB887 guifg=#000000 ctermbg=180 ctermfg=16
+ hi BGe0ffff guibg=#E0FFFF guifg=#000000 ctermbg=195 ctermfg=16
+ hi BGe6e6fa guibg=#E6E6FA guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGe9967a guibg=#E9967A guifg=#000000 ctermbg=174 ctermfg=16
+ hi BGee82ee guibg=#EE82EE guifg=#000000 ctermbg=251 ctermfg=16
+ hi BGeee8aa guibg=#EEE8AA guifg=#000000 ctermbg=223 ctermfg=16
+ hi BGf08080 guibg=#F08080 guifg=#000000 ctermbg=210 ctermfg=16
+ hi BGf0e68c guibg=#F0E68C guifg=#000000 ctermbg=222 ctermfg=16
+ hi BGf0f8ff guibg=#F0F8FF guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGf0fff0 guibg=#F0FFF0 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGf0ffff guibg=#F0FFFF guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGf4a460 guibg=#F4A460 guifg=#000000 ctermbg=215 ctermfg=16
+ hi BGf5deb3 guibg=#F5DEB3 guifg=#000000 ctermbg=223 ctermfg=16
+ hi BGf5f5dc guibg=#F5F5DC guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGf5f5f5 guibg=#F5F5F5 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGf5fffa guibg=#F5FFFA guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGf8f8ff guibg=#F8F8FF guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGfa8072 guibg=#FA8072 guifg=#000000 ctermbg=209 ctermfg=16
+ hi BGfaebd7 guibg=#FAEBD7 guifg=#000000 ctermbg=7 ctermfg=16
+ hi BGfaf0e6 guibg=#FAF0E6 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfafad2 guibg=#FAFAD2 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfdf5e6 guibg=#FDF5E6 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGff0000 guibg=#FF0000 guifg=#FFFFFF ctermbg=196 ctermfg=231
+ hi BGff00ff guibg=#FF00FF guifg=#FFFFFF ctermbg=13 ctermfg=231
+ hi BGff1493 guibg=#FF1493 guifg=#FFFFFF ctermbg=5 ctermfg=231
+ hi BGff4500 guibg=#FF4500 guifg=#FFFFFF ctermbg=9 ctermfg=231
+ hi BGff6347 guibg=#FF6347 guifg=#000000 ctermbg=203 ctermfg=16
+ hi BGff69b4 guibg=#FF69B4 guifg=#000000 ctermbg=205 ctermfg=16
+ hi BGff7f50 guibg=#FF7F50 guifg=#000000 ctermbg=209 ctermfg=16
+ hi BGff8c00 guibg=#FF8C00 guifg=#000000 ctermbg=3 ctermfg=16
+ hi BGffa07a guibg=#FFA07A guifg=#000000 ctermbg=216 ctermfg=16
+ hi BGffa500 guibg=#FFA500 guifg=#000000 ctermbg=3 ctermfg=16
+ hi BGffb6c1 guibg=#FFB6C1 guifg=#000000 ctermbg=217 ctermfg=16
+ hi BGffc0cb guibg=#FFC0CB guifg=#000000 ctermbg=218 ctermfg=16
+ hi BGffd700 guibg=#FFD700 guifg=#000000 ctermbg=11 ctermfg=16
+ hi BGffdab9 guibg=#FFDAB9 guifg=#000000 ctermbg=223 ctermfg=16
+ hi BGffdead guibg=#FFDEAD guifg=#000000 ctermbg=223 ctermfg=16
+ hi BGffe4b5 guibg=#FFE4B5 guifg=#000000 ctermbg=223 ctermfg=16
+ hi BGffe4c4 guibg=#FFE4C4 guifg=#000000 ctermbg=224 ctermfg=16
+ hi BGffe4e1 guibg=#FFE4E1 guifg=#000000 ctermbg=224 ctermfg=16
+ hi BGffebcd guibg=#FFEBCD guifg=#000000 ctermbg=7 ctermfg=16
+ hi BGffefd5 guibg=#FFEFD5 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfff0f5 guibg=#FFF0F5 guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGfff5ee guibg=#FFF5EE guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfff8dc guibg=#FFF8DC guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfffacd guibg=#FFFACD guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfffaf0 guibg=#FFFAF0 guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGfffafa guibg=#FFFAFA guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGffff00 guibg=#FFFF00 guifg=#000000 ctermbg=11 ctermfg=16
+ hi BGffffe0 guibg=#FFFFE0 guifg=#000000 ctermbg=255 ctermfg=16
+ hi BGfffff0 guibg=#FFFFF0 guifg=#000000 ctermbg=15 ctermfg=16
+ hi BGffffff guibg=#FFFFFF guifg=#000000 ctermbg=231 ctermfg=16
+
+ " W3C Colors
+ syn keyword BG000000 black contained containedin=@colorableGroup
+ syn keyword BGc0c0c0 silver contained containedin=@colorableGroup
+ syn keyword BG808080 gray contained containedin=@colorableGroup
+ syn match BGffffff "\<white\(-\)\@!\>" contained containedin=@colorableGroup
+ syn keyword BG800000 maroon contained containedin=@colorableGroup
+ syn keyword BGff0000 red contained containedin=@colorableGroup
+ syn keyword BG800080 purple contained containedin=@colorableGroup
+ syn keyword BGff00ff fuchsia contained containedin=@colorableGroup
+ syn keyword BG008000 green contained containedin=@colorableGroup
+ syn keyword BG00ff00 lime contained containedin=@colorableGroup
+ syn keyword BG808000 olive contained containedin=@colorableGroup
+ syn keyword BGffff00 yellow contained containedin=@colorableGroup
+ syn keyword BG000080 navy contained containedin=@colorableGroup
+ syn keyword BG0000ff blue contained containedin=@colorableGroup
+ syn keyword BG008080 teal contained containedin=@colorableGroup
+ syn keyword BG00ffff aqua contained containedin=@colorableGroup
+
+ " extra colors
+ syn keyword BGf0f8ff AliceBlue contained containedin=@colorableGroup
+ syn keyword BGfaebd7 AntiqueWhite contained containedin=@colorableGroup
+ syn keyword BG7fffd4 Aquamarine contained containedin=@colorableGroup
+ syn keyword BGf0ffff Azure contained containedin=@colorableGroup
+ syn keyword BGf5f5dc Beige contained containedin=@colorableGroup
+ syn keyword BGffe4c4 Bisque contained containedin=@colorableGroup
+ syn keyword BGffebcd BlanchedAlmond contained containedin=@colorableGroup
+ syn keyword BG8a2be2 BlueViolet contained containedin=@colorableGroup
+ syn keyword BGa52a2a Brown contained containedin=@colorableGroup
+ syn keyword BGdeb887 BurlyWood contained containedin=@colorableGroup
+ syn keyword BG5f9ea0 CadetBlue contained containedin=@colorableGroup
+ syn keyword BG7fff00 Chartreuse contained containedin=@colorableGroup
+ syn keyword BGd2691e Chocolate contained containedin=@colorableGroup
+ syn keyword BGff7f50 Coral contained containedin=@colorableGroup
+ syn keyword BG6495ed CornflowerBlue contained containedin=@colorableGroup
+ syn keyword BGfff8dc Cornsilk contained containedin=@colorableGroup
+ syn keyword BGdc143c Crimson contained containedin=@colorableGroup
+ syn keyword BG00ffff Cyan contained containedin=@colorableGroup
+ syn keyword BG00008b DarkBlue contained containedin=@colorableGroup
+ syn keyword BG008b8b DarkCyan contained containedin=@colorableGroup
+ syn keyword BGb8860b DarkGoldenRod contained containedin=@colorableGroup
+ syn keyword BGa9a9a9 DarkGray contained containedin=@colorableGroup
+ syn keyword BG006400 DarkGreen contained containedin=@colorableGroup
+ syn keyword BGa9a9a9 DarkGrey contained containedin=@colorableGroup
+ syn keyword BGbdb76b DarkKhaki contained containedin=@colorableGroup
+ syn keyword BG8b008b DarkMagenta contained containedin=@colorableGroup
+ syn keyword BG556b2f DarkOliveGreen contained containedin=@colorableGroup
+ syn keyword BG9932cc DarkOrchid contained containedin=@colorableGroup
+ syn keyword BG8b0000 DarkRed contained containedin=@colorableGroup
+ syn keyword BGe9967a DarkSalmon contained containedin=@colorableGroup
+ syn keyword BG8fbc8f DarkSeaGreen contained containedin=@colorableGroup
+ syn keyword BG483d8b DarkSlateBlue contained containedin=@colorableGroup
+ syn keyword BG2f4f4f DarkSlateGray contained containedin=@colorableGroup
+ syn keyword BG2f4f4f DarkSlateGrey contained containedin=@colorableGroup
+ syn keyword BG00ced1 DarkTurquoise contained containedin=@colorableGroup
+ syn keyword BG9400d3 DarkViolet contained containedin=@colorableGroup
+ syn keyword BGff8c00 Darkorange contained containedin=@colorableGroup
+ syn keyword BGff1493 DeepPink contained containedin=@colorableGroup
+ syn keyword BG00bfff DeepSkyBlue contained containedin=@colorableGroup
+ syn keyword BG696969 DimGray contained containedin=@colorableGroup
+ syn keyword BG696969 DimGrey contained containedin=@colorableGroup
+ syn keyword BG1e90ff DodgerBlue contained containedin=@colorableGroup
+ syn keyword BGb22222 FireBrick contained containedin=@colorableGroup
+ syn keyword BGfffaf0 FloralWhite contained containedin=@colorableGroup
+ syn keyword BG228b22 ForestGreen contained containedin=@colorableGroup
+ syn keyword BGdcdcdc Gainsboro contained containedin=@colorableGroup
+ syn keyword BGf8f8ff GhostWhite contained containedin=@colorableGroup
+ syn keyword BGffd700 Gold contained containedin=@colorableGroup
+ syn keyword BGdaa520 GoldenRod contained containedin=@colorableGroup
+ syn keyword BGadff2f GreenYellow contained containedin=@colorableGroup
+ syn keyword BG808080 Grey contained containedin=@colorableGroup
+ syn keyword BGf0fff0 HoneyDew contained containedin=@colorableGroup
+ syn keyword BGff69b4 HotPink contained containedin=@colorableGroup
+ syn keyword BGcd5c5c IndianRed contained containedin=@colorableGroup
+ syn keyword BG4b0082 Indigo contained containedin=@colorableGroup
+ syn keyword BGfffff0 Ivory contained containedin=@colorableGroup
+ syn keyword BGf0e68c Khaki contained containedin=@colorableGroup
+ syn keyword BGe6e6fa Lavender contained containedin=@colorableGroup
+ syn keyword BGfff0f5 LavenderBlush contained containedin=@colorableGroup
+ syn keyword BG7cfc00 LawnGreen contained containedin=@colorableGroup
+ syn keyword BGfffacd LemonChiffon contained containedin=@colorableGroup
+ syn keyword BGadd8e6 LightBlue contained containedin=@colorableGroup
+ syn keyword BGf08080 LightCoral contained containedin=@colorableGroup
+ syn keyword BGe0ffff LightCyan contained containedin=@colorableGroup
+ syn keyword BGfafad2 LightGoldenRodYellow contained containedin=@colorableGroup
+ syn keyword BGd3d3d3 LightGray contained containedin=@colorableGroup
+ syn keyword BG90ee90 LightGreen contained containedin=@colorableGroup
+ syn keyword BGd3d3d3 LightGrey contained containedin=@colorableGroup
+ syn keyword BGffb6c1 LightPink contained containedin=@colorableGroup
+ syn keyword BGffa07a LightSalmon contained containedin=@colorableGroup
+ syn keyword BG20b2aa LightSeaGreen contained containedin=@colorableGroup
+ syn keyword BG87cefa LightSkyBlue contained containedin=@colorableGroup
+ syn keyword BG778899 LightSlateGray contained containedin=@colorableGroup
+ syn keyword BG778899 LightSlateGrey contained containedin=@colorableGroup
+ syn keyword BGb0c4de LightSteelBlue contained containedin=@colorableGroup
+ syn keyword BGffffe0 LightYellow contained containedin=@colorableGroup
+ syn keyword BG32cd32 LimeGreen contained containedin=@colorableGroup
+ syn keyword BGfaf0e6 Linen contained containedin=@colorableGroup
+ syn keyword BGff00ff Magenta contained containedin=@colorableGroup
+ syn keyword BG66cdaa MediumAquaMarine contained containedin=@colorableGroup
+ syn keyword BG0000cd MediumBlue contained containedin=@colorableGroup
+ syn keyword BGba55d3 MediumOrchid contained containedin=@colorableGroup
+ syn keyword BG9370d8 MediumPurple contained containedin=@colorableGroup
+ syn keyword BG3cb371 MediumSeaGreen contained containedin=@colorableGroup
+ syn keyword BG7b68ee MediumSlateBlue contained containedin=@colorableGroup
+ syn keyword BG00fa9a MediumSpringGreen contained containedin=@colorableGroup
+ syn keyword BG48d1cc MediumTurquoise contained containedin=@colorableGroup
+ syn keyword BGc71585 MediumVioletRed contained containedin=@colorableGroup
+ syn keyword BG191970 MidnightBlue contained containedin=@colorableGroup
+ syn keyword BGf5fffa MintCream contained containedin=@colorableGroup
+ syn keyword BGffe4e1 MistyRose contained containedin=@colorableGroup
+ syn keyword BGffe4b5 Moccasin contained containedin=@colorableGroup
+ syn keyword BGffdead NavajoWhite contained containedin=@colorableGroup
+ syn keyword BGfdf5e6 OldLace contained containedin=@colorableGroup
+ syn keyword BG6b8e23 OliveDrab contained containedin=@colorableGroup
+ syn keyword BGffa500 Orange contained containedin=@colorableGroup
+ syn keyword BGff4500 OrangeRed contained containedin=@colorableGroup
+ syn keyword BGda70d6 Orchid contained containedin=@colorableGroup
+ syn keyword BGeee8aa PaleGoldenRod contained containedin=@colorableGroup
+ syn keyword BG98fb98 PaleGreen contained containedin=@colorableGroup
+ syn keyword BGafeeee PaleTurquoise contained containedin=@colorableGroup
+ syn keyword BGd87093 PaleVioletRed contained containedin=@colorableGroup
+ syn keyword BGffefd5 PapayaWhip contained containedin=@colorableGroup
+ syn keyword BGffdab9 PeachPuff contained containedin=@colorableGroup
+ syn keyword BGcd853f Peru contained containedin=@colorableGroup
+ syn keyword BGffc0cb Pink contained containedin=@colorableGroup
+ syn keyword BGdda0dd Plum contained containedin=@colorableGroup
+ syn keyword BGb0e0e6 PowderBlue contained containedin=@colorableGroup
+ syn keyword BGbc8f8f RosyBrown contained containedin=@colorableGroup
+ syn keyword BG4169e1 RoyalBlue contained containedin=@colorableGroup
+ syn keyword BG8b4513 SaddleBrown contained containedin=@colorableGroup
+ syn keyword BGfa8072 Salmon contained containedin=@colorableGroup
+ syn keyword BGf4a460 SandyBrown contained containedin=@colorableGroup
+ syn keyword BG2e8b57 SeaGreen contained containedin=@colorableGroup
+ syn keyword BGfff5ee SeaShell contained containedin=@colorableGroup
+ syn keyword BGa0522d Sienna contained containedin=@colorableGroup
+ syn keyword BG87ceeb SkyBlue contained containedin=@colorableGroup
+ syn keyword BG6a5acd SlateBlue contained containedin=@colorableGroup
+ syn keyword BG708090 SlateGray contained containedin=@colorableGroup
+ syn keyword BG708090 SlateGrey contained containedin=@colorableGroup
+ syn keyword BGfffafa Snow contained containedin=@colorableGroup
+ syn keyword BG00ff7f SpringGreen contained containedin=@colorableGroup
+ syn keyword BG4682b4 SteelBlue contained containedin=@colorableGroup
+ syn keyword BGd2b48c Tan contained containedin=@colorableGroup
+ syn keyword BGd8bfd8 Thistle contained containedin=@colorableGroup
+ syn keyword BGff6347 Tomato contained containedin=@colorableGroup
+ syn keyword BG40e0d0 Turquoise contained containedin=@colorableGroup
+ syn keyword BGee82ee Violet contained containedin=@colorableGroup
+ syn keyword BGf5deb3 Wheat contained containedin=@colorableGroup
+ syn keyword BGf5f5f5 WhiteSmoke contained containedin=@colorableGroup
+ syn keyword BG9acd32 YellowGreen contained containedin=@colorableGroup
+endfunction
diff --git a/build b/build
index b0ef1dac..eea71eef 100755
--- a/build
+++ b/build
@@ -117,7 +117,7 @@ PACKS="
twig:beyondwords/vim-twig
xls:vim-scripts/XSLT-syntax
yard:sheerun/vim-yardoc
- css-color:gorodinskiy/vim-coloresque
+ css-color:ap/vim-css-color
"
rm -rf tmp