blob: 7ef767d398dff5d3338dcf1a3f7b13c545539bbf [file] [log] [blame]
Bram Moolenaarc8734422012-06-01 22:38:45 +02001" Vim syntax file
2" Maintainer: Thilo Six
Bram Moolenaard5d015d2013-11-03 21:14:31 +01003" Contact: vim-foo@xk2c-foo.de
4" :3s+-foo++g
Bram Moolenaarc8734422012-06-01 22:38:45 +02005" Description: highlight dnsmasq configuration files
Bram Moolenaar84f72352012-03-11 15:57:40 +01006" File: runtime/syntax/dnsmasq.vim
Bram Moolenaard5d015d2013-11-03 21:14:31 +01007" Version: 2.67
8" Last Change: 2013 Nov 03
Bram Moolenaarc8734422012-06-01 22:38:45 +02009" Modeline: vim: ts=8:sw=2:sts=2:
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010010"
Bram Moolenaar84f72352012-03-11 15:57:40 +010011" License: VIM License
Bram Moolenaarc8734422012-06-01 22:38:45 +020012" Vim is Charityware, see ":help Uganda"
Bram Moolenaar84f72352012-03-11 15:57:40 +010013"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020014" Options: You might want to add this to your vimrc:
15"
16" if &background == "dark"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020017" let dnsmasq_backrgound_light = 0
18" else
19" let dnsmasq_backrgound_light = 1
20" endif
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020021"
22
23" For version 5.x: Clear all syntax items
Bram Moolenaard5d015d2013-11-03 21:14:31 +010024if v:version < 600
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020025 syntax clear
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010026elseif exists("b:current_syntax") || &compatible
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020027 finish
28endif
29
Bram Moolenaar84f72352012-03-11 15:57:40 +010030let s:cpo_save = &cpo
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010031set cpo&vim
32
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020033if !exists("b:dnsmasq_backrgound_light")
Bram Moolenaard5d015d2013-11-03 21:14:31 +010034 if exists("dnsmasq_backrgound_light")
35 let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
36 else
37 let b:dnsmasq_backrgound_light = 0
38 endif
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020039endif
40
41
42" case on
43syn case match
44
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020045syn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020046syn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues
47syn match DnsmasqSpecial "#"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020048
Bram Moolenaarc8734422012-06-01 22:38:45 +020049syn 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
50syn 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]\?\)\>"
51syn match DnsmasqSubnet2 contained "\/\([0-4]\?[0-9]\)\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020052syn match DnsmasqRange contained "-"
53syn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020054
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020055syn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020056
57" String
Bram Moolenaarc8734422012-06-01 22:38:45 +020058syn match DnsmasqString "\".*\"" contains=@Spell
59syn match DnsmasqString "'.*'" contains=@Spell
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020060
61" Comments
Bram Moolenaar97293012011-07-18 19:40:27 +020062syn keyword DnsmasqTodo FIXME TODO XXX NOTE contained
Bram Moolenaarc8734422012-06-01 22:38:45 +020063syn match DnsmasqComment "\(^\|\s\+\)#.*$" contains=@Spell,DnsmasqTodo
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020064
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010065" highlight trailing spaces
66syn match DnsmasqTrailSpace "[ \t]\+$"
67syn match DnsmasqTrailSpace "[ \t]\+$" containedin=ALL
68
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020069syn match DnsmasqKeywordSpecial "\<set\>:"me=e-1
70syn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1
71syn match DnsmasqKeywordSpecial ",\<static\>"hs=s+1 contains=DnsmasqSpecial
72syn match DnsmasqKeywordSpecial ",\<infinite\>"hs=s+1 contains=DnsmasqSpecial
73syn match DnsmasqKeywordSpecial "\<encap\>:"me=e-1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010074syn match DnsmasqKeywordSpecial "\<interface\>:"me=e-1
75syn match DnsmasqKeywordSpecial "\<vi-encap\>:"me=e-1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020076syn match DnsmasqKeywordSpecial "\<net\>:"me=e-1
77syn match DnsmasqKeywordSpecial "\<vendor\>:"me=e-1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010078syn match DnsmasqKeywordSpecial "\<opt\>:"me=e-1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020079syn match DnsmasqKeywordSpecial "\<option\>:"me=e-1
80syn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial
81syn match DnsmasqKeywordSpecial "\<id\>:"me=e-1
82
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020083syn match DnsmasqKeyword "^\s*add-mac\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +010084syn match DnsmasqKeyword "^\s*add-subnet\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020085syn match DnsmasqKeyword "^\s*addn-hosts\>"
86syn match DnsmasqKeyword "^\s*address\>"
87syn match DnsmasqKeyword "^\s*alias\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020088syn match DnsmasqKeyword "^\s*all-servers\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +010089syn match DnsmasqKeyword "^\s*auth-zone\>"
90syn match DnsmasqKeyword "^\s*bind-dynamic\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020091syn match DnsmasqKeyword "^\s*bind-interfaces\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020092syn match DnsmasqKeyword "^\s*bogus-nxdomain\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020093syn match DnsmasqKeyword "^\s*bogus-priv\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010094syn match DnsmasqKeyword "^\s*bootp-dynamic\>"
95syn match DnsmasqKeyword "^\s*bridge-interface\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020096syn match DnsmasqKeyword "^\s*cache-size\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020097syn match DnsmasqKeyword "^\s*clear-on-reload\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020098syn match DnsmasqKeyword "^\s*cname\>"
99syn match DnsmasqKeyword "^\s*conf-dir\>"
100syn match DnsmasqKeyword "^\s*conf-file\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100101syn match DnsmasqKeyword "^\s*conntrack\>"
102syn match DnsmasqKeyword "^\s*dhcp-alternate-port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200103syn match DnsmasqKeyword "^\s*dhcp-authoritative\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200104syn match DnsmasqKeyword "^\s*dhcp-boot\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100105syn match DnsmasqKeyword "^\s*dhcp-broadcast\>"
106syn match DnsmasqKeyword "^\s*dhcp-circuitid\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100107syn match DnsmasqKeyword "^\s*dhcp-client-update\>"
Bram Moolenaarc8734422012-06-01 22:38:45 +0200108syn match DnsmasqKeyword "^\s*dhcp-duid\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200109syn match DnsmasqKeyword "^\s*dhcp-fqdn\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100110syn match DnsmasqKeyword "^\s*dhcp-generate-names\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200111syn match DnsmasqKeyword "^\s*dhcp-host\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100112syn match DnsmasqKeyword "^\s*dhcp-hostsfile\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200113syn match DnsmasqKeyword "^\s*dhcp-ignore\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100114syn match DnsmasqKeyword "^\s*dhcp-ignore-names\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200115syn match DnsmasqKeyword "^\s*dhcp-lease-max\>"
116syn match DnsmasqKeyword "^\s*dhcp-leasefile\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100117syn match DnsmasqKeyword "^\s*dhcp-luascript\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200118syn match DnsmasqKeyword "^\s*dhcp-mac\>"
119syn match DnsmasqKeyword "^\s*dhcp-match\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200120syn match DnsmasqKeyword "^\s*dhcp-no-override\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200121syn match DnsmasqKeyword "^\s*dhcp-option\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100122syn match DnsmasqKeyword "^\s*dhcp-option-force\>"
123syn match DnsmasqKeyword "^\s*dhcp-optsfile\>"
124syn match DnsmasqKeyword "^\s*dhcp-proxy\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200125syn match DnsmasqKeyword "^\s*dhcp-range\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +0100126syn match DnsmasqKeyword "^\s*dhcp-relay\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100127syn match DnsmasqKeyword "^\s*dhcp-remoteid\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200128syn match DnsmasqKeyword "^\s*dhcp-script\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200129syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100130syn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>"
131syn match DnsmasqKeyword "^\s*dhcp-subscrid\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200132syn match DnsmasqKeyword "^\s*dhcp-userclass\>"
133syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +0100134syn match DnsmasqKeyword "^\s*dns-rr\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100135syn match DnsmasqKeyword "^\s*dns-forward-max\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200136syn match DnsmasqKeyword "^\s*domain\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100137syn match DnsmasqKeyword "^\s*domain-needed\>"
138syn match DnsmasqKeyword "^\s*edns-packet-max\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200139syn match DnsmasqKeyword "^\s*enable-dbus\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100140syn match DnsmasqKeyword "^\s*enable-ra\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200141syn match DnsmasqKeyword "^\s*enable-tftp\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200142syn match DnsmasqKeyword "^\s*except-interface\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200143syn match DnsmasqKeyword "^\s*expand-hosts\>"
144syn match DnsmasqKeyword "^\s*filterwin2k\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200145syn match DnsmasqKeyword "^\s*group\>"
Bram Moolenaarc8734422012-06-01 22:38:45 +0200146syn match DnsmasqKeyword "^\s*host-record\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200147syn match DnsmasqKeyword "^\s*interface\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100148syn match DnsmasqKeyword "^\s*interface-name\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +0100149syn match DnsmasqKeyword "^\s*ipset\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200150syn match DnsmasqKeyword "^\s*keep-in-foreground\>"
151syn match DnsmasqKeyword "^\s*leasefile-ro\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200152syn match DnsmasqKeyword "^\s*listen-address\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200153syn match DnsmasqKeyword "^\s*local\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100154syn match DnsmasqKeyword "^\s*localmx\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100155syn match DnsmasqKeyword "^\s*local-ttl\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200156syn match DnsmasqKeyword "^\s*localise-queries\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100157syn match DnsmasqKeyword "^\s*log-async\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200158syn match DnsmasqKeyword "^\s*log-dhcp\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100159syn match DnsmasqKeyword "^\s*log-facility\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200160syn match DnsmasqKeyword "^\s*log-queries\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100161syn match DnsmasqKeyword "^\s*max-ttl\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +0100162syn match DnsmasqKeyword "^\s*max-cache-ttl\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100163syn match DnsmasqKeyword "^\s*min-port\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200164syn match DnsmasqKeyword "^\s*mx-host\>"
165syn match DnsmasqKeyword "^\s*mx-target\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100166syn match DnsmasqKeyword "^\s*naptr-record\>"
167syn match DnsmasqKeyword "^\s*neg-ttl\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200168syn match DnsmasqKeyword "^\s*no-daemon\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200169syn match DnsmasqKeyword "^\s*no-dhcp-interface\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200170syn match DnsmasqKeyword "^\s*no-hosts\>"
171syn match DnsmasqKeyword "^\s*no-negcache\>"
172syn match DnsmasqKeyword "^\s*no-ping\>"
173syn match DnsmasqKeyword "^\s*no-poll\>"
174syn match DnsmasqKeyword "^\s*no-resolv\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100175syn match DnsmasqKeyword "^\s*pid-file\>"
176syn match DnsmasqKeyword "^\s*port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200177syn match DnsmasqKeyword "^\s*proxy-dnssec\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200178syn match DnsmasqKeyword "^\s*ptr-record\>"
179syn match DnsmasqKeyword "^\s*pxe-prompt\>"
180syn match DnsmasqKeyword "^\s*pxe-service\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100181syn match DnsmasqKeyword "^\s*query-port\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +0100182syn match DnsmasqKeyword "^\s*quiet-ra\>"
183syn match DnsmasqKeyword "^\s*quiet-dhcp\>"
184syn match DnsmasqKeyword "^\s*quiet-dhcp6\>"
185syn match DnsmasqKeyword "^\s*ra-param\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200186syn match DnsmasqKeyword "^\s*read-ethers\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100187syn match DnsmasqKeyword "^\s*rebind-domain-ok\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200188syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200189syn match DnsmasqKeyword "^\s*resolv-file\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200190syn match DnsmasqKeyword "^\s*selfmx\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200191syn match DnsmasqKeyword "^\s*server\>"
192syn match DnsmasqKeyword "^\s*srv-host\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200193syn match DnsmasqKeyword "^\s*stop-dns-rebind\>"
194syn match DnsmasqKeyword "^\s*strict-order\>"
Bram Moolenaard5d015d2013-11-03 21:14:31 +0100195syn match DnsmasqKeyword "^\s*synth-domain\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100196syn match DnsmasqKeyword "^\s*tag-if\>"
197syn match DnsmasqKeyword "^\s*test\>"
198syn match DnsmasqKeyword "^\s*tftp-max\>"
Bram Moolenaarc8734422012-06-01 22:38:45 +0200199syn match DnsmasqKeyword "^\s*tftp-lowercase\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200200syn match DnsmasqKeyword "^\s*tftp-no-blocksize\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100201syn match DnsmasqKeyword "^\s*tftp-port-range\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200202syn match DnsmasqKeyword "^\s*tftp-root\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200203syn match DnsmasqKeyword "^\s*tftp-secure\>"
204syn match DnsmasqKeyword "^\s*tftp-unique-root\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200205syn match DnsmasqKeyword "^\s*txt-record\>"
206syn match DnsmasqKeyword "^\s*user\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100207syn match DnsmasqKeyword "^\s*version\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200208
209
210if b:dnsmasq_backrgound_light == 1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200211 hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200212else
213 hi def link DnsmasqKeyword Keyword
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200214endif
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200215hi def link DnsmasqKeywordSpecial Type
216hi def link DnsmasqTodo Todo
217hi def link DnsmasqSpecial Constant
218hi def link DnsmasqIPv4 Identifier
219hi def link DnsmasqSubnet2 DnsmasqSubnet
220hi def link DnsmasqSubnet DnsmasqMac
221hi def link DnsmasqRange DnsmasqMac
222hi def link DnsmasqMac Preproc
223hi def link DnsmasqTime Preproc
224hi def link DnsmasqComment Comment
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100225hi def link DnsmasqTrailSpace DiffDelete
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200226hi def link DnsmasqString Constant
227hi def link DnsmasqValues Normal
228
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200229let b:current_syntax = "dnsmasq"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200230
Bram Moolenaar84f72352012-03-11 15:57:40 +0100231let &cpo = s:cpo_save
232unlet s:cpo_save
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100233