blob: c562b8557557d7591b07ca0a020bff654f0795d8 [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 Moolenaareee697b2006-03-21 21:20:39 +000022syn 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("
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
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
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
60command -nargs=+ HiLink hi def link <args>
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000061
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020062HiLink 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
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000088let b:current_syntax = "asterisk"
Bram Moolenaarbfd8fc02005-09-20 23:22:24 +000089" vim: ts=8 sw=2
Bram Moolenaareee697b2006-03-21 21:20:39 +000090