1" Vim syntax file 2" Language: Asterisk config file 3" Maintainer: Jean Aunis <[email protected]> 4" Previous Maintainer: brc007 5" Updated for 1.2 by Tilghman Lesher (Corydon76) 6" Last Change: 2015 Feb 27 7" version 0.4 8 9" quit when a syntax file was already loaded 10if exists("b:current_syntax") 11 finish 12endif 13 14syn sync clear 15syn sync fromstart 16 17syn keyword asteriskTodo TODO contained 18syn match asteriskComment ";.*" contains=asteriskTodo 19syn match asteriskContext "\[.\{-}\]" 20syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority 21syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority 22syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?" 23syn 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(" 27" Digits plus oldlabel (newlabel) 28syn match asteriskPriority "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 29" oldlabel plus digits (newlabel) 30syn match asteriskPriority "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 31" s or n plus digits (newlabel) 32syn match asteriskPriority "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 33syn 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 40syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp 41syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs 42syn match asteriskCodecs "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)" 43syn 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 57 58" Define the default highlighting. 59" Only when an item doesn't have highlighting yet 60 61hi 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 85 86let b:current_syntax = "asterisk" 87" vim: ts=8 sw=2 88 89