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 60command -nargs=+ HiLink hi def link <args> 61 62HiLink asteriskComment Comment 63HiLink asteriskExten String 64HiLink asteriskContext Preproc 65HiLink asteriskPattern Type 66HiLink asteriskApp Statement 67HiLink asteriskInclude Preproc 68HiLink asteriskIncludeBad Error 69HiLink asteriskPriority Preproc 70HiLink asteriskLabel Type 71HiLink asteriskVar String 72HiLink asteriskVarLen Function 73HiLink asteriskExp Type 74HiLink asteriskCodecsPermit Preproc 75HiLink asteriskCodecs String 76HiLink asteriskType Statement 77HiLink asteriskTypeType Type 78HiLink asteriskAuth String 79HiLink asteriskAuthType Type 80HiLink asteriskIPRange Identifier 81HiLink asteriskIP Identifier 82HiLink asteriskPort Identifier 83HiLink asteriskHostname Identifier 84HiLink asteriskSetting Statement 85HiLink asteriskError Error 86delcommand HiLink 87 88let b:current_syntax = "asterisk" 89" vim: ts=8 sw=2 90 91