" Vim syntax file " Language: BIND 8.x configuration file " Maintainer: glory hump " Last change: Mon May 21 04:51:01 SAMST 2001 " Filenames: named.conf " URL: http://rnd.web-drive.ru/vim/syntax/named.vim " $Id: named.vim,v 1.4 2001/05/21 00:03:53 rnd Exp $ " " NOTE " it was not widely tested, i just tried it on my simple " single-master-single-slave configuration. most syntax was borrowed " directly from "BIND Configuration File Guide" without testing. " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif syn case match if version >= 600 setlocal iskeyword=.,-,48-58,A-Z,a-z,_ else set iskeyword=.,-,48-58,A-Z,a-z,_ endif let s:save_cpo = &cpo set cpo-=C " BIND configuration file syn match namedComment "//.*" syn region namedComment start="/\*" end="\*/" syn region namedString start=/"/ end=/"/ contained " --- omitted trailing semicolon FIXME syn match namedError /[^;{]$/ " --- top-level keywords syn keyword namedInclude include nextgroup=namedString skipwhite syn keyword namedKeyword acl key nextgroup=namedIntIdent skipwhite syn keyword namedKeyword server nextgroup=namedIdentifier skipwhite syn keyword namedKeyword controls nextgroup=namedSection skipwhite syn keyword namedKeyword trusted-keys nextgroup=namedIntSection skipwhite syn keyword namedKeyword logging nextgroup=namedLogSection skipwhite syn keyword namedKeyword options nextgroup=namedOptSection skipwhite syn keyword namedKeyword zone nextgroup=namedZoneString skipwhite " --- Identifier: name of following { ... } Section syn match namedIdentifier contained /\k\+/ nextgroup=namedSection skipwhite " --- IntIdent: name of following IntSection syn match namedIntIdent contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite " --- Section: { ... } clause syn region namedSection contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword " --- IntSection: section that does not contain other sections syn region namedIntSection contained start=+{+ end=+}+ contains=namedIntKeyword,namedError " --- IntKeyword: keywords contained within `{ ... }' sections only " + these keywords are contained within `key' and `acl' sections syn keyword namedIntKeyword contained key algorithm syn keyword namedIntKeyword contained secret nextgroup=namedString skipwhite " + these keywords are contained within `server' section only syn keyword namedIntKeyword contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite syn keyword namedIntKeyword contained transfers nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedIntKeyword contained transfer-format syn keyword namedIntKeyword contained keys nextgroup=namedIntSection skipwhite " + these keywords are contained within `controls' section only syn keyword namedIntKeyword contained inet nextgroup=namedIPaddr,namedIPerror skipwhite syn keyword namedIntKeyword contained unix nextgroup=namedString skipwhite syn keyword namedIntKeyword contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedIntKeyword contained allow nextgroup=namedIntSection skipwhite " --- options syn region namedOptSection contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError syn keyword namedOption contained version directory \ nextgroup=namedString skipwhite syn keyword namedOption contained named-xfer dump-file pid-file \ nextgroup=namedString skipwhite syn keyword namedOption contained mem-statistics-file statistics-file \ nextgroup=namedString skipwhite syn keyword namedOption contained auth-nxdomain deallocate-on-exit \ nextgroup=namedBool,namedNotBool skipwhite syn keyword namedOption contained dialup fake-iquery fetch-glue \ nextgroup=namedBool,namedNotBool skipwhite syn keyword namedOption contained has-old-clients host-statistics \ nextgroup=namedBool,namedNotBool skipwhite syn keyword namedOption contained maintain-ixfr-base multiple-cnames \ nextgroup=namedBool,namedNotBool skipwhite syn keyword namedOption contained notify recursion rfc2308-type1 \ nextgroup=namedBool,namedNotBool skipwhite syn keyword namedOption contained use-id-pool treat-cr-as-space \ nextgroup=namedBool,namedNotBool skipwhite syn keyword namedOption contained also-notify forwarders \ nextgroup=namedIntSection skipwhite syn keyword namedOption contained forward check-names syn keyword namedOption contained allow-query allow-transfer allow-recursion nextgroup=namedAML skipwhite syn keyword namedOption contained blackhole listen-on \ nextgroup=namedIntSection skipwhite syn keyword namedOption contained lame-ttl max-transfer-time-in \ nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedOption contained max-ncache-ttl min-roots \ nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedOption contained serial-queries transfers-in \ nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedOption contained transfers-out transfers-per-ns syn keyword namedOption contained transfer-format syn keyword namedOption contained transfer-source \ nextgroup=namedIPaddr,namedIPerror skipwhite syn keyword namedOption contained max-ixfr-log-size \ nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedOption contained coresize datasize files stacksize syn keyword namedOption contained cleaning-interval interface-interval statistics-interval heartbeat-interval \ nextgroup=namedNumber,namedNotNumber skipwhite syn keyword namedOption contained topology sortlist rrset-order \ nextgroup=namedIntSection skipwhite syn match namedOption contained /\/ nextgroup=namedSpareDot syn match namedDomain contained /"\."/ms=s+1,me=e-1 syn match namedSpareDot contained /\./ " --- syntax errors syn match namedIllegalDom contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1 syn match namedIPerror contained /\<\S*[^0-9.[:space:];]\S*/ syn match namedEParenError contained +{+ syn match namedParenError +}\([^;]\|$\)+ " Define the default highlighting. " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_named_syn_inits") if version < 508 let did_named_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink namedComment Comment HiLink namedInclude Include HiLink namedKeyword Keyword HiLink namedIntKeyword Keyword HiLink namedIdentifier Identifier HiLink namedIntIdent Identifier HiLink namedString String HiLink namedBool Type HiLink namedNotBool Error HiLink namedNumber Number HiLink namedNotNumber Error HiLink namedOption namedKeyword HiLink namedLogOption namedKeyword HiLink namedCNOption namedKeyword HiLink namedQSKeywords Type HiLink namedCNKeywords Type HiLink namedLogCategory Type HiLink namedDomain Identifier HiLink namedZoneOpt namedKeyword HiLink namedZoneType Type HiLink namedParenError Error HiLink namedEParenError Error HiLink namedIllegalDom Error HiLink namedIPerror Error HiLink namedSpareDot Error HiLink namedError Error delcommand HiLink endif let &cpo = s:save_cpo unlet s:save_cpo let b:current_syntax = "named" " vim: ts=17