Merge branch 'master' into pr/23

This commit is contained in:
Konstantin
2020-05-03 21:11:16 +02:00
5 changed files with 525 additions and 535 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)
@@ -20,10 +11,17 @@ The main goal was to fix cursorline [bug](https://github.com/skammer/vim-css-col
### Installation
Via [vundle](https://github.com/gmarik/vundle):
Via [Vundle](https://github.com/gmarik/vundle):
```
Bundle 'https://github.com/gorodinskiy/vim-coloresque.git'
Bundle 'https://github.com/gko/vim-coloresque.git'
```
Via [Plug](https://github.com/junegunn/vim-plug):
```
Plug 'gko/vim-coloresque'
```
### Features

View File

@@ -8,6 +8,12 @@
" https://github.com/lilydjwg/colorizer
" vim:et:ts=2 sw=2 sts=2
if exists('g:did_coloresque_loaded') || v:version < 800
finish
endif
let g:did_coloresque_loaded = 1
let s:hex={}
let b:matchescache = {}
let b:color_pattern = {}
@@ -32,6 +38,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
@@ -40,24 +47,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
@@ -76,11 +66,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
@@ -117,38 +105,31 @@ 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
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 = {
@@ -301,12 +282,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)
@@ -319,9 +298,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
@@ -330,12 +309,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)
@@ -347,21 +326,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
@@ -369,22 +348,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
@@ -409,6 +387,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 += [
@@ -448,6 +427,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
@@ -479,6 +459,7 @@ if has("gui_running") || &t_Co==256
let smallest_distance = distance
let best_match = idx
endfor
return best_match
endfunction
endif
@@ -622,14 +603,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

1
after/syntax/r.vim Normal file
View File

@@ -0,0 +1 @@
syn include syntax/css/vim-coloresque.vim

1
after/syntax/yaml.vim Normal file
View File

@@ -0,0 +1 @@
syn include syntax/css/vim-coloresque.vim