1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
|