blob: 8f3fe3f7a2f1c9e7f73e3ccd9e6793dcd19f9672 [file] [log] [blame]
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +02001" Vim syntax file
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01002" Language: dnsmasq configuration file
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +02003" Maintainer: Thilo Six <T.Six@gmx.de>
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01004" Version: 2.59-1
5" Last Change: 2011 Dec 11
6" Modeline: vim: ts=8:sw=2:sts=2:
7"
8" Credits: Igor N. Prischepoff
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +02009" Doug Kearns
10" David Ne\v{c}as
11"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020012" Options: You might want to add this to your vimrc:
13"
14" if &background == "dark"
15" " dnsmasq.vim
16" let dnsmasq_backrgound_light = 0
17" else
18" let dnsmasq_backrgound_light = 1
19" endif
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020020"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010021"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020022
23" For version 5.x: Clear all syntax items
24" For version 6.x: Quit when a syntax file was already loaded
25if version < 600
26 syntax clear
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010027elseif exists("b:current_syntax") || &compatible
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020028 finish
29endif
30
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010031" predictable environment:
32let s:keepcpo = &cpo
33set cpo&vim
34
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020035
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020036if !exists("b:dnsmasq_backrgound_light")
37 if exists("dnsmasq_backrgound_light")
38 let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
39 else
40 let b:dnsmasq_backrgound_light = 0
41 endif
42endif
43
44
45" case on
46syn case match
47
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020048syn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020049syn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues
50syn match DnsmasqSpecial "#"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020051
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020052syn match DnsmasqIPv4 "\(\d\{1,3}\.\)\{3}\d\{1,3}" nextgroup=DnsmasqSubnet2,DnsmasqRange
53syn match DnsmasqSubnet "\<255.\(\d\{1,3}\.\)\{2}\d\{1,3}"
54syn match DnsmasqSubnet2 contained "\/\(\d\{1,2}\)\>"
55syn match DnsmasqRange contained "-"
56syn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020057
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020058syn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020059
60" String
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020061syn match DnsmasqString "\".*\""
62syn match DnsmasqString "'.*'"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020063
64" Comments
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020065syn match DnsmasqComment "^#.*$" contains=DnsmasqTodo
66syn match DnsmasqComment "\s#.*$" contains=DnsmasqTodo
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020067
Bram Moolenaar97293012011-07-18 19:40:27 +020068syn keyword DnsmasqTodo FIXME TODO XXX NOTE contained
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020069
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010070" highlight trailing spaces
71syn match DnsmasqTrailSpace "[ \t]\+$"
72syn match DnsmasqTrailSpace "[ \t]\+$" containedin=ALL
73
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020074syn match DnsmasqKeywordSpecial "\<set\>:"me=e-1
75syn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1
76syn match DnsmasqKeywordSpecial ",\<static\>"hs=s+1 contains=DnsmasqSpecial
77syn match DnsmasqKeywordSpecial ",\<infinite\>"hs=s+1 contains=DnsmasqSpecial
78syn match DnsmasqKeywordSpecial "\<encap\>:"me=e-1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010079syn match DnsmasqKeywordSpecial "\<interface\>:"me=e-1
80syn match DnsmasqKeywordSpecial "\<vi-encap\>:"me=e-1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020081syn match DnsmasqKeywordSpecial "\<net\>:"me=e-1
82syn match DnsmasqKeywordSpecial "\<vendor\>:"me=e-1
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010083syn match DnsmasqKeywordSpecial "\<opt\>:"me=e-1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020084syn match DnsmasqKeywordSpecial "\<option\>:"me=e-1
85syn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial
86syn match DnsmasqKeywordSpecial "\<id\>:"me=e-1
87
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020088syn match DnsmasqKeyword "^\s*add-mac\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020089syn match DnsmasqKeyword "^\s*addn-hosts\>"
90syn match DnsmasqKeyword "^\s*address\>"
91syn match DnsmasqKeyword "^\s*alias\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020092syn match DnsmasqKeyword "^\s*all-servers\>"
93syn match DnsmasqKeyword "^\s*bind-interfaces\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020094syn match DnsmasqKeyword "^\s*bogus-nxdomain\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020095syn match DnsmasqKeyword "^\s*bogus-priv\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010096syn match DnsmasqKeyword "^\s*bootp-dynamic\>"
97syn match DnsmasqKeyword "^\s*bridge-interface\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +020098syn match DnsmasqKeyword "^\s*cache-size\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +020099syn match DnsmasqKeyword "^\s*clear-on-reload\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200100syn match DnsmasqKeyword "^\s*cname\>"
101syn match DnsmasqKeyword "^\s*conf-dir\>"
102syn match DnsmasqKeyword "^\s*conf-file\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100103syn match DnsmasqKeyword "^\s*conntrack\>"
104syn match DnsmasqKeyword "^\s*dhcp-alternate-port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200105syn match DnsmasqKeyword "^\s*dhcp-authoritative\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200106syn match DnsmasqKeyword "^\s*dhcp-boot\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100107syn match DnsmasqKeyword "^\s*dhcp-broadcast\>"
108syn match DnsmasqKeyword "^\s*dhcp-circuitid\>"
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\>"
117syn match DnsmasqKeyword "^\s*dhcp-mac\>"
118syn match DnsmasqKeyword "^\s*dhcp-match\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200119syn match DnsmasqKeyword "^\s*dhcp-no-override\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200120syn match DnsmasqKeyword "^\s*dhcp-option\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100121syn match DnsmasqKeyword "^\s*dhcp-option-force\>"
122syn match DnsmasqKeyword "^\s*dhcp-optsfile\>"
123syn match DnsmasqKeyword "^\s*dhcp-proxy\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200124syn match DnsmasqKeyword "^\s*dhcp-range\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100125syn match DnsmasqKeyword "^\s*dhcp-remoteid\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200126syn match DnsmasqKeyword "^\s*dhcp-script\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200127syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100128syn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>"
129syn match DnsmasqKeyword "^\s*dhcp-subscrid\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200130syn match DnsmasqKeyword "^\s*dhcp-userclass\>"
131syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100132syn match DnsmasqKeyword "^\s*dns-forward-max\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200133syn match DnsmasqKeyword "^\s*domain\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100134syn match DnsmasqKeyword "^\s*domain-needed\>"
135syn match DnsmasqKeyword "^\s*edns-packet-max\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200136syn match DnsmasqKeyword "^\s*enable-dbus\>"
137syn match DnsmasqKeyword "^\s*enable-tftp\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200138syn match DnsmasqKeyword "^\s*except-interface\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200139syn match DnsmasqKeyword "^\s*expand-hosts\>"
140syn match DnsmasqKeyword "^\s*filterwin2k\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200141syn match DnsmasqKeyword "^\s*group\>"
142syn match DnsmasqKeyword "^\s*interface\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100143syn match DnsmasqKeyword "^\s*interface-name\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200144syn match DnsmasqKeyword "^\s*keep-in-foreground\>"
145syn match DnsmasqKeyword "^\s*leasefile-ro\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200146syn match DnsmasqKeyword "^\s*listen-address\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200147syn match DnsmasqKeyword "^\s*local\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100148syn match DnsmasqKeyword "^\s*local-ttl\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200149syn match DnsmasqKeyword "^\s*localise-queries\>"
150syn match DnsmasqKeyword "^\s*localmx\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100151syn match DnsmasqKeyword "^\s*log-async\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200152syn match DnsmasqKeyword "^\s*log-dhcp\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100153syn match DnsmasqKeyword "^\s*log-facility\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200154syn match DnsmasqKeyword "^\s*log-queries\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100155syn match DnsmasqKeyword "^\s*max-ttl\>"
156syn match DnsmasqKeyword "^\s*min-port\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200157syn match DnsmasqKeyword "^\s*mx-host\>"
158syn match DnsmasqKeyword "^\s*mx-target\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100159syn match DnsmasqKeyword "^\s*naptr-record\>"
160syn match DnsmasqKeyword "^\s*neg-ttl\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200161syn match DnsmasqKeyword "^\s*no-daemon\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200162syn match DnsmasqKeyword "^\s*no-dhcp-interface\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200163syn match DnsmasqKeyword "^\s*no-hosts\>"
164syn match DnsmasqKeyword "^\s*no-negcache\>"
165syn match DnsmasqKeyword "^\s*no-ping\>"
166syn match DnsmasqKeyword "^\s*no-poll\>"
167syn match DnsmasqKeyword "^\s*no-resolv\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100168syn match DnsmasqKeyword "^\s*pid-file\>"
169syn match DnsmasqKeyword "^\s*port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200170syn match DnsmasqKeyword "^\s*proxy-dnssec\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200171syn match DnsmasqKeyword "^\s*ptr-record\>"
172syn match DnsmasqKeyword "^\s*pxe-prompt\>"
173syn match DnsmasqKeyword "^\s*pxe-service\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100174syn match DnsmasqKeyword "^\s*query-port\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200175syn match DnsmasqKeyword "^\s*read-ethers\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100176syn match DnsmasqKeyword "^\s*rebind-domain-ok\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200177syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200178syn match DnsmasqKeyword "^\s*resolv-file\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200179syn match DnsmasqKeyword "^\s*selfmx\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200180syn match DnsmasqKeyword "^\s*server\>"
181syn match DnsmasqKeyword "^\s*srv-host\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200182syn match DnsmasqKeyword "^\s*stop-dns-rebind\>"
183syn match DnsmasqKeyword "^\s*strict-order\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100184syn match DnsmasqKeyword "^\s*tag-if\>"
185syn match DnsmasqKeyword "^\s*test\>"
186syn match DnsmasqKeyword "^\s*tftp-max\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200187syn match DnsmasqKeyword "^\s*tftp-no-blocksize\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100188syn match DnsmasqKeyword "^\s*tftp-port-range\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200189syn match DnsmasqKeyword "^\s*tftp-root\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200190syn match DnsmasqKeyword "^\s*tftp-secure\>"
191syn match DnsmasqKeyword "^\s*tftp-unique-root\>"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200192syn match DnsmasqKeyword "^\s*txt-record\>"
193syn match DnsmasqKeyword "^\s*user\>"
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100194syn match DnsmasqKeyword "^\s*version\>"
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200195
196
197if b:dnsmasq_backrgound_light == 1
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200198 hi def DnsmasqParams ctermfg=DarkGreen guifg=DarkGreen
199 hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200200else
201 hi def link DnsmasqKeyword Keyword
202 hi def link DnsmasqParams Keyword
203endif
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200204hi def link DnsmasqKeywordSpecial Type
205hi def link DnsmasqTodo Todo
206hi def link DnsmasqSpecial Constant
207hi def link DnsmasqIPv4 Identifier
208hi def link DnsmasqSubnet2 DnsmasqSubnet
209hi def link DnsmasqSubnet DnsmasqMac
210hi def link DnsmasqRange DnsmasqMac
211hi def link DnsmasqMac Preproc
212hi def link DnsmasqTime Preproc
213hi def link DnsmasqComment Comment
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100214hi def link DnsmasqTrailSpace DiffDelete
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200215hi def link DnsmasqString Constant
216hi def link DnsmasqValues Normal
217
Bram Moolenaar8e5af3e2011-04-28 19:02:44 +0200218let b:current_syntax = "dnsmasq"
Bram Moolenaar20f90cf2011-05-19 12:22:51 +0200219
Bram Moolenaarf1568ec2011-12-14 21:17:39 +0100220let &cpo = s:keepcpo
221unlet s:keepcpo
222