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