xref: /vim-8.2.3635/runtime/syntax/named.vim (revision 2e693a88)
1071d4279SBram Moolenaar" Vim syntax file
29964e468SBram Moolenaar" Language:	BIND configuration file
39964e468SBram Moolenaar" Maintainer:	Nick Hibma <[email protected]>
4*2e693a88SBram Moolenaar" Last Change:	2019 Oct 08
59964e468SBram Moolenaar" Filenames:	named.conf, rndc.conf
69964e468SBram Moolenaar" Location:	http://www.van-laarhoven.org/vim/syntax/named.vim
7071d4279SBram Moolenaar"
89964e468SBram Moolenaar" Previously maintained by glory hump <[email protected]> and updated by Marcin
99964e468SBram Moolenaar" Dalecki.
109964e468SBram Moolenaar"
119964e468SBram Moolenaar" This file could do with a lot of improvements, so comments are welcome.
129964e468SBram Moolenaar" Please submit the named.conf (segment) with any comments.
139964e468SBram Moolenaar"
1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1589bcfda6SBram Moolenaarif exists("b:current_syntax")
16071d4279SBram Moolenaar  finish
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarsyn case match
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsetlocal iskeyword=.,-,48-58,A-Z,a-z,_
22071d4279SBram Moolenaar
239964e468SBram Moolenaarsyn sync match namedSync grouphere NONE "^(zone|controls|acl|key)"
249964e468SBram Moolenaar
25071d4279SBram Moolenaarlet s:save_cpo = &cpo
26071d4279SBram Moolenaarset cpo-=C
27071d4279SBram Moolenaar
28071d4279SBram Moolenaar" BIND configuration file
29071d4279SBram Moolenaar
30071d4279SBram Moolenaarsyn match	namedComment	"//.*"
31dfccaf0fSBram Moolenaarsyn match	namedComment	"#.*"
32071d4279SBram Moolenaarsyn region	namedComment	start="/\*" end="\*/"
33071d4279SBram Moolenaarsyn region	namedString	start=/"/ end=/"/ contained
34dfccaf0fSBram Moolenaar" --- omitted trailing semicolon
35dfccaf0fSBram Moolenaarsyn match	namedError	/[^;{#]$/
36071d4279SBram Moolenaar
37071d4279SBram Moolenaar" --- top-level keywords
38071d4279SBram Moolenaar
39071d4279SBram Moolenaarsyn keyword	namedInclude	include nextgroup=namedString skipwhite
40071d4279SBram Moolenaarsyn keyword	namedKeyword	acl key nextgroup=namedIntIdent skipwhite
41071d4279SBram Moolenaarsyn keyword	namedKeyword	server nextgroup=namedIdentifier skipwhite
42071d4279SBram Moolenaarsyn keyword	namedKeyword	controls nextgroup=namedSection skipwhite
43071d4279SBram Moolenaarsyn keyword	namedKeyword	trusted-keys nextgroup=namedIntSection skipwhite
44071d4279SBram Moolenaarsyn keyword	namedKeyword	logging nextgroup=namedLogSection skipwhite
45071d4279SBram Moolenaarsyn keyword	namedKeyword	options nextgroup=namedOptSection skipwhite
46071d4279SBram Moolenaarsyn keyword	namedKeyword	zone nextgroup=namedZoneString skipwhite
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" --- Identifier: name of following { ... } Section
49071d4279SBram Moolenaarsyn match	namedIdentifier	contained /\k\+/ nextgroup=namedSection skipwhite
50071d4279SBram Moolenaar" --- IntIdent: name of following IntSection
51071d4279SBram Moolenaarsyn match	namedIntIdent	contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite
52071d4279SBram Moolenaar
53071d4279SBram Moolenaar" --- Section: { ... } clause
54071d4279SBram Moolenaarsyn region	namedSection	contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword
55071d4279SBram Moolenaar
56071d4279SBram Moolenaar" --- IntSection: section that does not contain other sections
57*2e693a88SBram Moolenaarsyn region	namedIntSection	contained start=+{+ end=+}+ contains=namedIntKeyword,namedError,namedComment
58071d4279SBram Moolenaar
59071d4279SBram Moolenaar" --- IntKeyword: keywords contained within `{ ... }' sections only
60071d4279SBram Moolenaar" + these keywords are contained within `key' and `acl' sections
61071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained key algorithm
62071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained secret nextgroup=namedString skipwhite
63071d4279SBram Moolenaar
64071d4279SBram Moolenaar" + these keywords are contained within `server' section only
65071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite
66071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained transfers nextgroup=namedNumber,namedNotNumber skipwhite
67071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained transfer-format
68071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained keys nextgroup=namedIntSection skipwhite
69071d4279SBram Moolenaar
70071d4279SBram Moolenaar" + these keywords are contained within `controls' section only
71071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained inet nextgroup=namedIPaddr,namedIPerror skipwhite
72071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained unix nextgroup=namedString skipwhite
73071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite
74071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained allow nextgroup=namedIntSection skipwhite
75071d4279SBram Moolenaar
769964e468SBram Moolenaar" + these keywords are contained within `update-policy' section only
779964e468SBram Moolenaarsyn keyword	namedIntKeyword	contained grant nextgroup=namedString skipwhite
789964e468SBram Moolenaarsyn keyword	namedIntKeyword	contained name self subdomain wildcard nextgroup=namedString skipwhite
799964e468SBram Moolenaarsyn keyword	namedIntKeyword	TXT A PTR NS SOA A6 CNAME MX ANY skipwhite
809964e468SBram Moolenaar
81071d4279SBram Moolenaar" --- options
82071d4279SBram Moolenaarsyn region	namedOptSection	contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError
83071d4279SBram Moolenaar
84071d4279SBram Moolenaarsyn keyword	namedOption	contained version directory
85071d4279SBram Moolenaar\		nextgroup=namedString skipwhite
86071d4279SBram Moolenaarsyn keyword	namedOption	contained named-xfer dump-file pid-file
87071d4279SBram Moolenaar\		nextgroup=namedString skipwhite
88071d4279SBram Moolenaarsyn keyword	namedOption	contained mem-statistics-file statistics-file
89071d4279SBram Moolenaar\		nextgroup=namedString skipwhite
90071d4279SBram Moolenaarsyn keyword	namedOption	contained auth-nxdomain deallocate-on-exit
91071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
92071d4279SBram Moolenaarsyn keyword	namedOption	contained dialup fake-iquery fetch-glue
93071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
94071d4279SBram Moolenaarsyn keyword	namedOption	contained has-old-clients host-statistics
95071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
96071d4279SBram Moolenaarsyn keyword	namedOption	contained maintain-ixfr-base multiple-cnames
97071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
98071d4279SBram Moolenaarsyn keyword	namedOption	contained notify recursion rfc2308-type1
99071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
100071d4279SBram Moolenaarsyn keyword	namedOption	contained use-id-pool treat-cr-as-space
101071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
102071d4279SBram Moolenaarsyn keyword	namedOption	contained also-notify forwarders
1039964e468SBram Moolenaar\		nextgroup=namedIPlist skipwhite
104071d4279SBram Moolenaarsyn keyword	namedOption	contained forward check-names
1059964e468SBram Moolenaarsyn keyword	namedOption	contained allow-query allow-transfer allow-recursion
1069964e468SBram Moolenaar\		nextgroup=namedAML skipwhite
107071d4279SBram Moolenaarsyn keyword	namedOption	contained blackhole listen-on
108071d4279SBram Moolenaar\		nextgroup=namedIntSection skipwhite
109071d4279SBram Moolenaarsyn keyword	namedOption	contained lame-ttl max-transfer-time-in
110071d4279SBram Moolenaar\		nextgroup=namedNumber,namedNotNumber skipwhite
111071d4279SBram Moolenaarsyn keyword	namedOption	contained max-ncache-ttl min-roots
112071d4279SBram Moolenaar\		nextgroup=namedNumber,namedNotNumber skipwhite
113071d4279SBram Moolenaarsyn keyword	namedOption	contained serial-queries transfers-in
114071d4279SBram Moolenaar\		nextgroup=namedNumber,namedNotNumber skipwhite
115071d4279SBram Moolenaarsyn keyword	namedOption	contained transfers-out transfers-per-ns
116071d4279SBram Moolenaarsyn keyword	namedOption	contained transfer-format
117071d4279SBram Moolenaarsyn keyword	namedOption	contained transfer-source
118071d4279SBram Moolenaar\		nextgroup=namedIPaddr,namedIPerror skipwhite
119071d4279SBram Moolenaarsyn keyword	namedOption	contained max-ixfr-log-size
120071d4279SBram Moolenaar\		nextgroup=namedNumber,namedNotNumber skipwhite
121071d4279SBram Moolenaarsyn keyword	namedOption	contained coresize datasize files stacksize
122071d4279SBram Moolenaarsyn keyword	namedOption	contained cleaning-interval interface-interval statistics-interval heartbeat-interval
123071d4279SBram Moolenaar\		nextgroup=namedNumber,namedNotNumber skipwhite
124071d4279SBram Moolenaarsyn keyword	namedOption	contained topology sortlist rrset-order
125071d4279SBram Moolenaar\		nextgroup=namedIntSection skipwhite
126071d4279SBram Moolenaar
127071d4279SBram Moolenaarsyn match	namedOption	contained /\<query-source\s\+.*;/he=s+12 contains=namedQSKeywords
128071d4279SBram Moolenaarsyn keyword	namedQSKeywords	contained address port
129071d4279SBram Moolenaarsyn match	namedCNOption	contained /\<check-names\s\+.*;/he=s+11 contains=namedCNKeywords
130071d4279SBram Moolenaarsyn keyword	namedCNKeywords	contained fail warn ignore master slave response
131071d4279SBram Moolenaar
132071d4279SBram Moolenaar" --- logging facilities
133071d4279SBram Moolenaarsyn region	namedLogSection	contained start=+{+ end=+};+ contains=namedLogOption
134071d4279SBram Moolenaarsyn keyword	namedLogOption	contained channel nextgroup=namedIntIdent skipwhite
135071d4279SBram Moolenaarsyn keyword	namedLogOption	contained category nextgroup=namedIntIdent skipwhite
136071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained syslog null versions size severity
137071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained file nextgroup=namedString skipwhite
138071d4279SBram Moolenaarsyn keyword	namedIntKeyword	contained print-category print-severity print-time nextgroup=namedBool,namedNotBool skipwhite
139071d4279SBram Moolenaar
140071d4279SBram Moolenaar" --- zone section
141071d4279SBram Moolenaarsyn region	namedZoneString	contained oneline start=+"+ end=+"+ skipwhite
142071d4279SBram Moolenaar\		contains=namedDomain,namedIllegalDom
143071d4279SBram Moolenaar\		nextgroup=namedZoneClass,namedZoneSection
144071d4279SBram Moolenaarsyn keyword	namedZoneClass	contained in hs hesiod chaos
145071d4279SBram Moolenaar\		IN HS HESIOD CHAOS
146071d4279SBram Moolenaar\		nextgroup=namedZoneSection skipwhite
147071d4279SBram Moolenaar
148071d4279SBram Moolenaarsyn region	namedZoneSection	contained start=+{+ end=+};+ contains=namedZoneOpt,namedCNOption,namedComment,namedMasters,namedParenError
149071d4279SBram Moolenaarsyn keyword	namedZoneOpt	contained file ixfr-base
150071d4279SBram Moolenaar\		nextgroup=namedString skipwhite
151071d4279SBram Moolenaarsyn keyword	namedZoneOpt	contained notify dialup
152071d4279SBram Moolenaar\		nextgroup=namedBool,namedNotBool skipwhite
153071d4279SBram Moolenaarsyn keyword	namedZoneOpt	contained pubkey forward
154071d4279SBram Moolenaarsyn keyword	namedZoneOpt	contained max-transfer-time-in
155071d4279SBram Moolenaar\		nextgroup=namedNumber,namedNotNumber skipwhite
156071d4279SBram Moolenaarsyn keyword	namedZoneOpt	contained type nextgroup=namedZoneType skipwhite
157071d4279SBram Moolenaarsyn keyword	namedZoneType	contained master slave stub forward hint
158071d4279SBram Moolenaar
159071d4279SBram Moolenaarsyn keyword	namedZoneOpt	contained masters forwarders
160071d4279SBram Moolenaar\		nextgroup=namedIPlist skipwhite
161071d4279SBram Moolenaarsyn region	namedIPlist	contained start=+{+ end=+};+ contains=namedIPaddr,namedIPerror,namedParenError,namedComment
1629964e468SBram Moolenaarsyn keyword	namedZoneOpt	contained allow-update allow-query allow-transfer
163071d4279SBram Moolenaar\		nextgroup=namedAML skipwhite
1649964e468SBram Moolenaarsyn keyword	namedZoneOpt	contained update-policy
1659964e468SBram Moolenaar\		nextgroup=namedIntSection skipwhite
166071d4279SBram Moolenaar
167071d4279SBram Moolenaar" --- boolean parameter
168071d4279SBram Moolenaarsyn match	namedNotBool	contained "[^ 	;]\+"
169071d4279SBram Moolenaarsyn keyword	namedBool	contained yes no true false 1 0
170071d4279SBram Moolenaar
171071d4279SBram Moolenaar" --- number parameter
172071d4279SBram Moolenaarsyn match	namedNotNumber	contained "[^ 	0-9;]\+"
173071d4279SBram Moolenaarsyn match	namedNumber	contained "\d\+"
174071d4279SBram Moolenaar
175071d4279SBram Moolenaar" --- address match list
1769964e468SBram Moolenaarsyn region	namedAML	contained start=+{+ end=+};+ contains=namedParenError,namedComment,namedString
177071d4279SBram Moolenaar
178071d4279SBram Moolenaar" --- IPs & Domains
179071d4279SBram Moolenaarsyn match	namedIPaddr	contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{3};/he=e-1
180071d4279SBram Moolenaarsyn match	namedDomain	contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/ nextgroup=namedSpareDot
181071d4279SBram Moolenaarsyn match	namedDomain	contained /"\."/ms=s+1,me=e-1
182071d4279SBram Moolenaarsyn match	namedSpareDot	contained /\./
183071d4279SBram Moolenaar
184071d4279SBram Moolenaar" --- syntax errors
185071d4279SBram Moolenaarsyn match	namedIllegalDom	contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1
186071d4279SBram Moolenaarsyn match	namedIPerror	contained /\<\S*[^0-9.[:space:];]\S*/
187071d4279SBram Moolenaarsyn match	namedEParenError	contained +{+
188071d4279SBram Moolenaarsyn match	namedParenError	+}\([^;]\|$\)+
189071d4279SBram Moolenaar
190071d4279SBram Moolenaar" Define the default highlighting.
19189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
192071d4279SBram Moolenaar
193f37506f6SBram Moolenaarhi def link namedComment	Comment
194f37506f6SBram Moolenaarhi def link namedInclude	Include
195f37506f6SBram Moolenaarhi def link namedKeyword	Keyword
196f37506f6SBram Moolenaarhi def link namedIntKeyword	Keyword
197f37506f6SBram Moolenaarhi def link namedIdentifier	Identifier
198f37506f6SBram Moolenaarhi def link namedIntIdent	Identifier
199071d4279SBram Moolenaar
200f37506f6SBram Moolenaarhi def link namedString	String
201f37506f6SBram Moolenaarhi def link namedBool	Type
202f37506f6SBram Moolenaarhi def link namedNotBool	Error
203f37506f6SBram Moolenaarhi def link namedNumber	Number
204f37506f6SBram Moolenaarhi def link namedNotNumber	Error
205071d4279SBram Moolenaar
206f37506f6SBram Moolenaarhi def link namedOption	namedKeyword
207f37506f6SBram Moolenaarhi def link namedLogOption	namedKeyword
208f37506f6SBram Moolenaarhi def link namedCNOption	namedKeyword
209f37506f6SBram Moolenaarhi def link namedQSKeywords	Type
210f37506f6SBram Moolenaarhi def link namedCNKeywords	Type
211f37506f6SBram Moolenaarhi def link namedLogCategory	Type
212f37506f6SBram Moolenaarhi def link namedIPaddr	Number
213f37506f6SBram Moolenaarhi def link namedDomain	Identifier
214f37506f6SBram Moolenaarhi def link namedZoneOpt	namedKeyword
215f37506f6SBram Moolenaarhi def link namedZoneType	Type
216f37506f6SBram Moolenaarhi def link namedParenError	Error
217f37506f6SBram Moolenaarhi def link namedEParenError	Error
218f37506f6SBram Moolenaarhi def link namedIllegalDom	Error
219f37506f6SBram Moolenaarhi def link namedIPerror	Error
220f37506f6SBram Moolenaarhi def link namedSpareDot	Error
221f37506f6SBram Moolenaarhi def link namedError	Error
222071d4279SBram Moolenaar
223071d4279SBram Moolenaar
224071d4279SBram Moolenaarlet &cpo = s:save_cpo
225071d4279SBram Moolenaarunlet s:save_cpo
226071d4279SBram Moolenaar
227071d4279SBram Moolenaarlet b:current_syntax = "named"
228071d4279SBram Moolenaar
229071d4279SBram Moolenaar" vim: ts=17
230