1851
|
1 " Vim syntax file
|
|
2 " Language: MCabber log file
|
|
3 " Maintainer: Mikael BERTHE <mikael.berthe@lilotux.net>
|
|
4 " URL: Included in mcabber source package <http://mcabber.com>
|
|
5 " Last Change: 2010-04-01
|
|
6
|
|
7 " Place this file as ~/.vim/syntax/mcabber_log.vim
|
|
8 " and add the following line to ~/.vimrc
|
|
9 "
|
|
10 " au BufRead */.mcabber/histo/* setfiletype mcabber_log
|
|
11 "
|
|
12 " Logfile format:
|
|
13 " TT YYYYmmddTHH:MM:SSZ nnn Text (this line and the nnn following lines)
|
|
14 " TT is the data type
|
|
15 " 'YYYYmmddTHH:MM:SSZ' is a timestamp
|
|
16 "
|
|
17 " XXX Please help me to improve this syntax script!
|
|
18
|
|
19 if exists("b:current_syntax")
|
|
20 finish
|
|
21 endif
|
|
22
|
|
23 syn cluster mcabberlogStatEntry contains=mcabberlogStatus,mcabberlogDate
|
|
24 syn cluster mcabberlogMsgEntry contains=mcabberlogMsgIn,mcabberlogMsgOut,mcabberlogDate
|
|
25
|
|
26 syn region mcabberlogStatusLine
|
|
27 \ start="^S[OFDNAI_] \d\{8\}T\d\d:\d\d:\d\dZ \(\d\{3\}\) "
|
|
28 \ end="\(\_^[MS][RSIOFDNAI_] \d\{8}T.\{8}Z \d\{3} \|\%$\)\@="
|
|
29 \ contains=mcabberlogStatus,mcabberlogDate,mcabberlognlines
|
|
30 syn region mcabberlogMessageLineInfo
|
|
31 \ start="^MI \d\{8\}T\d\d:\d\d:\d\dZ \(\d\{3\}\) "
|
|
32 \ end="\(\_^[MS][RSIOFDNAI_] \d\{8}T.\{8}Z \d\{3} \|\%$\)\@="
|
|
33 \ contains=mcabberlogMsgInfo,mcabberlogDate,mcabberlognlines
|
|
34 syn region mcabberlogMessageLineIn
|
|
35 \ start="^MR \d\{8\}T\d\d:\d\d:\d\dZ \(\d\{3\}\) "
|
|
36 \ end="\(\_^[MS][RSIOFDNAI_] \d\{8}T.\{8}Z \d\{3} \|\%$\)\@="
|
|
37 \ contains=mcabberlogMsgIn,mcabberlogDate,mcabberlognlines
|
|
38
|
|
39 syn region mcabberlogMessageLineOut
|
|
40 \ start="^MS \d\{8\}T\d\d:\d\d:\d\dZ \(\d\{3\}\) "
|
|
41 \ end="\(\_^[MS][RSIOFDNAI_] \d\{8}T.\{8}Z \d\{3} \|\%$\)\@="
|
|
42 \ contains=mcabberlogMsgOut,mcabberlogDate,mcabberlognlines
|
|
43
|
|
44 syn match mcabberlogDate /\d\{8\}T\d\d:\d\d:\d\dZ/ contained contains=mcabberlogDateChar nextgroup=mcabberlognlines
|
|
45 syn match mcabberlogDateChar /[TZ]/ contained
|
|
46
|
|
47 syn match mcabberlogStatus /^S[OFDNAI_]/ contained skipwhite nextgroup=@mcabberlogStatusLine
|
|
48 syn match mcabberlogMsgIn /^MR/ contained skipwhite nextgroup=@mcabberlogMessageLine
|
|
49 syn match mcabberlogMsgOut /^MS/ contained skipwhite nextgroup=@mcabberlogMessageLine
|
|
50 syn match mcabberlogMsgInfo /^MI/ contained skipwhite nextgroup=@mcabberlogMessageLine
|
|
51
|
|
52 syn match mcabberlognlines /\<\d\{3\}\>/ contained
|
|
53
|
|
54
|
|
55 command -nargs=+ HiLink hi def link <args>
|
|
56
|
|
57 HiLink mcabberlogStatus PreProc
|
|
58
|
|
59 HiLink mcabberlogMessageLineIn Keyword
|
|
60 HiLink mcabberlogMsgIn Keyword
|
|
61
|
|
62 HiLink mcabberlogMessageLineOut Function
|
|
63 HiLink mcabberlogMsgOut Function
|
|
64
|
|
65 HiLink mcabberlogMsgInfo String
|
|
66 HiLink mcabberlogMessageLineInfo String
|
|
67
|
|
68 HiLink mcabberlogDate SpecialChar
|
|
69 HiLink mcabberlogDateChar Normal
|
|
70
|
|
71 HiLink mcabberlognlines Normal
|
|
72
|
|
73 HiLink mcabberlogStatusLine Comment
|
|
74
|
|
75 delcommand HiLink
|
|
76
|
|
77 let b:current_syntax = "mcabber_log"
|