mirror of
https://github.com/gko/vim-coloresque.git
synced 2025-12-09 14:14:52 +08:00
+
This commit is contained in:
@@ -34,33 +34,37 @@ let s:fg_color_calc = 'let color = "#" . toupper(a:color)'
|
|||||||
|
|
||||||
function! s:RestoreColors()
|
function! s:RestoreColors()
|
||||||
for part in keys(b:color_pattern)
|
for part in keys(b:color_pattern)
|
||||||
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')
|
"if b:color_pattern[part]=="ffffff"
|
||||||
let b:matchescache={}
|
"echoe part
|
||||||
endif
|
"endif
|
||||||
|
|
||||||
let b:matchescache[part] = matchadd(group, part, -1)
|
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
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:MatchColorValue(color, pattern, part)
|
function! s:MatchColorValue(color, part)
|
||||||
if ! len(a:color) | return | endif
|
if ! len(a:color) | return | endif
|
||||||
|
|
||||||
let pattern = a:pattern
|
let group = 'cssColor' . tolower(a:color)
|
||||||
" if pattern ends on word character, require word break to match
|
|
||||||
if pattern =~ '\>$' | let pattern .= '\>' | endif
|
|
||||||
|
|
||||||
let group = 'cssColor' . tolower(a:color)
|
|
||||||
exe s:fg_color_calc
|
|
||||||
if !exists('b:color_pattern[a:part]')
|
if !exists('b:color_pattern[a:part]')
|
||||||
let b:color_pattern[a:part]= a:color
|
exe s:fg_color_calc
|
||||||
"exe 'syn match' group '/'.escape(pattern, '/').'/ contained'
|
exe 'syn cluster cssColors add='.group
|
||||||
exe 'syn cluster cssColors add='.group
|
exe 'hi' group s:color_prefix.'bg='.color s:color_prefix.'fg='.s:FGForBG(a:color)
|
||||||
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
|
endif
|
||||||
|
|
||||||
if !exists('b:matchescache')
|
if !exists('b:matchescache')
|
||||||
@@ -69,6 +73,8 @@ function! s:MatchColorValue(color, pattern, part)
|
|||||||
let b:matchescache[a:part] = matchadd(group, a:part, -1)
|
let b:matchescache[a:part] = matchadd(group, a:part, -1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
"call add(w:matchescache, matchadd(group, a:part, -1))
|
||||||
|
|
||||||
return ''
|
return ''
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -112,6 +118,7 @@ function! s:ClearMatches()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:VimCssInit(update)
|
function! s:VimCssInit(update)
|
||||||
|
|
||||||
if a:update==1
|
if a:update==1
|
||||||
call s:ClearMatches()
|
call s:ClearMatches()
|
||||||
endif
|
endif
|
||||||
@@ -119,10 +126,10 @@ function! s:VimCssInit(update)
|
|||||||
:set isk+=#
|
:set isk+=#
|
||||||
:set isk+=.
|
:set isk+=.
|
||||||
|
|
||||||
"if exists('b:color_pattern')&&len(keys(b:color_pattern))>0
|
if len(keys(b:color_pattern))>0
|
||||||
"call s:RestoreColors()
|
call s:RestoreColors()
|
||||||
"return
|
return
|
||||||
"endif
|
endif
|
||||||
|
|
||||||
"let b:matchescache = {}
|
"let b:matchescache = {}
|
||||||
|
|
||||||
@@ -135,9 +142,9 @@ function! s:VimCssInit(update)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:AdditionalColors()
|
function! s:AdditionalColors()
|
||||||
if exists('&w:colorDictRegExp')&&w:colorDictRegExp!=''
|
"if exists('&b:colorDictRegExp')&&b:colorDictRegExp!=''
|
||||||
return
|
"return
|
||||||
endif
|
"endif
|
||||||
|
|
||||||
" w3c Colors
|
" w3c Colors
|
||||||
" plus extra colors
|
" plus extra colors
|
||||||
@@ -294,7 +301,7 @@ function! s:AdditionalColors()
|
|||||||
"let w:colorDictRegExp = '\('
|
"let w:colorDictRegExp = '\('
|
||||||
for _color in keys(w:colorDict)
|
for _color in keys(w:colorDict)
|
||||||
"let w:colorDictRegExp.='\<'._color.'\>\|'
|
"let w:colorDictRegExp.='\<'._color.'\>\|'
|
||||||
call s:MatchColorValue(strpart(w:colorDict[tolower(_color)], 1), w:colorDict[tolower(_color)], '\<\c'._color.'\>')
|
call s:MatchColorValue(strpart(w:colorDict[tolower(_color)], 1), '\<\c'._color.'\>')
|
||||||
endfor
|
endfor
|
||||||
"let w:colorDictRegExp=strpart(w:colorDictRegExp, 0, len(w:colorDictRegExp)-2).'\)\c'
|
"let w:colorDictRegExp=strpart(w:colorDictRegExp, 0, len(w:colorDictRegExp)-2).'\)\c'
|
||||||
endfunction
|
endfunction
|
||||||
@@ -347,12 +354,12 @@ function! s:PreviewCSSColor(str)
|
|||||||
if len(foundcolor) == 4
|
if len(foundcolor) == 4
|
||||||
let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
|
let foundcolor = substitute(foundcolor, '[[:xdigit:]]', '&&', 'g')
|
||||||
endif
|
endif
|
||||||
call s:MatchColorValue(strpart(foundcolor, 1), foundcolor, part)
|
call s:MatchColorValue(strpart(foundcolor, 1), part)
|
||||||
elseif exp=='rgba'
|
elseif exp=='rgba'
|
||||||
"TODO get rid of duplicated variables
|
"TODO get rid of duplicated variables
|
||||||
call s:MatchColorValue(s:HexForRGBValue(foundcolor[1], foundcolor[2], foundcolor[3]), foundcolor[0], part)
|
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]), foundcolor[0], part)
|
call s:MatchColorValue(s:HexForHSLValue(foundcolor[1], foundcolor[2], foundcolor[3]), part)
|
||||||
endif
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
endfor
|
endfor
|
||||||
@@ -612,10 +619,16 @@ if has("gui_running") || &t_Co==256
|
|||||||
hi cssColorfffff0 guibg=#FFFFF0 guifg=#000000 ctermbg=15 ctermfg=16 | syn cluster cssColors add=cssColorfffff0
|
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
|
hi cssColorffffff guibg=#FFFFFF guifg=#000000 ctermbg=231 ctermfg=16 | syn cluster cssColors add=cssColorffffff
|
||||||
|
|
||||||
call s:VimCssInit(1)
|
" sdfad
|
||||||
|
|
||||||
autocmd CursorMoved <buffer> silent call s:ProcessByLine('.')
|
"call s:VimCssInit(1)
|
||||||
autocmd CursorMovedI <buffer> silent call s:ProcessByLine('.')
|
|
||||||
autocmd ColorScheme <buffer> silent call s:VimCssInit(1)
|
":augroup css
|
||||||
autocmd BufEnter <buffer> silent call s:VimCssInit(1)
|
"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
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user