1" Vim syntax file
2" Language:	Asterisk voicemail config file
3" Maintainer: Tilghman Lesher (Corydon76)
4" Last Change:	2006 Mar 21
5" version 0.2
6
7" quit when a syntax file was already loaded
8if exists("b:current_syntax")
9  finish
10endif
11
12syn sync clear
13syn sync fromstart
14
15
16syn keyword     asteriskvmTodo    TODO contained
17syn match       asteriskvmComment         ";.*" contains=asteriskvmTodo
18syn match       asteriskvmContext         "\[.\{-}\]"
19
20" ZoneMessages
21syn match       asteriskvmZone            "^[[:alnum:]]\+\s*=>\?\s*[[:alnum:]/_]\+|.*$" contains=zoneName,zoneDef
22syn match       zoneName                "=\zs[[:alnum:]/_]\+\ze" contained
23syn match       zoneDef                 "|\zs.*\ze$" contained
24
25syn match       asteriskvmSetting         "\<\(format\|serveremail\|minmessage\|maxmessage\|maxgreet\|skipms\|maxsilence\|silencethreshold\|maxlogins\)="
26syn match       asteriskvmSetting         "\<\(externnotify\|externpass\|directoryintro\|charset\|adsi\(fdn\|sec\|ver\)\|\(pager\)\?fromstring\|email\(subject\|body\|cmd\)\|tz\|cidinternalcontexts\|saydurationm\|dialout\|callback\)="
27syn match       asteriskvmSettingBool     "\<\(attach\|pbxskip\|usedirectory\|saycid\|sayduration\|sendvoicemail\|review\|operator\|envelope\|delete\|nextaftercmd\|forcename\|forcegreeting\)=\(yes\|no\|1\|0\|true\|false\|t\|f\)"
28
29" Individual mailbox definitions
30syn match       asteriskvmMailbox         "^[[:digit:]]\+\s*=>\?\s*[[:digit:]]\+\(,[^,]*\(,[^,]*\(,[^,]*\(,[^,]*\)\?\)\?\)\?\)\?" contains=mailboxEmail,asteriskvmSetting,asteriskvmSettingBool,comma
31syn match       mailboxEmail            ",\zs[^@=,]*@[[:alnum:]\-\.]\+\.[[:alpha:]]\{2,10}\ze" contains=comma
32syn match       comma                   "[,|]" contained
33
34" Define the default highlighting.
35" Only when an item doesn't have highlighting yet
36command -nargs=+ HiLink hi def link <args>
37
38HiLink        asteriskvmComment Comment
39HiLink        asteriskvmContext         Identifier
40HiLink        asteriskvmZone            Type
41HiLink        zoneName                String
42HiLink        zoneDef                 String
43HiLink        asteriskvmSetting         Type
44HiLink        asteriskvmSettingBool     Type
45
46HiLink        asteriskvmMailbox         Statement
47HiLink        mailboxEmail            String
48delcommand HiLink
49
50let b:current_syntax = "asteriskvm"
51
52" vim: ts=8 sw=2
53
54