mcabber/contrib/mcabber_log.vim
changeset 1853 32bceb73895c
parent 1852 057b514b1f12
child 1854 1d1e0f98d459
equal deleted inserted replaced
1852:057b514b1f12 1853:32bceb73895c
     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"