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
36
37hi def link        asteriskvmComment Comment
38hi def link        asteriskvmContext         Identifier
39hi def link        asteriskvmZone            Type
40hi def link        zoneName                String
41hi def link        zoneDef                 String
42hi def link        asteriskvmSetting         Type
43hi def link        asteriskvmSettingBool     Type
44
45hi def link        asteriskvmMailbox         Statement
46hi def link        mailboxEmail            String
47
48let b:current_syntax = "asteriskvm"
49
50" vim: ts=8 sw=2
51
52