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" 9if version < 600 10 syntax clear 11elseif exists("b:current_syntax") 12 finish 13endif 14 15syn sync clear 16syn sync fromstart 17 18syn keyword asteriskTodo TODO contained 19syn match asteriskComment ";.*" contains=asteriskTodo 20syn match asteriskContext "\[.\{-}\]" 21syn match asteriskExten "^\s*\zsexten\s*=>\?\s*[^,]\+\ze," contains=asteriskPattern nextgroup=asteriskPriority 22syn match asteriskExten "^\s*\zssame\s*=>\?\s*\ze" nextgroup=asteriskPriority 23syn 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(" 28" Digits plus oldlabel (newlabel) 29syn match asteriskPriority "\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 30" oldlabel plus digits (newlabel) 31syn match asteriskPriority "\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 32" s or n plus digits (newlabel) 33syn match asteriskPriority "\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 34syn 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 41syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp 42syn 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 58 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 62if version >= 508 || !exists("did_conf_syntax_inits") 63 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 70 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 79 HiLink asteriskVar String 80 HiLink asteriskVarLen Function 81 HiLink asteriskExp Type 82 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 94 delcommand HiLink 95endif 96let b:current_syntax = "asterisk" 97" vim: ts=8 sw=2 98 99