xref: /vim-8.2.3635/runtime/syntax/asterisk.vim (revision 36e294c0)
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