xref: /vim-8.2.3635/runtime/syntax/asterisk.vim (revision 8ea05de6)
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\|l\?e\?switch\|\(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          "\(vp9\|vp8\|h264\|h263p\|h263\|h261\|jpeg\|opus\|g722\|g723\|gsm\|ulaw\|alaw\|g719\|g726\|g726aal2\|siren7\|siren14\|adpcm\|slin\|lpc10\|g729\|speex\|ilbc\|wav\|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