blob: ebee808a57637a1a209b3dc0c91e4add8fd27882 [file] [log] [blame]
Bram Moolenaarc8734422012-06-01 22:38:45 +02001" Vim syntax file
2" Maintainer: Thilo Six
3" Contact: <vim-dev at vim dot org>
4" http://www.vim.org/maillist.php#vim-dev
5"
6" Description: highlight dnsmasq configuration files
Bram Moolenaar84f72352012-03-11 15:57:40 +01007" File: runtime/syntax/dnsmasq.vim
Bram Moolenaarc8734422012-06-01 22:38:45 +02008" Version: 2.61-1
9" Last Change: 2012 May 19
10" Modeline: vim: ts=8:sw=2:sts=2:
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010011"
12" Credits: Igor N. Prischepoff
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020013" Doug Kearns
14" David Ne\v{c}as
Bram Moolenaarc8734422012-06-01 22:38:45 +020015" Christian Brabandt
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020016"
Bram Moolenaar84f72352012-03-11 15:57:40 +010017" License: VIM License
Bram Moolenaarc8734422012-06-01 22:38:45 +020018" Vim is Charityware, see ":help Uganda"
Bram Moolenaar84f72352012-03-11 15:57:40 +010019"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020020" Options: You might want to add this to your vimrc:
21"
22" if &background == "dark"
23" " dnsmasq.vim
24" let dnsmasq_backrgound_light = 0
25" else
26" let dnsmasq_backrgound_light = 1
27" endif
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020028"
29
30" For version 5.x: Clear all syntax items
31" For version 6.x: Quit when a syntax file was already loaded
32if version < 600
33 syntax clear
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010034elseif exists("b:current_syntax") || &compatible
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020035 finish
36endif
37
Bram Moolenaar84f72352012-03-11 15:57:40 +010038let s:cpo_save = &cpo
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010039set cpo&vim
40
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020041if !exists("b:dnsmasq_backrgound_light")
42 if exists("dnsmasq_backrgound_light")
43 let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
44 else
45 let b:dnsmasq_backrgound_light = 0
46 endif
47endif
48
49
50" case on
51syn case match
52
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020053syn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020054syn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues
55syn match DnsmasqSpecial "#"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020056
Bram Moolenaarc8734422012-06-01 22:38:45 +020057syn 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
58syn 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]\?\)\>"
59syn match DnsmasqSubnet2 contained "\/\([0-4]\?[0-9]\)\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020060syn match DnsmasqRange contained "-"
61syn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020062
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020063syn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020064
65" String
Bram Moolenaarc8734422012-06-01 22:38:45 +020066syn match DnsmasqString "\".*\"" contains=@Spell
67syn match DnsmasqString "'.*'" contains=@Spell
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020068
69" Comments
Bram Moolenaar97293012011-07-18 19:40:27 +020070syn keyword DnsmasqTodo FIXME TODO XXX NOTE contained
Bram Moolenaarc8734422012-06-01 22:38:45 +020071syn match DnsmasqComment "\(^\|\s\+\)#.*$" contains=@Spell,DnsmasqTodo
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020072
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010073" highlight trailing spaces
74syn match DnsmasqTrailSpace "[ \t]\+$"
75syn match DnsmasqTrailSpace "[ \t]\+$" containedin=ALL
76
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020077syn match DnsmasqKeywordSpecial "\<set\>:"me=e-1
78syn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1
79syn match DnsmasqKeywordSpecial ",\<static\>"hs=s+1 contains=DnsmasqSpecial
80syn match DnsmasqKeywordSpecial ",\<infinite\>"hs=s+1 contains=DnsmasqSpecial
81syn match DnsmasqKeywordSpecial "\<encap\>:"me=e-1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010082syn match DnsmasqKeywordSpecial "\<interface\>:"me=e-1
83syn match DnsmasqKeywordSpecial "\<vi-encap\>:"me=e-1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020084syn match DnsmasqKeywordSpecial "\<net\>:"me=e-1
85syn match DnsmasqKeywordSpecial "\<vendor\>:"me=e-1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010086syn match DnsmasqKeywordSpecial "\<opt\>:"me=e-1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020087syn match DnsmasqKeywordSpecial "\<option\>:"me=e-1
88syn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial
89syn match DnsmasqKeywordSpecial "\<id\>:"me=e-1
90
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020091syn match DnsmasqKeyword "^\s*add-mac\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020092syn match DnsmasqKeyword "^\s*addn-hosts\>"
93syn match DnsmasqKeyword "^\s*address\>"
94syn match DnsmasqKeyword "^\s*alias\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020095syn match DnsmasqKeyword "^\s*all-servers\>"
96syn match DnsmasqKeyword "^\s*bind-interfaces\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020097syn match DnsmasqKeyword "^\s*bogus-nxdomain\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020098syn match DnsmasqKeyword "^\s*bogus-priv\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010099syn match DnsmasqKeyword "^\s*bootp-dynamic\>"
100syn match DnsmasqKeyword "^\s*bridge-interface\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200101syn match DnsmasqKeyword "^\s*cache-size\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200102syn match DnsmasqKeyword "^\s*clear-on-reload\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200103syn match DnsmasqKeyword "^\s*cname\>"
104syn match DnsmasqKeyword "^\s*conf-dir\>"
105syn match DnsmasqKeyword "^\s*conf-file\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100106syn match DnsmasqKeyword "^\s*conntrack\>"
107syn match DnsmasqKeyword "^\s*dhcp-alternate-port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200108syn match DnsmasqKeyword "^\s*dhcp-authoritative\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200109syn match DnsmasqKeyword "^\s*dhcp-boot\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100110syn match DnsmasqKeyword "^\s*dhcp-broadcast\>"
111syn match DnsmasqKeyword "^\s*dhcp-circuitid\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100112syn match DnsmasqKeyword "^\s*dhcp-client-update\>"
Bram Moolenaarc8734422012-06-01 22:38:45 +0200113syn match DnsmasqKeyword "^\s*dhcp-duid\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200114syn match DnsmasqKeyword "^\s*dhcp-fqdn\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100115syn match DnsmasqKeyword "^\s*dhcp-generate-names\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200116syn match DnsmasqKeyword "^\s*dhcp-host\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100117syn match DnsmasqKeyword "^\s*dhcp-hostsfile\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200118syn match DnsmasqKeyword "^\s*dhcp-ignore\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100119syn match DnsmasqKeyword "^\s*dhcp-ignore-names\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200120syn match DnsmasqKeyword "^\s*dhcp-lease-max\>"
121syn match DnsmasqKeyword "^\s*dhcp-leasefile\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100122syn match DnsmasqKeyword "^\s*dhcp-luascript\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200123syn match DnsmasqKeyword "^\s*dhcp-mac\>"
124syn match DnsmasqKeyword "^\s*dhcp-match\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200125syn match DnsmasqKeyword "^\s*dhcp-no-override\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200126syn match DnsmasqKeyword "^\s*dhcp-option\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100127syn match DnsmasqKeyword "^\s*dhcp-option-force\>"
128syn match DnsmasqKeyword "^\s*dhcp-optsfile\>"
129syn match DnsmasqKeyword "^\s*dhcp-proxy\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200130syn match DnsmasqKeyword "^\s*dhcp-range\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100131syn match DnsmasqKeyword "^\s*dhcp-remoteid\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200132syn match DnsmasqKeyword "^\s*dhcp-script\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200133syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100134syn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>"
135syn match DnsmasqKeyword "^\s*dhcp-subscrid\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200136syn match DnsmasqKeyword "^\s*dhcp-userclass\>"
137syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100138syn match DnsmasqKeyword "^\s*dns-forward-max\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200139syn match DnsmasqKeyword "^\s*domain\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100140syn match DnsmasqKeyword "^\s*domain-needed\>"
141syn match DnsmasqKeyword "^\s*edns-packet-max\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200142syn match DnsmasqKeyword "^\s*enable-dbus\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100143syn match DnsmasqKeyword "^\s*enable-ra\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200144syn match DnsmasqKeyword "^\s*enable-tftp\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200145syn match DnsmasqKeyword "^\s*except-interface\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200146syn match DnsmasqKeyword "^\s*expand-hosts\>"
147syn match DnsmasqKeyword "^\s*filterwin2k\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200148syn match DnsmasqKeyword "^\s*group\>"
Bram Moolenaarc8734422012-06-01 22:38:45 +0200149syn match DnsmasqKeyword "^\s*host-record\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200150syn match DnsmasqKeyword "^\s*interface\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100151syn match DnsmasqKeyword "^\s*interface-name\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200152syn match DnsmasqKeyword "^\s*keep-in-foreground\>"
153syn match DnsmasqKeyword "^\s*leasefile-ro\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200154syn match DnsmasqKeyword "^\s*listen-address\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200155syn match DnsmasqKeyword "^\s*local\>"
Bram Moolenaar84f72352012-03-11 15:57:40 +0100156syn match DnsmasqKeyword "^\s*localmx\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100157syn match DnsmasqKeyword "^\s*local-ttl\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200158syn match DnsmasqKeyword "^\s*localise-queries\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100159syn match DnsmasqKeyword "^\s*log-async\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200160syn match DnsmasqKeyword "^\s*log-dhcp\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100161syn match DnsmasqKeyword "^\s*log-facility\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200162syn match DnsmasqKeyword "^\s*log-queries\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100163syn match DnsmasqKeyword "^\s*max-ttl\>"
164syn match DnsmasqKeyword "^\s*min-port\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200165syn match DnsmasqKeyword "^\s*mx-host\>"
166syn match DnsmasqKeyword "^\s*mx-target\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100167syn match DnsmasqKeyword "^\s*naptr-record\>"
168syn match DnsmasqKeyword "^\s*neg-ttl\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200169syn match DnsmasqKeyword "^\s*no-daemon\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200170syn match DnsmasqKeyword "^\s*no-dhcp-interface\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200171syn match DnsmasqKeyword "^\s*no-hosts\>"
172syn match DnsmasqKeyword "^\s*no-negcache\>"
173syn match DnsmasqKeyword "^\s*no-ping\>"
174syn match DnsmasqKeyword "^\s*no-poll\>"
175syn match DnsmasqKeyword "^\s*no-resolv\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100176syn match DnsmasqKeyword "^\s*pid-file\>"
177syn match DnsmasqKeyword "^\s*port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200178syn match DnsmasqKeyword "^\s*proxy-dnssec\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200179syn match DnsmasqKeyword "^\s*ptr-record\>"
180syn match DnsmasqKeyword "^\s*pxe-prompt\>"
181syn match DnsmasqKeyword "^\s*pxe-service\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100182syn match DnsmasqKeyword "^\s*query-port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200183syn match DnsmasqKeyword "^\s*read-ethers\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100184syn match DnsmasqKeyword "^\s*rebind-domain-ok\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200185syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200186syn match DnsmasqKeyword "^\s*resolv-file\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200187syn match DnsmasqKeyword "^\s*selfmx\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200188syn match DnsmasqKeyword "^\s*server\>"
189syn match DnsmasqKeyword "^\s*srv-host\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200190syn match DnsmasqKeyword "^\s*stop-dns-rebind\>"
191syn match DnsmasqKeyword "^\s*strict-order\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100192syn match DnsmasqKeyword "^\s*tag-if\>"
193syn match DnsmasqKeyword "^\s*test\>"
194syn match DnsmasqKeyword "^\s*tftp-max\>"
Bram Moolenaarc8734422012-06-01 22:38:45 +0200195syn match DnsmasqKeyword "^\s*tftp-lowercase\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200196syn match DnsmasqKeyword "^\s*tftp-no-blocksize\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100197syn match DnsmasqKeyword "^\s*tftp-port-range\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200198syn match DnsmasqKeyword "^\s*tftp-root\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200199syn match DnsmasqKeyword "^\s*tftp-secure\>"
200syn match DnsmasqKeyword "^\s*tftp-unique-root\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200201syn match DnsmasqKeyword "^\s*txt-record\>"
202syn match DnsmasqKeyword "^\s*user\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100203syn match DnsmasqKeyword "^\s*version\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200204
205
206if b:dnsmasq_backrgound_light == 1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200207 hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200208else
209 hi def link DnsmasqKeyword Keyword
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200210endif
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200211hi def link DnsmasqKeywordSpecial Type
212hi def link DnsmasqTodo Todo
213hi def link DnsmasqSpecial Constant
214hi def link DnsmasqIPv4 Identifier
215hi def link DnsmasqSubnet2 DnsmasqSubnet
216hi def link DnsmasqSubnet DnsmasqMac
217hi def link DnsmasqRange DnsmasqMac
218hi def link DnsmasqMac Preproc
219hi def link DnsmasqTime Preproc
220hi def link DnsmasqComment Comment
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100221hi def link DnsmasqTrailSpace DiffDelete
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200222hi def link DnsmasqString Constant
223hi def link DnsmasqValues Normal
224
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200225let b:current_syntax = "dnsmasq"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200226
Bram Moolenaar84f72352012-03-11 15:57:40 +0100227let &cpo = s:cpo_save
228unlet s:cpo_save
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100229