blob: fd4ec39c91a3de7ebfb5e3758c9bf6ee32f5c16a [file] [log] [blame]
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00001" Vim syntax file
2" Language: Asterisk config file
Bram Moolenaar2b8388b2015-02-28 13:11:45 +01003" Maintainer: Jean Aunis <jean.aunis@yahoo.fr>
4" Previous Maintainer: brc007
Bram Moolenaareee697b2006-03-21 21:20:39 +00005" Updated for 1.2 by Tilghman Lesher (Corydon76)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +01006" Last Change: 2015 Feb 27
Bram Moolenaareee697b2006-03-21 21:20:39 +00007" version 0.4
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00008"
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +00009if version < 600
10 syntax clear
11elseif exists("b:current_syntax")
12 finish
13endif
14
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000015syn sync clear
16syn sync fromstart
17
Bram Moolenaareee697b2006-03-21 21:20:39 +000018syn keyword asteriskTodo TODO contained
19syn match asteriskComment ";.*" contains=asteriskTodo
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000020syn match asteriskContext "\[.\{-}\]"
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010021syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority
22syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority
Bram Moolenaareee697b2006-03-21 21:20:39 +000023syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?"
24syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
25syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
26syn match asteriskApp ",\zs[a-zA-Z]\+\ze$"
27syn match asteriskApp ",\zs[a-zA-Z]\+\ze("
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000028" Digits plus oldlabel (newlabel)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010029syn match asteriskPriority "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaareee697b2006-03-21 21:20:39 +000030" oldlabel plus digits (newlabel)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010031syn match asteriskPriority "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000032" s or n plus digits (newlabel)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010033syn match asteriskPriority "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaareee697b2006-03-21 21:20:39 +000034syn match asteriskLabel "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained
35syn match asteriskError "^\s*#\s*[[:alnum:]]*"
36syn match asteriskInclude "^\s*#\s*\(include\|exec\)\s.*"
37syn match asteriskVar "\${_\{0,2}[[:alpha:]][[:alnum:]_]*\(:-\?[[:digit:]]\+\(:[[:digit:]]\+\)\?\)\?}"
38syn match asteriskVar "_\{0,2}[[:alpha:]][[:alnum:]_]*\ze="
39syn match asteriskVarLen "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}" contains=asteriskVar,asteriskVarLen,asteriskExp
40syn match asteriskVarLen "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000041syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp
Bram Moolenaareee697b2006-03-21 21:20:39 +000042syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs
43syn match asteriskCodecs "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)"
44syn match asteriskError "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$"
45syn match asteriskType "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType
46syn match asteriskTypeType "\<\(peer\|user\|friend\)\>" contained
47syn match asteriskAuth "^\zsauth\s*=\ze\s*\<\(md5\|rsa\|plaintext\)\>$" contains=asteriskAuthType
48syn match asteriskAuthType "\<\(md5\|rsa\|plaintext\)\>"
49syn match asteriskAuth "^\zs\(secret\|inkeys\|outkey\)\s*=\ze.*$"
50syn 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
51syn 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
52syn match asteriskIP "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained
53syn match asteriskHostname "[[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}" contained
54syn match asteriskPort "\d\{1,5}" contained
55syn match asteriskSetting "^bindaddr\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}$" contains=asteriskIP
56syn match asteriskSetting "^port\s*=\s*\d\{1,5}\s*$" contains=asteriskPort
57syn 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 +000058
59" Define the default highlighting.
60" For version 5.7 and earlier: only when not done already
61" For version 5.8 and later: only when an item doesn't have highlighting yet
Bram Moolenaareee697b2006-03-21 21:20:39 +000062if version >= 508 || !exists("did_conf_syntax_inits")
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000063 if version < 508
64 let did_conf_syntax_inits = 1
65 command -nargs=+ HiLink hi link <args>
66 else
67 command -nargs=+ HiLink hi def link <args>
68 endif
69
Bram Moolenaareee697b2006-03-21 21:20:39 +000070 HiLink asteriskComment Comment
71 HiLink asteriskExten String
72 HiLink asteriskContext Preproc
73 HiLink asteriskPattern Type
74 HiLink asteriskApp Statement
75 HiLink asteriskInclude Preproc
76 HiLink asteriskIncludeBad Error
77 HiLink asteriskPriority Preproc
78 HiLink asteriskLabel Type
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000079 HiLink asteriskVar String
80 HiLink asteriskVarLen Function
81 HiLink asteriskExp Type
Bram Moolenaareee697b2006-03-21 21:20:39 +000082 HiLink asteriskCodecsPermit Preproc
83 HiLink asteriskCodecs String
84 HiLink asteriskType Statement
85 HiLink asteriskTypeType Type
86 HiLink asteriskAuth String
87 HiLink asteriskAuthType Type
88 HiLink asteriskIPRange Identifier
89 HiLink asteriskIP Identifier
90 HiLink asteriskPort Identifier
91 HiLink asteriskHostname Identifier
92 HiLink asteriskSetting Statement
93 HiLink asteriskError Error
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000094 delcommand HiLink
95endif
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000096let b:current_syntax = "asterisk"
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000097" vim: ts=8 sw=2
Bram Moolenaareee697b2006-03-21 21:20:39 +000098