diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-02-17 15:44:20 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-02-17 17:29:55 -0600 |
commit | 31cecdb8b33661f775766ece2c6e2dbe2fab215e (patch) | |
tree | 3694effbf2d07399229cc8129d21fce715ad8ccb /vim/syntax | |
parent | 5aca244430309339943d4bd53936aa18e31493e7 (diff) | |
download | conf-31cecdb8b33661f775766ece2c6e2dbe2fab215e.tar.gz conf-31cecdb8b33661f775766ece2c6e2dbe2fab215e.zip |
add irssi log syntax highlighting (diz++)
Diffstat (limited to 'vim/syntax')
-rw-r--r-- | vim/syntax/irssilog.vim | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/vim/syntax/irssilog.vim b/vim/syntax/irssilog.vim new file mode 100644 index 0000000..230e52b --- /dev/null +++ b/vim/syntax/irssilog.vim @@ -0,0 +1,67 @@ +" Irssi Log syntax file +" Language: Irssi log +" Maintainer: Will Gray <graywh@gmail.com> +" GetLatestVimScripts: 2553 1 :AutoInstall: irssilog.vim +" +" Based on work by TODO + +if exists("b:current_syntax") + finish +endif + +let b:current_syntax = 'irssilog' + +setlocal iskeyword+=45,91-96,123-125 + +syntax spell notoplevel + +syntax region irssiLogMsg start='^---' end='$' + +syntax match irssiTimestamp '^\d\{2}:\d\{2}\(:\d\{2}\)\?' nextgroup=@irssiItems skipwhite + +syntax region irssiNickRegion matchgroup=irssiDelimiter start='<' end='>' contained contains=@irssiNicks +syntax match irssiNick '[ @~&+]\=\<\k*\>' contained + +syntax match irssiAction '\* \k* ' contained +syntax region irssiMsg start='-!-' end='$' contained +syntax region irssiNotice start='\*\{3}' end=':' contained + +syntax cluster irssiItems contains=irssiNickRegion,irssiAction,irssiMsg,irssiNotice +syntax cluster irssiNicks contains=irssiNick + +if version >= 508 || !exists("did_irssilog_syntax_inits") + if version < 508 + let did_irssilog_syntax_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink irssiLogMsg PreProc + HiLink irssiTimestamp TT + HiLink irssiAction Identifier + HiLink irssiMsg Identifier + HiLink irssiNotice PreProc + + HiLink irssiDelimiter irssi + + delcommand HiLink +endif + +if filereadable($HOME . '/.irssi/saved_colors') && !exists("irssilog_no_saved_nick_colors") + + let s:colormap = [0, 4, 2, 9, 1, 5, 3, 11, 10, 6, 14, 12, 13, 8, 7, 15] + + for s:line in readfile($HOME . '/.irssi/saved_colors') + let s:words = split(s:line, ':') + let s:nick = escape(s:words[0], '\.*[^$') + let s:clean = substitute(s:words[0], '[^_a-zA-Z0-9]', '_', 'g') + let s:color = s:colormap[s:words[1] - 1] + + exec 'syntax match irssiNick_' . s:clean . ' /[ @~&+]\=\<' . s:nick . '\>/ contained' + exec 'syntax cluster irssiNicks add=irssiNick_' . s:clean + exec 'highlight irssiNick_' . s:clean . ' ctermfg=' . s:color . ' guifg=' . s:color + endfor + + unlet s:colormap s:line s:words s:nick s:clean s:color +endif |