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,41 +93,35 @@ 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 = {
@@ -298,12 +274,10 @@ function! s:AdditionalColors()
\ '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