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" |
|