summaryrefslogtreecommitdiff
path: root/runtime/syntax/dnsmasq.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/dnsmasq.vim')
-rw-r--r--runtime/syntax/dnsmasq.vim109
1 files changed, 89 insertions, 20 deletions
diff --git a/runtime/syntax/dnsmasq.vim b/runtime/syntax/dnsmasq.vim
index e6976201f..80248201f 100644
--- a/runtime/syntax/dnsmasq.vim
+++ b/runtime/syntax/dnsmasq.vim
@@ -1,13 +1,20 @@
" Vim syntax file
" Language: dnsmasq(8) configuration file
" Maintainer: Thilo Six <T.Six@gmx.de>
-" Last Change: 2011 Apr 28
+" Last Change: 17 May 2011
" Credits: This file is a mix of cfg.vim, wget.vim and xf86conf.vim, credits go to:
" Igor N. Prischepoff
" Doug Kearns
" David Ne\v{c}as
"
-" Options: let dnsmasq_backrgound_light = 1
+" Options: You might want to add this to your vimrc:
+"
+" if &background == "dark"
+" " dnsmasq.vim
+" let dnsmasq_backrgound_light = 0
+" else
+" let dnsmasq_backrgound_light = 1
+" endif
"
" For version 5.x: Clear all syntax items
@@ -18,6 +25,7 @@ elseif exists ("b:current_syntax")
finish
endif
+
if !exists("b:dnsmasq_backrgound_light")
if exists("dnsmasq_backrgound_light")
let b:dnsmasq_backrgound_light = dnsmasq_backrgound_light
@@ -30,75 +38,136 @@ endif
" case on
syn case match
-"Parameters
-syn match DnsmasqParams "^.\{-}="me=e-1 contains=DnsmasqComment
-"... and their values (don't want to highlight '=' sign)
syn match DnsmasqValues "=.*"hs=s+1 contains=DnsmasqComment,DnsmasqSpecial
+syn match DnsmasqSpecial display '=\|@\|,\|!\|:' nextgroup=DnsmasqValues
+syn match DnsmasqSpecial "#"
-"...because we do it here.
-syn match DnsmasqEq display '=\|@\|/\|,' nextgroup=DnsmasqValues
+syn match DnsmasqIPv4 "\(\d\{1,3}\.\)\{3}\d\{1,3}" nextgroup=DnsmasqSubnet2,DnsmasqRange
+syn match DnsmasqSubnet "\<255.\(\d\{1,3}\.\)\{2}\d\{1,3}"
+syn match DnsmasqSubnet2 contained "\/\(\d\{1,2}\)\>"
+syn match DnsmasqRange contained "-"
+syn match DnsmasqMac "\<\(\x\x\?:\)\{5}\x\x\?"
-syn match DnsmasqSpecial "#"
+syn match DnsmasqTime "\<\(\d\{1,3}\)[hm]\>"
" String
-syn match DnsmasqString "\".*\""
-syn match DnsmasqString "'.*'"
+syn match DnsmasqString "\".*\""
+syn match DnsmasqString "'.*'"
" Comments
-syn match DnsmasqComment "^#.*$" contains=DnsmasqTodo
-syn match DnsmasqComment "[ \t]#.*$" contains=DnsmasqTodo
+syn match DnsmasqComment "^#.*$" contains=DnsmasqTodo
+syn match DnsmasqComment "\s#.*$" contains=DnsmasqTodo
syn keyword DnsmasqTodo FIXME TODO XXX NOT contained
+syn match DnsmasqKeywordSpecial "\<set\>:"me=e-1
+syn match DnsmasqKeywordSpecial "\<tag\>:"me=e-1
+syn match DnsmasqKeywordSpecial ",\<static\>"hs=s+1 contains=DnsmasqSpecial
+syn match DnsmasqKeywordSpecial ",\<infinite\>"hs=s+1 contains=DnsmasqSpecial
+syn match DnsmasqKeywordSpecial "\<encap\>:"me=e-1
+syn match DnsmasqKeywordSpecial "\<net\>:"me=e-1
+syn match DnsmasqKeywordSpecial "\<vendor\>:"me=e-1
+syn match DnsmasqKeywordSpecial "\<option\>:"me=e-1
+syn match DnsmasqKeywordSpecial ",\<ignore\>"hs=s+1 contains=DnsmasqSpecial
+syn match DnsmasqKeywordSpecial "\<id\>:"me=e-1
+
syn match DnsmasqKeyword "^\s*add-mac\>"
+syn match DnsmasqKeyword "^\s*addn-hosts\>"
+syn match DnsmasqKeyword "^\s*address\>"
+syn match DnsmasqKeyword "^\s*alias\>"
syn match DnsmasqKeyword "^\s*all-servers\>"
syn match DnsmasqKeyword "^\s*bind-interfaces\>"
+syn match DnsmasqKeyword "^\s*bogus-nxdomain\>"
syn match DnsmasqKeyword "^\s*bogus-priv\>"
+syn match DnsmasqKeyword "^\s*cache-size\>"
syn match DnsmasqKeyword "^\s*clear-on-reload\>"
+syn match DnsmasqKeyword "^\s*cname\>"
+syn match DnsmasqKeyword "^\s*conf-dir\>"
+syn match DnsmasqKeyword "^\s*conf-file\>"
syn match DnsmasqKeyword "^\s*dhcp-authoritative\>"
+syn match DnsmasqKeyword "^\s*dhcp-boot\>"
syn match DnsmasqKeyword "^\s*dhcp-fqdn\>"
+syn match DnsmasqKeyword "^\s*dhcp-host\>"
+syn match DnsmasqKeyword "^\s*dhcp-ignore\>"
+syn match DnsmasqKeyword "^\s*dhcp-lease-max\>"
+syn match DnsmasqKeyword "^\s*dhcp-leasefile\>"
+syn match DnsmasqKeyword "^\s*dhcp-mac\>"
+syn match DnsmasqKeyword "^\s*dhcp-match\>"
syn match DnsmasqKeyword "^\s*dhcp-no-override\>"
+syn match DnsmasqKeyword "^\s*dhcp-option-force\>"
+syn match DnsmasqKeyword "^\s*dhcp-option\>"
+syn match DnsmasqKeyword "^\s*dhcp-range\>"
+syn match DnsmasqKeyword "^\s*dhcp-script\>"
syn match DnsmasqKeyword "^\s*dhcp-scriptuser\>"
+syn match DnsmasqKeyword "^\s*dhcp-userclass\>"
+syn match DnsmasqKeyword "^\s*dhcp-vendorclass\>"
syn match DnsmasqKeyword "^\s*domain-needed\>"
+syn match DnsmasqKeyword "^\s*domain\>"
syn match DnsmasqKeyword "^\s*enable-dbus\>"
syn match DnsmasqKeyword "^\s*enable-tftp\>"
+syn match DnsmasqKeyword "^\s*except-interface\>"
syn match DnsmasqKeyword "^\s*expand-hosts\>"
syn match DnsmasqKeyword "^\s*filterwin2k\>"
+syn match DnsmasqKeyword "^\s*group\>"
+syn match DnsmasqKeyword "^\s*interface\>"
syn match DnsmasqKeyword "^\s*keep-in-foreground\>"
syn match DnsmasqKeyword "^\s*leasefile-ro\>"
+syn match DnsmasqKeyword "^\s*listen-address\>"
+syn match DnsmasqKeyword "^\s*local-ttl\>"
+syn match DnsmasqKeyword "^\s*local\>"
syn match DnsmasqKeyword "^\s*localise-queries\>"
syn match DnsmasqKeyword "^\s*localmx\>"
syn match DnsmasqKeyword "^\s*log-dhcp\>"
syn match DnsmasqKeyword "^\s*log-queries\>"
+syn match DnsmasqKeyword "^\s*mx-host\>"
+syn match DnsmasqKeyword "^\s*mx-target\>"
syn match DnsmasqKeyword "^\s*no-daemon\>"
+syn match DnsmasqKeyword "^\s*no-dhcp-interface\>"
syn match DnsmasqKeyword "^\s*no-hosts\>"
syn match DnsmasqKeyword "^\s*no-negcache\>"
syn match DnsmasqKeyword "^\s*no-ping\>"
syn match DnsmasqKeyword "^\s*no-poll\>"
syn match DnsmasqKeyword "^\s*no-resolv\>"
syn match DnsmasqKeyword "^\s*proxy-dnssec\>"
+syn match DnsmasqKeyword "^\s*ptr-record\>"
+syn match DnsmasqKeyword "^\s*pxe-prompt\>"
+syn match DnsmasqKeyword "^\s*pxe-service\>"
syn match DnsmasqKeyword "^\s*read-ethers\>"
syn match DnsmasqKeyword "^\s*rebind-localhost-ok\>"
+syn match DnsmasqKeyword "^\s*resolv-file\>"
syn match DnsmasqKeyword "^\s*selfmx\>"
+syn match DnsmasqKeyword "^\s*server\>"
+syn match DnsmasqKeyword "^\s*srv-host\>"
syn match DnsmasqKeyword "^\s*stop-dns-rebind\>"
syn match DnsmasqKeyword "^\s*strict-order\>"
syn match DnsmasqKeyword "^\s*tftp-no-blocksize\>"
+syn match DnsmasqKeyword "^\s*tftp-root\>"
syn match DnsmasqKeyword "^\s*tftp-secure\>"
syn match DnsmasqKeyword "^\s*tftp-unique-root\>"
+syn match DnsmasqKeyword "^\s*txt-record\>"
+syn match DnsmasqKeyword "^\s*user\>"
if b:dnsmasq_backrgound_light == 1
- hi def DnsmasqParams ctermfg=DarkGreen guifg=DarkGreen
- hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen
+ hi def DnsmasqParams ctermfg=DarkGreen guifg=DarkGreen
+ hi def DnsmasqKeyword ctermfg=DarkGreen guifg=DarkGreen
else
hi def link DnsmasqKeyword Keyword
hi def link DnsmasqParams Keyword
endif
-hi def link DnsmasqTodo Todo
-hi def link DnsmasqSpecial Constant
-hi def link DnsmasqComment Comment
-hi def link DnsmasqString Constant
-hi def link DnsmasqValues Normal
-hi def link DnsmasqEq Constant
+hi def link DnsmasqKeywordSpecial Type
+hi def link DnsmasqTodo Todo
+hi def link DnsmasqSpecial Constant
+hi def link DnsmasqIPv4 Identifier
+hi def link DnsmasqSubnet2 DnsmasqSubnet
+hi def link DnsmasqSubnet DnsmasqMac
+hi def link DnsmasqRange DnsmasqMac
+hi def link DnsmasqMac Preproc
+hi def link DnsmasqTime Preproc
+hi def link DnsmasqComment Comment
+hi def link DnsmasqString Constant
+hi def link DnsmasqValues Normal
+
let b:current_syntax = "dnsmasq"
+