1" Vim syntax file 2" Language: Asterisk config file 3" Maintainer: brc007 4" Updated for 1.2 by Tilghman Lesher (Corydon76) 5" Last Change: 2006 Mar 20 6" version 0.4 7" 8if version < 600 9 syntax clear 10elseif 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*exten\s*=>\?\s*[^,]\+" contains=asteriskPattern 21syn match asteriskExten "^\s*\(register\|channel\|ignorepat\|include\|\(no\)\?load\)\s*=>\?" 22syn match asteriskPattern "_\(\[[[:alnum:]#*\-]\+\]\|[[:alnum:]#*]\)*\.\?" contained 23syn match asteriskPattern "[^A-Za-z0-9,]\zs[[:alnum:]#*]\+\ze" contained 24syn match asteriskApp ",\zs[a-zA-Z]\+\ze$" 25syn match asteriskApp ",\zs[a-zA-Z]\+\ze(" 26" Digits plus oldlabel (newlabel) 27syn match asteriskPriority ",\zs[[:digit:]]\+\(+[[:alpha:]][[:alnum:]_]*\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 28" oldlabel plus digits (newlabel) 29syn match asteriskPriority ",\zs[[:alpha:]][[:alnum:]_]*+[[:digit:]]\+\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 30" s or n plus digits (newlabel) 31syn match asteriskPriority ",\zs[sn]\(+[[:digit:]]\+\)\?\(([[:alpha:]][[:alnum:]_]*)\)\?\ze," contains=asteriskLabel 32syn match asteriskLabel "(\zs[[:alpha:]][[:alnum:]]*\ze)" contained 33syn match asteriskError "^\s*#\s*[[:alnum:]]*" 34syn match asteriskInclude "^\s*#\s*\(include\|exec\)\s.*" 35syn match asteriskVar "\${_\{0,2}[[:alpha:]][[:alnum:]_]*\(:-\?[[:digit:]]\+\(:[[:digit:]]\+\)\?\)\?}" 36syn match asteriskVar "_\{0,2}[[:alpha:]][[:alnum:]_]*\ze=" 37syn match asteriskVarLen "\${_\{0,2}[[:alpha:]][[:alnum:]_]*(.*)}" contains=asteriskVar,asteriskVarLen,asteriskExp 38syn match asteriskVarLen "(\zs[[:alpha:]][[:alnum:]_]*(.\{-})\ze=" contains=asteriskVar,asteriskVarLen,asteriskExp 39syn match asteriskExp "\$\[.\{-}\]" contains=asteriskVar,asteriskVarLen,asteriskExp 40syn match asteriskCodecsPermit "^\s*\(allow\|disallow\)\s*=\s*.*$" contains=asteriskCodecs 41syn match asteriskCodecs "\(g723\|gsm\|ulaw\|alaw\|g726\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|all\s*$\)" 42syn match asteriskError "^\(type\|auth\|permit\|deny\|bindaddr\|host\)\s*=.*$" 43syn match asteriskType "^\zstype=\ze\<\(peer\|user\|friend\)\>$" contains=asteriskTypeType 44syn match asteriskTypeType "\<\(peer\|user\|friend\)\>" contained 45syn match asteriskAuth "^\zsauth\s*=\ze\s*\<\(md5\|rsa\|plaintext\)\>$" contains=asteriskAuthType 46syn match asteriskAuthType "\<\(md5\|rsa\|plaintext\)\>" 47syn match asteriskAuth "^\zs\(secret\|inkeys\|outkey\)\s*=\ze.*$" 48syn 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 49syn 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 50syn match asteriskIP "\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}" contained 51syn match asteriskHostname "[[:alnum:]][[:alnum:]\-\.]*\.[[:alpha:]]{2,10}" contained 52syn match asteriskPort "\d\{1,5}" contained 53syn match asteriskSetting "^bindaddr\s*=\s*\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}$" contains=asteriskIP 54syn match asteriskSetting "^port\s*=\s*\d\{1,5}\s*$" contains=asteriskPort 55syn 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 56 57" Define the default highlighting. 58" For version 5.7 and earlier: only when not done already 59" For version 5.8 and later: only when an item doesn't have highlighting yet 60if version >= 508 || !exists("did_conf_syntax_inits") 61 if version < 508 62 let did_conf_syntax_inits = 1 63 command -nargs=+ HiLink hi link <args> 64 else 65 command -nargs=+ HiLink hi def link <args> 66 endif 67 68 HiLink asteriskComment Comment 69 HiLink asteriskExten String 70 HiLink asteriskContext Preproc 71 HiLink asteriskPattern Type 72 HiLink asteriskApp Statement 73 HiLink asteriskInclude Preproc 74 HiLink asteriskIncludeBad Error 75 HiLink asteriskPriority Preproc 76 HiLink asteriskLabel Type 77 HiLink asteriskVar String 78 HiLink asteriskVarLen Function 79 HiLink asteriskExp Type 80 HiLink asteriskCodecsPermit Preproc 81 HiLink asteriskCodecs String 82 HiLink asteriskType Statement 83 HiLink asteriskTypeType Type 84 HiLink asteriskAuth String 85 HiLink asteriskAuthType Type 86 HiLink asteriskIPRange Identifier 87 HiLink asteriskIP Identifier 88 HiLink asteriskPort Identifier 89 HiLink asteriskHostname Identifier 90 HiLink asteriskSetting Statement 91 HiLink asteriskError Error 92 delcommand HiLink 93endif 94let b:current_syntax = "asterisk" 95" vim: ts=8 sw=2 96 97