42 lines
1.6 KiB
VimL
42 lines
1.6 KiB
VimL
"gvim plugin for highlighting hex codes to help with tweaking colors
|
|
"Last Change: 2010 Jan 21
|
|
"Maintainer: Yuri Feldman <feldman.yuri1@gmail.com>
|
|
"License: WTFPL - Do What The Fuck You Want To Public License.
|
|
"Email me if you'd like.
|
|
let s:HexColored = 0
|
|
let s:HexColors = []
|
|
|
|
map <Leader><F10> :call HexHighlight()<Return>
|
|
function! HexHighlight()
|
|
if has("gui_running")
|
|
if s:HexColored == 0
|
|
let hexGroup = 4
|
|
let lineNumber = 0
|
|
while lineNumber <= line("$")
|
|
let currentLine = getline(lineNumber)
|
|
let hexLineMatch = 1
|
|
while match(currentLine, '#\x\{6}', 0, hexLineMatch) != -1
|
|
let hexMatch = matchstr(currentLine, '#\x\{6}', 0, hexLineMatch)
|
|
exe 'hi hexColor'.hexGroup.' guifg='.hexMatch.' guibg='.hexMatch
|
|
exe 'let m = matchadd("hexColor'.hexGroup.'", "'.hexMatch.'", 25, '.hexGroup.')'
|
|
let s:HexColors += ['hexColor'.hexGroup]
|
|
let hexGroup += 1
|
|
let hexLineMatch += 1
|
|
endwhile
|
|
let lineNumber += 1
|
|
endwhile
|
|
unlet lineNumber hexGroup
|
|
let s:HexColored = 1
|
|
echo "Highlighting hex colors..."
|
|
elseif s:HexColored == 1
|
|
for hexColor in s:HexColors
|
|
exe 'highlight clear '.hexColor
|
|
endfor
|
|
call clearmatches()
|
|
let s:HexColored = 0
|
|
echo "Unhighlighting hex colors..."
|
|
endif
|
|
else
|
|
echo "hexHighlight only works with a graphical version of vim"
|
|
endif
|
|
endfunction
|