mirror of
https://github.com/gko/vim-coloresque.git
synced 2025-12-08 21:54:53 +08:00
Merge remote-tracking branch 'upstream/master'
# Conflicts: # README.md
This commit is contained in:
13
.editorconfig
Normal file
13
.editorconfig
Normal 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
|
||||
11
README.md
11
README.md
@@ -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
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user