xref: /vim-8.2.3635/runtime/syntax/dnsmasq.vim (revision 89bcfda6)
1" Vim syntax file
2" Maintainer:	Thilo Six
3" Contact:	[email protected]
4"		:3s+-foo++g
5" Description:	highlight dnsmasq configuration files
6" File:		runtime/syntax/dnsmasq.vim
7" Version:	2.76
8" Last Change:	2015 Sep 27
9" Modeline:	vim: ts=8:sw=2:sts=2:
10"
11" License:	VIM License
12"		Vim is Charityware, see ":help Uganda"
13"
14" Options:	You might want to add this to your vimrc:
15"
16"		if &background == "dark"
17"		    let dnsmasq_backrgound_light = 0
18"		else
19"		    let dnsmasq_backrgound_light = 1
20"		endif
21"
22
23" quit when a syntax file was already loaded
24if exists("b:current_syntax") || &compatible
25    finish
26endif
27
28let s:cpo_save = &cpo
29set cpo&vim
30
31if !exists("b:dnsmasq_backrgound_light")
32    if exists("dnsmasq_backrgound_light")
33	let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
34    else
35	let b:dnsmasq_backrgound_light = 0
36    endif
37endif
38
39
40" case on
41syn case match
42
43syn match   DnsmasqValues   "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial
44syn match   DnsmasqSpecial  display '=\|@\|,\|!\|:'	  nextgroup=DnsmasqValues
45syn match   DnsmasqSpecial  "#"
46
47syn match   DnsmasqIPv4	    "\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>"	nextgroup=DnsmasqSubnet2,DnsmasqRange
48syn match   DnsmasqSubnet   "\<255.\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{2\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>"
49syn match   DnsmasqSubnet2  contained "\/\([0-4]\?[0-9]\)\>"
50syn match   DnsmasqRange    contained "-"
51syn match   DnsmasqMac	    "\<\(\x\x\?:\)\{5}\x\x\?"
52
53syn match   DnsmasqTime	    "\<\(\d\{1,3}\)[hm]\>"
54
55" String
56syn match   DnsmasqString   "\".*\""  contains=@Spell
57syn match   DnsmasqString   "'.*'"    contains=@Spell
58
59" Comments
60syn keyword DnsmasqTodo	    FIXME TODO XXX NOTE contained
61syn match   DnsmasqComment  "\(^\|\s\+\)#.*$"   contains=@Spell,DnsmasqTodo
62
63" highlight trailing spaces
64syn match   DnsmasqTrailSpace	   "[ \t]\+$"
65syn match   DnsmasqTrailSpace	   "[ \t]\+$" containedin=ALL
66
67syn match DnsmasqKeywordSpecial    "\<set\>:"me=e-1
68syn match DnsmasqKeywordSpecial    "\<tag\>:"me=e-1
69syn match DnsmasqKeywordSpecial    ",\<static\>"hs=s+1	  contains=DnsmasqSpecial
70syn match DnsmasqKeywordSpecial    ",\<infinite\>"hs=s+1  contains=DnsmasqSpecial
71syn match DnsmasqKeywordSpecial    "\<encap\>:"me=e-1
72syn match DnsmasqKeywordSpecial    "\<interface\>:"me=e-1
73syn match DnsmasqKeywordSpecial    "\<vi-encap\>:"me=e-1
74syn match DnsmasqKeywordSpecial    "\<net\>:"me=e-1
75syn match DnsmasqKeywordSpecial    "\<vendor\>:"me=e-1
76syn match DnsmasqKeywordSpecial    "\<opt\>:"me=e-1
77syn match DnsmasqKeywordSpecial    "\<option\>:"me=e-1
78syn match DnsmasqKeywordSpecial    ",\<ignore\>"hs=s+1	  contains=DnsmasqSpecial
79syn match DnsmasqKeywordSpecial    "\<id\>:"me=e-1
80
81syn match DnsmasqKeyword    "^\s*add-mac\>"
82syn match DnsmasqKeyword    "^\s*add-subnet\>"
83syn match DnsmasqKeyword    "^\s*addn-hosts\>"
84syn match DnsmasqKeyword    "^\s*address\>"
85syn match DnsmasqKeyword    "^\s*alias\>"
86syn match DnsmasqKeyword    "^\s*all-servers\>"
87syn match DnsmasqKeyword    "^\s*auth-zone\>"
88syn match DnsmasqKeyword    "^\s*bind-dynamic\>"
89syn match DnsmasqKeyword    "^\s*bind-interfaces\>"
90syn match DnsmasqKeyword    "^\s*bogus-nxdomain\>"
91syn match DnsmasqKeyword    "^\s*bogus-priv\>"
92syn match DnsmasqKeyword    "^\s*bootp-dynamic\>"
93syn match DnsmasqKeyword    "^\s*bridge-interface\>"
94syn match DnsmasqKeyword    "^\s*cache-size\>"
95syn match DnsmasqKeyword    "^\s*clear-on-reload\>"
96syn match DnsmasqKeyword    "^\s*cname\>"
97syn match DnsmasqKeyword    "^\s*conf-dir\>"
98syn match DnsmasqKeyword    "^\s*conf-file\>"
99syn match DnsmasqKeyword    "^\s*conntrack\>"
100syn match DnsmasqKeyword    "^\s*dhcp-alternate-port\>"
101syn match DnsmasqKeyword    "^\s*dhcp-authoritative\>"
102syn match DnsmasqKeyword    "^\s*dhcp-boot\>"
103syn match DnsmasqKeyword    "^\s*dhcp-broadcast\>"
104syn match DnsmasqKeyword    "^\s*dhcp-circuitid\>"
105syn match DnsmasqKeyword    "^\s*dhcp-client-update\>"
106syn match DnsmasqKeyword    "^\s*dhcp-duid\>"
107syn match DnsmasqKeyword    "^\s*dhcp-fqdn\>"
108syn match DnsmasqKeyword    "^\s*dhcp-generate-names\>"
109syn match DnsmasqKeyword    "^\s*dhcp-host\>"
110syn match DnsmasqKeyword    "^\s*dhcp-hostsfile\>"
111syn match DnsmasqKeyword    "^\s*dhcp-ignore\>"
112syn match DnsmasqKeyword    "^\s*dhcp-ignore-names\>"
113syn match DnsmasqKeyword    "^\s*dhcp-lease-max\>"
114syn match DnsmasqKeyword    "^\s*dhcp-leasefile\>"
115syn match DnsmasqKeyword    "^\s*dhcp-luascript\>"
116syn match DnsmasqKeyword    "^\s*dhcp-mac\>"
117syn match DnsmasqKeyword    "^\s*dhcp-match\>"
118syn match DnsmasqKeyword    "^\s*dhcp-no-override\>"
119syn match DnsmasqKeyword    "^\s*dhcp-option\>"
120syn match DnsmasqKeyword    "^\s*dhcp-option-force\>"
121syn match DnsmasqKeyword    "^\s*dhcp-optsfile\>"
122syn match DnsmasqKeyword    "^\s*dhcp-proxy\>"
123syn match DnsmasqKeyword    "^\s*dhcp-range\>"
124syn match DnsmasqKeyword    "^\s*dhcp-relay\>"
125syn match DnsmasqKeyword    "^\s*dhcp-remoteid\>"
126syn match DnsmasqKeyword    "^\s*dhcp-script\>"
127syn match DnsmasqKeyword    "^\s*dhcp-scriptuser\>"
128syn match DnsmasqKeyword    "^\s*dhcp-sequential-ip\>"
129syn match DnsmasqKeyword    "^\s*dhcp-subscrid\>"
130syn match DnsmasqKeyword    "^\s*dhcp-userclass\>"
131syn match DnsmasqKeyword    "^\s*dhcp-vendorclass\>"
132syn match DnsmasqKeyword    "^\s*dhcp-hostsdir\>"
133syn match DnsmasqKeyword    "^\s*dns-rr\>"
134syn match DnsmasqKeyword    "^\s*dnssec\>"
135syn match DnsmasqKeyword    "^\s*dnssec-check-unsigned\>"
136syn match DnsmasqKeyword    "^\s*dnssec-no-timecheck\>"
137syn match DnsmasqKeyword    "^\s*dnssec-timestamp\>"
138syn match DnsmasqKeyword    "^\s*dns-forward-max\>"
139syn match DnsmasqKeyword    "^\s*domain\>"
140syn match DnsmasqKeyword    "^\s*domain-needed\>"
141syn match DnsmasqKeyword    "^\s*edns-packet-max\>"
142syn match DnsmasqKeyword    "^\s*enable-dbus\>"
143syn match DnsmasqKeyword    "^\s*enable-ra\>"
144syn match DnsmasqKeyword    "^\s*enable-tftp\>"
145syn match DnsmasqKeyword    "^\s*except-interface\>"
146syn match DnsmasqKeyword    "^\s*expand-hosts\>"
147syn match DnsmasqKeyword    "^\s*filterwin2k\>"
148syn match DnsmasqKeyword    "^\s*group\>"
149syn match DnsmasqKeyword    "^\s*host-record\>"
150syn match DnsmasqKeyword    "^\s*interface\>"
151syn match DnsmasqKeyword    "^\s*interface-name\>"
152syn match DnsmasqKeyword    "^\s*ipset\>"
153syn match DnsmasqKeyword    "^\s*ignore-address\>"
154syn match DnsmasqKeyword    "^\s*keep-in-foreground\>"
155syn match DnsmasqKeyword    "^\s*leasefile-ro\>"
156syn match DnsmasqKeyword    "^\s*listen-address\>"
157syn match DnsmasqKeyword    "^\s*local\>"
158syn match DnsmasqKeyword    "^\s*localmx\>"
159syn match DnsmasqKeyword    "^\s*local-ttl\>"
160syn match DnsmasqKeyword    "^\s*local-service\>"
161syn match DnsmasqKeyword    "^\s*localise-queries\>"
162syn match DnsmasqKeyword    "^\s*log-async\>"
163syn match DnsmasqKeyword    "^\s*log-dhcp\>"
164syn match DnsmasqKeyword    "^\s*log-facility\>"
165syn match DnsmasqKeyword    "^\s*log-queries\>"
166syn match DnsmasqKeyword    "^\s*max-ttl\>"
167syn match DnsmasqKeyword    "^\s*max-cache-ttl\>"
168syn match DnsmasqKeyword    "^\s*min-cache-ttl\>"
169syn match DnsmasqKeyword    "^\s*min-port\>"
170syn match DnsmasqKeyword    "^\s*mx-host\>"
171syn match DnsmasqKeyword    "^\s*mx-target\>"
172syn match DnsmasqKeyword    "^\s*naptr-record\>"
173syn match DnsmasqKeyword    "^\s*neg-ttl\>"
174syn match DnsmasqKeyword    "^\s*no-daemon\>"
175syn match DnsmasqKeyword    "^\s*no-dhcp-interface\>"
176syn match DnsmasqKeyword    "^\s*no-hosts\>"
177syn match DnsmasqKeyword    "^\s*no-negcache\>"
178syn match DnsmasqKeyword    "^\s*no-ping\>"
179syn match DnsmasqKeyword    "^\s*no-poll\>"
180syn match DnsmasqKeyword    "^\s*no-resolv\>"
181syn match DnsmasqKeyword    "^\s*pid-file\>"
182syn match DnsmasqKeyword    "^\s*port\>"
183syn match DnsmasqKeyword    "^\s*proxy-dnssec\>"
184syn match DnsmasqKeyword    "^\s*ptr-record\>"
185syn match DnsmasqKeyword    "^\s*pxe-prompt\>"
186syn match DnsmasqKeyword    "^\s*pxe-service\>"
187syn match DnsmasqKeyword    "^\s*query-port\>"
188syn match DnsmasqKeyword    "^\s*quiet-ra\>"
189syn match DnsmasqKeyword    "^\s*quiet-dhcp\>"
190syn match DnsmasqKeyword    "^\s*quiet-dhcp6\>"
191syn match DnsmasqKeyword    "^\s*ra-param\>"
192syn match DnsmasqKeyword    "^\s*read-ethers\>"
193syn match DnsmasqKeyword    "^\s*rebind-domain-ok\>"
194syn match DnsmasqKeyword    "^\s*rebind-localhost-ok\>"
195syn match DnsmasqKeyword    "^\s*resolv-file\>"
196syn match DnsmasqKeyword    "^\s*rev-server\>"
197syn match DnsmasqKeyword    "^\s*selfmx\>"
198syn match DnsmasqKeyword    "^\s*server\>"
199syn match DnsmasqKeyword    "^\s*servers-file\>"
200syn match DnsmasqKeyword    "^\s*srv-host\>"
201syn match DnsmasqKeyword    "^\s*stop-dns-rebind\>"
202syn match DnsmasqKeyword    "^\s*strict-order\>"
203syn match DnsmasqKeyword    "^\s*synth-domain\>"
204syn match DnsmasqKeyword    "^\s*tag-if\>"
205syn match DnsmasqKeyword    "^\s*test\>"
206syn match DnsmasqKeyword    "^\s*tftp-max\>"
207syn match DnsmasqKeyword    "^\s*tftp-lowercase\>"
208syn match DnsmasqKeyword    "^\s*tftp-no-blocksize\>"
209syn match DnsmasqKeyword    "^\s*tftp-no-fail\>"
210syn match DnsmasqKeyword    "^\s*tftp-port-range\>"
211syn match DnsmasqKeyword    "^\s*tftp-root\>"
212syn match DnsmasqKeyword    "^\s*tftp-secure\>"
213syn match DnsmasqKeyword    "^\s*tftp-unique-root\>"
214syn match DnsmasqKeyword    "^\s*txt-record\>"
215syn match DnsmasqKeyword    "^\s*user\>"
216syn match DnsmasqKeyword    "^\s*version\>"
217
218
219if b:dnsmasq_backrgound_light == 1
220    hi def DnsmasqKeyword	ctermfg=DarkGreen guifg=DarkGreen
221else
222    hi def link DnsmasqKeyword  Keyword
223endif
224hi def link DnsmasqKeywordSpecial Type
225hi def link DnsmasqTodo		Todo
226hi def link DnsmasqSpecial	Constant
227hi def link DnsmasqIPv4		Identifier
228hi def link DnsmasqSubnet2	DnsmasqSubnet
229hi def link DnsmasqSubnet	DnsmasqMac
230hi def link DnsmasqRange	DnsmasqMac
231hi def link DnsmasqMac		Preproc
232hi def link DnsmasqTime		Preproc
233hi def link DnsmasqComment	Comment
234hi def link DnsmasqTrailSpace	DiffDelete
235hi def link DnsmasqString	Constant
236hi def link DnsmasqValues	Normal
237
238let b:current_syntax = "dnsmasq"
239
240let &cpo = s:cpo_save
241unlet s:cpo_save
242
243