Merge remote-tracking branch 'upstream/master'

# Conflicts:
#	README.md
This commit is contained in:
Konstantin Gorodinskii
2020-04-08 08:37:21 +02:00
3 changed files with 509 additions and 533 deletions

13
.editorconfig Normal file
View File

@@ -0,0 +1,13 @@
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = tab
indent_size = 4

View File

@@ -1,13 +1,4 @@
Coloresque
==========
***
**Important!** If you experience any lags in css/html/less/sass files please update to latest version(0.9.5) of plugin.
The issue [#13](https://github.com/gorodinskiy/vim-coloresque/issues/13) from 26.09.2013. Sorry for the inconvenience.
***
# Coloresque
![pic](https://raw.github.com/gorodinskiy/vim-coloresque/master/screen.png)

View File

@@ -26,6 +26,7 @@ function! s:FGForBG(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
@@ -34,24 +35,7 @@ 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
@@ -70,11 +54,9 @@ function! s:MatchColorValue(color, part)
if !exists('b:matchescache')
let b:matchescache = {}
elseif !exists('b:matchescache[a:part]')
let b:matchescache[a:part] = matchadd(group, a:part, -1)
let b:matchescache[a:part] = matchadd(group, '\w\@<!'.a:part, -1)
endif
"call add(w:matchescache, matchadd(group, a:part, -1))
return ''
endfunction
@@ -111,199 +93,191 @@ function! s: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+=.
setlocal isk+=-
setlocal isk+=#
setlocal isk+=.
if !exists('b:color_pattern')
let b:color_pattern = {}
return
endif
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'
\}
\ '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)
@@ -316,9 +290,9 @@ function! s:PreviewCSSColor(str)
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*\%(,[^)]*\)\?)'
\ 'hex' : '\w\@<!#[0-9A-Fa-f]\{3\}\>\|#[0-9A-Fa-f]\{6\}\>',
\ 'rgba' : '\w\@<!rgba\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)',
\ 'hsla' : '\w\@<!hsla\?(\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*,\s*\(\d\{1,3}%\?\)\s*\%(,[^)]*\)\?)'
\ }
"\ 'color': w:colorDictRegExp
@@ -327,12 +301,12 @@ function! s:PreviewCSSColor(str)
for exp in keys(colorexps)
let place=0
if exists("foundcolor")
if exists('foundcolor')
unlet foundcolor
endif
while 1
if exp=='rgba'||exp=='hsla'
if exp ==# 'rgba' || exp ==# 'hsla'
let foundcolor = matchlist(a:str, colorexps[exp], place)
else
let foundcolor = matchstr(a:str, colorexps[exp], place)
@@ -344,21 +318,21 @@ function! s:PreviewCSSColor(str)
break
endif
if exp=='hex'
if exp ==# 'hex'
let part = foundcolor.'\>'
else
let part = foundcolor[0]
endif
if exp=='hex'
if exp ==# 'hex'
if len(foundcolor) == 4
let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
endif
call s:MatchColorValue(strpart(foundcolor, 1), part)
elseif exp=='rgba'
elseif exp ==# 'rgba'
"TODO get rid of duplicated variables
call s:MatchColorValue(s:HexForRGBValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
elseif exp=='hsla'
elseif exp ==# 'hsla'
call s:MatchColorValue(s:HexForHSLValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
endif
endwhile
@@ -366,22 +340,21 @@ function! s:PreviewCSSColor(str)
endfunction
if has("gui_running") || &t_Co==256
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
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')
if !has('gui_running') && !has("termguicolors")
let s:black = 0
let s:white = 15
@@ -406,6 +379,7 @@ if has("gui_running") || &t_Co==256
\ [ 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 += [
@@ -445,6 +419,7 @@ if has("gui_running") || &t_Co==256
\ + 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
@@ -476,6 +451,7 @@ if has("gui_running") || &t_Co==256
let smallest_distance = distance
let best_match = idx
endfor
return best_match
endfunction
endif
@@ -619,14 +595,10 @@ if has("gui_running") || &t_Co==256
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!
augroup coloresque
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('.')
augroup END
endif