1c873442bSBram Moolenaar" Vim syntax file 2c873442bSBram Moolenaar" Maintainer: Thilo Six 3d5d015d4SBram Moolenaar" Contact: [email protected] 4d5d015d4SBram Moolenaar" :3s+-foo++g 5c873442bSBram Moolenaar" Description: highlight dnsmasq configuration files 684f7235bSBram Moolenaar" File: runtime/syntax/dnsmasq.vim 760cce2fbSBram Moolenaar" Version: 2.76 860cce2fbSBram Moolenaar" Last Change: 2015 Sep 27 9c873442bSBram Moolenaar" Modeline: vim: ts=8:sw=2:sts=2: 10f1568ecaSBram Moolenaar" 1184f7235bSBram Moolenaar" License: VIM License 12c873442bSBram Moolenaar" Vim is Charityware, see ":help Uganda" 1384f7235bSBram Moolenaar" 1420f90cf9SBram Moolenaar" Options: You might want to add this to your vimrc: 1520f90cf9SBram Moolenaar" 1620f90cf9SBram Moolenaar" if &background == "dark" 1720f90cf9SBram Moolenaar" let dnsmasq_backrgound_light = 0 1820f90cf9SBram Moolenaar" else 1920f90cf9SBram Moolenaar" let dnsmasq_backrgound_light = 1 2020f90cf9SBram Moolenaar" endif 218e5af3e5SBram Moolenaar" 228e5af3e5SBram Moolenaar 23*89bcfda6SBram Moolenaar" quit when a syntax file was already loaded 24*89bcfda6SBram Moolenaarif exists("b:current_syntax") || &compatible 258e5af3e5SBram Moolenaar finish 268e5af3e5SBram Moolenaarendif 278e5af3e5SBram Moolenaar 2884f7235bSBram Moolenaarlet s:cpo_save = &cpo 29f1568ecaSBram Moolenaarset cpo&vim 30f1568ecaSBram Moolenaar 318e5af3e5SBram Moolenaarif !exists("b:dnsmasq_backrgound_light") 328e5af3e5SBram Moolenaar if exists("dnsmasq_backrgound_light") 338e5af3e5SBram Moolenaar let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light 348e5af3e5SBram Moolenaar else 358e5af3e5SBram Moolenaar let b:dnsmasq_backrgound_light = 0 368e5af3e5SBram Moolenaar endif 378e5af3e5SBram Moolenaarendif 388e5af3e5SBram Moolenaar 398e5af3e5SBram Moolenaar 408e5af3e5SBram Moolenaar" case on 418e5af3e5SBram Moolenaarsyn case match 428e5af3e5SBram Moolenaar 438e5af3e5SBram Moolenaarsyn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial 4420f90cf9SBram Moolenaarsyn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues 458e5af3e5SBram Moolenaarsyn match DnsmasqSpecial "#" 468e5af3e5SBram Moolenaar 47c873442bSBram Moolenaarsyn 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 48c873442bSBram Moolenaarsyn 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]\?\)\>" 49c873442bSBram Moolenaarsyn match DnsmasqSubnet2 contained "\/\([0-4]\?[0-9]\)\>" 5020f90cf9SBram Moolenaarsyn match DnsmasqRange contained "-" 5120f90cf9SBram Moolenaarsyn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?" 5220f90cf9SBram Moolenaar 5320f90cf9SBram Moolenaarsyn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>" 5420f90cf9SBram Moolenaar 558e5af3e5SBram Moolenaar" String 56c873442bSBram Moolenaarsyn match DnsmasqString "\".*\"" contains=@Spell 57c873442bSBram Moolenaarsyn match DnsmasqString "'.*'" contains=@Spell 588e5af3e5SBram Moolenaar 598e5af3e5SBram Moolenaar" Comments 609729301aSBram Moolenaarsyn keyword DnsmasqTodo FIXME TODO XXX NOTE contained 61c873442bSBram Moolenaarsyn match DnsmasqComment "\(^\|\s\+\)#.*$" contains=@Spell,DnsmasqTodo 628e5af3e5SBram Moolenaar 63f1568ecaSBram Moolenaar" highlight trailing spaces 64f1568ecaSBram Moolenaarsyn match DnsmasqTrailSpace "[ \t]\+$" 65f1568ecaSBram Moolenaarsyn match DnsmasqTrailSpace "[ \t]\+$" containedin=ALL 66f1568ecaSBram Moolenaar 6720f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<set\>:"me=e-1 6820f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1 6920f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial ",\<static\>"hs=s+1 contains=DnsmasqSpecial 7020f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial ",\<infinite\>"hs=s+1 contains=DnsmasqSpecial 7120f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<encap\>:"me=e-1 72f1568ecaSBram Moolenaarsyn match DnsmasqKeywordSpecial "\<interface\>:"me=e-1 73f1568ecaSBram Moolenaarsyn match DnsmasqKeywordSpecial "\<vi-encap\>:"me=e-1 7420f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<net\>:"me=e-1 7520f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<vendor\>:"me=e-1 76f1568ecaSBram Moolenaarsyn match DnsmasqKeywordSpecial "\<opt\>:"me=e-1 7720f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<option\>:"me=e-1 7820f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial 7920f90cf9SBram Moolenaarsyn match DnsmasqKeywordSpecial "\<id\>:"me=e-1 8020f90cf9SBram Moolenaar 818e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*add-mac\>" 82d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*add-subnet\>" 8320f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*addn-hosts\>" 8420f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*address\>" 8520f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*alias\>" 868e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*all-servers\>" 87d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*auth-zone\>" 88d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*bind-dynamic\>" 898e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*bind-interfaces\>" 9020f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*bogus-nxdomain\>" 918e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*bogus-priv\>" 92f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*bootp-dynamic\>" 93f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*bridge-interface\>" 9420f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*cache-size\>" 958e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*clear-on-reload\>" 9620f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*cname\>" 9720f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*conf-dir\>" 9820f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*conf-file\>" 99f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*conntrack\>" 100f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-alternate-port\>" 1018e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-authoritative\>" 10220f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-boot\>" 103f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-broadcast\>" 104f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-circuitid\>" 10584f7235bSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-client-update\>" 106c873442bSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-duid\>" 1078e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-fqdn\>" 108f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-generate-names\>" 10920f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-host\>" 110f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-hostsfile\>" 11120f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-ignore\>" 112f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-ignore-names\>" 11320f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-lease-max\>" 11420f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-leasefile\>" 11584f7235bSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-luascript\>" 11620f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-mac\>" 11720f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-match\>" 1188e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-no-override\>" 11920f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-option\>" 120f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-option-force\>" 121f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-optsfile\>" 122f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-proxy\>" 12320f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-range\>" 124d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-relay\>" 125f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-remoteid\>" 12620f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-script\>" 1278e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-scriptuser\>" 128f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-sequential-ip\>" 129f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-subscrid\>" 13020f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-userclass\>" 13120f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-vendorclass\>" 13260cce2fbSBram Moolenaarsyn match DnsmasqKeyword "^\s*dhcp-hostsdir\>" 133d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*dns-rr\>" 134bcb9898eSBram Moolenaarsyn match DnsmasqKeyword "^\s*dnssec\>" 135bcb9898eSBram Moolenaarsyn match DnsmasqKeyword "^\s*dnssec-check-unsigned\>" 136bcb9898eSBram Moolenaarsyn match DnsmasqKeyword "^\s*dnssec-no-timecheck\>" 13760cce2fbSBram Moolenaarsyn match DnsmasqKeyword "^\s*dnssec-timestamp\>" 138f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*dns-forward-max\>" 13920f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*domain\>" 140f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*domain-needed\>" 141f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*edns-packet-max\>" 1428e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*enable-dbus\>" 14384f7235bSBram Moolenaarsyn match DnsmasqKeyword "^\s*enable-ra\>" 1448e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*enable-tftp\>" 14520f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*except-interface\>" 1468e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*expand-hosts\>" 1478e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*filterwin2k\>" 14820f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*group\>" 149c873442bSBram Moolenaarsyn match DnsmasqKeyword "^\s*host-record\>" 15020f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*interface\>" 151f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*interface-name\>" 152d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*ipset\>" 15360cce2fbSBram Moolenaarsyn match DnsmasqKeyword "^\s*ignore-address\>" 1548e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*keep-in-foreground\>" 1558e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*leasefile-ro\>" 15620f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*listen-address\>" 15720f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*local\>" 15884f7235bSBram Moolenaarsyn match DnsmasqKeyword "^\s*localmx\>" 159f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*local-ttl\>" 160bcb9898eSBram Moolenaarsyn match DnsmasqKeyword "^\s*local-service\>" 1618e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*localise-queries\>" 162f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*log-async\>" 1638e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*log-dhcp\>" 164f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*log-facility\>" 1658e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*log-queries\>" 166f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*max-ttl\>" 167d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*max-cache-ttl\>" 16860cce2fbSBram Moolenaarsyn match DnsmasqKeyword "^\s*min-cache-ttl\>" 169f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*min-port\>" 17020f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*mx-host\>" 17120f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*mx-target\>" 172f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*naptr-record\>" 173f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*neg-ttl\>" 1748e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-daemon\>" 17520f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-dhcp-interface\>" 1768e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-hosts\>" 1778e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-negcache\>" 1788e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-ping\>" 1798e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-poll\>" 1808e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*no-resolv\>" 181f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*pid-file\>" 182f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*port\>" 1838e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*proxy-dnssec\>" 18420f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*ptr-record\>" 18520f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*pxe-prompt\>" 18620f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*pxe-service\>" 187f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*query-port\>" 188d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*quiet-ra\>" 189d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*quiet-dhcp\>" 190d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*quiet-dhcp6\>" 191d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*ra-param\>" 1928e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*read-ethers\>" 193f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*rebind-domain-ok\>" 1948e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*rebind-localhost-ok\>" 19520f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*resolv-file\>" 196bcb9898eSBram Moolenaarsyn match DnsmasqKeyword "^\s*rev-server\>" 1978e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*selfmx\>" 19820f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*server\>" 199bcb9898eSBram Moolenaarsyn match DnsmasqKeyword "^\s*servers-file\>" 20020f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*srv-host\>" 2018e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*stop-dns-rebind\>" 2028e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*strict-order\>" 203d5d015d4SBram Moolenaarsyn match DnsmasqKeyword "^\s*synth-domain\>" 204f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*tag-if\>" 205f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*test\>" 206f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-max\>" 207c873442bSBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-lowercase\>" 2088e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-no-blocksize\>" 20960cce2fbSBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-no-fail\>" 210f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-port-range\>" 21120f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-root\>" 2128e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-secure\>" 2138e5af3e5SBram Moolenaarsyn match DnsmasqKeyword "^\s*tftp-unique-root\>" 21420f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*txt-record\>" 21520f90cf9SBram Moolenaarsyn match DnsmasqKeyword "^\s*user\>" 216f1568ecaSBram Moolenaarsyn match DnsmasqKeyword "^\s*version\>" 2178e5af3e5SBram Moolenaar 2188e5af3e5SBram Moolenaar 2198e5af3e5SBram Moolenaarif b:dnsmasq_backrgound_light == 1 2208e5af3e5SBram Moolenaar hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen 2218e5af3e5SBram Moolenaarelse 2228e5af3e5SBram Moolenaar hi def link DnsmasqKeyword Keyword 2238e5af3e5SBram Moolenaarendif 22420f90cf9SBram Moolenaarhi def link DnsmasqKeywordSpecial Type 2258e5af3e5SBram Moolenaarhi def link DnsmasqTodo Todo 2268e5af3e5SBram Moolenaarhi def link DnsmasqSpecial Constant 22720f90cf9SBram Moolenaarhi def link DnsmasqIPv4 Identifier 22820f90cf9SBram Moolenaarhi def link DnsmasqSubnet2 DnsmasqSubnet 22920f90cf9SBram Moolenaarhi def link DnsmasqSubnet DnsmasqMac 23020f90cf9SBram Moolenaarhi def link DnsmasqRange DnsmasqMac 23120f90cf9SBram Moolenaarhi def link DnsmasqMac Preproc 23220f90cf9SBram Moolenaarhi def link DnsmasqTime Preproc 2338e5af3e5SBram Moolenaarhi def link DnsmasqComment Comment 234f1568ecaSBram Moolenaarhi def link DnsmasqTrailSpace DiffDelete 2358e5af3e5SBram Moolenaarhi def link DnsmasqString Constant 2368e5af3e5SBram Moolenaarhi def link DnsmasqValues Normal 23720f90cf9SBram Moolenaar 2388e5af3e5SBram Moolenaarlet b:current_syntax = "dnsmasq" 23920f90cf9SBram Moolenaar 24084f7235bSBram Moolenaarlet &cpo = s:cpo_save 24184f7235bSBram Moolenaarunlet s:cpo_save 242f1568ecaSBram Moolenaar 243