blob: 4b3d246e39257050f669537a2fd18e18825624ae [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 Moolenaar89bcfda2016-08-30 23:26:57 +02008
9" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000011 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 Moolenaar2b8388b2015-02-28 13:11:45 +010020syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority
21syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +020022syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|l\?e\?switch\|\(no\)\?load\)\s*=>\?"
Bram Moolenaareee697b2006-03-21 21:20:39 +000023syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained
24syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained
25syn match asteriskApp ",\zs[a-zA-Z]\+\ze$"
26syn match asteriskApp ",\zs[a-zA-Z]\+\ze("
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000027" Digits plus oldlabel (newlabel)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010028syn match asteriskPriority "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaareee697b2006-03-21 21:20:39 +000029" oldlabel plus digits (newlabel)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010030syn match asteriskPriority "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000031" s or n plus digits (newlabel)
Bram Moolenaar2b8388b2015-02-28 13:11:45 +010032syn match asteriskPriority "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel
Bram Moolenaareee697b2006-03-21 21:20:39 +000033syn match asteriskLabel "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained
34syn match asteriskError "^\s*#\s*[[:alnum:]]*"
35syn match asteriskInclude "^\s*#\s*\(include\|exec\)\s.*"
36syn match asteriskVar "\${_\{0,2}[[:alpha:]][[:alnum:]_]*\(:-\?[[:digit:]]\+\(:[[:digit:]]\+\)\?\)\?}"
37syn match asteriskVar "_\{0,2}[[:alpha:]][[:alnum:]_]*\ze="
38syn match asteriskVarLen "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}" contains=asteriskVar,asteriskVarLen,asteriskExp
39syn match asteriskVarLen "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000040syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp
Bram Moolenaareee697b2006-03-21 21:20:39 +000041syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs
Bram Moolenaar4f4d51a2020-10-11 13:57:40 +020042syn match asteriskCodecs "\(vp9\|vp8\|h264\|h263p\|h263\|h261\|jpeg\|opus\|g722\|g723\|gsm\|ulaw\|alaw\|g719\|g726\|g726aal2\|siren7\|siren14\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|wav\|all\s*$\)"
Bram Moolenaareee697b2006-03-21 21:20:39 +000043syn match asteriskError "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$"
44syn match asteriskType "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType
45syn match asteriskTypeType "\<\(peer\|user\|friend\)\>" contained
46syn match asteriskAuth "^\zsauth\s*=\ze\s*\<\(md5\|rsa\|plaintext\)\>$" contains=asteriskAuthType
47syn match asteriskAuthType "\<\(md5\|rsa\|plaintext\)\>"
48syn match asteriskAuth "^\zs\(secret\|inkeys\|outkey\)\s*=\ze.*$"
49syn 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
50syn 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
51syn match asteriskIP "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained
52syn match asteriskHostname "[[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}" contained
53syn match asteriskPort "\d\{1,5}" contained
54syn match asteriskSetting "^bindaddr\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}$" contains=asteriskIP
55syn match asteriskSetting "^port\s*=\s*\d\{1,5}\s*$" contains=asteriskPort
56syn 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 +000057
58" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020059" Only when an item doesn't have highlighting yet
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000060
Bram Moolenaarf37506f2016-08-31 22:22:10 +020061hi def link asteriskComment Comment
62hi def link asteriskExten String
63hi def link asteriskContext Preproc
64hi def link asteriskPattern Type
65hi def link asteriskApp Statement
66hi def link asteriskInclude Preproc
67hi def link asteriskIncludeBad Error
68hi def link asteriskPriority Preproc
69hi def link asteriskLabel Type
70hi def link asteriskVar String
71hi def link asteriskVarLen Function
72hi def link asteriskExp Type
73hi def link asteriskCodecsPermit Preproc
74hi def link asteriskCodecs String
75hi def link asteriskType Statement
76hi def link asteriskTypeType Type
77hi def link asteriskAuth String
78hi def link asteriskAuthType Type
79hi def link asteriskIPRange Identifier
80hi def link asteriskIP Identifier
81hi def link asteriskPort Identifier
82hi def link asteriskHostname Identifier
83hi def link asteriskSetting Statement
84hi def link asteriskError Error
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020085
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000086let b:current_syntax = "asterisk"
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000087" vim: ts=8 sw=2
Bram Moolenaareee697b2006-03-21 21:20:39 +000088