blob: 58e867d42a0357ae0a19e4dcc39aecbbf7f5ce89 [file] [log] [blame]
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00001" Vim syntax file
2" Language: Asterisk config file
Bram Moolenaareee697b2006-03-21 21:20:39 +00003" Maintainer: brc007
4" Updated for 1.2 by Tilghman Lesher (Corydon76)
5" Last Change: 2006 Mar 20
6" version 0.4
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00007"
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00008if version < 600
9 syntax clear
10elseif exists("b:current_syntax")
11 finish
12endif
13
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000014syn sync clear
15syn sync fromstart
16
Bram Moolenaareee697b2006-03-21 21:20:39 +000017syn keyword asteriskTodo TODO contained
18syn match asteriskComment ";.*" contains=asteriskTodo
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000019syn match asteriskContext "\[.\{-}\]"
Bram Moolenaareee697b2006-03-21 21:20:39 +000020syn match asteriskExten "^\s*exten\s*=>\?\s*[^,]\+" contains=asteriskPattern
21syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?"
22syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
23syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
24syn match asteriskApp ",\zs[a-zA-Z]\+\ze$"
25syn match asteriskApp ",\zs[a-zA-Z]\+\ze("
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000026" Digits plus oldlabel (newlabel)
Bram Moolenaareee697b2006-03-21 21:20:39 +000027syn match asteriskPriority ",\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
28" oldlabel plus digits (newlabel)
29syn match asteriskPriority ",\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000030" s or n plus digits (newlabel)
Bram Moolenaareee697b2006-03-21 21:20:39 +000031syn match asteriskPriority ",\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
32syn match asteriskLabel "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained
33syn match asteriskError "^\s*#\s*[[:alnum:]]*"
34syn match asteriskInclude "^\s*#\s*\(include\|exec\)\s.*"
35syn match asteriskVar "\${_\{0,2}[[:alpha:]][[:alnum:]_]*\(:-\?[[:digit:]]\+\(:[[:digit:]]\+\)\?\)\?}"
36syn match asteriskVar "_\{0,2}[[:alpha:]][[:alnum:]_]*\ze="
37syn match asteriskVarLen "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}" contains=asteriskVar,asteriskVarLen,asteriskExp
38syn match asteriskVarLen "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000039syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp
Bram Moolenaareee697b2006-03-21 21:20:39 +000040syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs
41syn match asteriskCodecs "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)"
42syn match asteriskError "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$"
43syn match asteriskType "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType
44syn match asteriskTypeType "\<\(peer\|user\|friend\)\>" contained
45syn match asteriskAuth "^\zsauth\s*=\ze\s*\<\(md5\|rsa\|plaintext\)\>$" contains=asteriskAuthType
46syn match asteriskAuthType "\<\(md5\|rsa\|plaintext\)\>"
47syn match asteriskAuth "^\zs\(secret\|inkeys\|outkey\)\s*=\ze.*$"
48syn match asteriskAuth "^\(permit\|deny\)\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\s*$" contains=asteriskIPRange
49syn match asteriskIPRange "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained
50syn match asteriskIP "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained
51syn match asteriskHostname "[[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}" contained
52syn match asteriskPort "\d\{1,5}" contained
53syn match asteriskSetting "^bindaddr\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}$" contains=asteriskIP
54syn match asteriskSetting "^port\s*=\s*\d\{1,5}\s*$" contains=asteriskPort
55syn match asteriskSetting "^host\s*=\s*\(dynamic\|\(\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)\|\([[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}\)\)" contains=asteriskIP,asteriskHostname
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000056
57" Define the default highlighting.
58" For version 5.7 and earlier: only when not done already
59" For version 5.8 and later: only when an item doesn't have highlighting yet
Bram Moolenaareee697b2006-03-21 21:20:39 +000060if version >= 508 || !exists("did_conf_syntax_inits")
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000061 if version < 508
62 let did_conf_syntax_inits = 1
63 command -nargs=+ HiLink hi link <args>
64 else
65 command -nargs=+ HiLink hi def link <args>
66 endif
67
Bram Moolenaareee697b2006-03-21 21:20:39 +000068 HiLink asteriskComment Comment
69 HiLink asteriskExten String
70 HiLink asteriskContext Preproc
71 HiLink asteriskPattern Type
72 HiLink asteriskApp Statement
73 HiLink asteriskInclude Preproc
74 HiLink asteriskIncludeBad Error
75 HiLink asteriskPriority Preproc
76 HiLink asteriskLabel Type
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000077 HiLink asteriskVar String
78 HiLink asteriskVarLen Function
79 HiLink asteriskExp Type
Bram Moolenaareee697b2006-03-21 21:20:39 +000080 HiLink asteriskCodecsPermit Preproc
81 HiLink asteriskCodecs String
82 HiLink asteriskType Statement
83 HiLink asteriskTypeType Type
84 HiLink asteriskAuth String
85 HiLink asteriskAuthType Type
86 HiLink asteriskIPRange Identifier
87 HiLink asteriskIP Identifier
88 HiLink asteriskPort Identifier
89 HiLink asteriskHostname Identifier
90 HiLink asteriskSetting Statement
91 HiLink asteriskError Error
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000092 delcommand HiLink
93endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000094let b:current_syntax = "asterisk"
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000095" vim: ts=8 sw=2
Bram Moolenaareee697b2006-03-21 21:20:39 +000096