1" Vim syntax file 2" Language: BIND 8.x configuration file 3" Maintainer: glory hump <[email protected]> 4" Last change: Mon May 21 04:51:01 SAMST 2001 5" Updated: by Martin Dalecki 2004-12-31 6" Filenames: named.conf 7" URL: http://rnd.web-drive.ru/vim/syntax/named.vim [DEFUNCT] 8" $Id$ 9" 10" NOTE 11" it was not widely tested, i just tried it on my simple 12" single-master-single-slave configuration. most syntax was borrowed 13" directly from "BIND Configuration File Guide" without testing. 14 15" For version 5.x: Clear all syntax items 16" For version 6.x: Quit when a syntax file was already loaded 17if version < 600 18 syntax clear 19elseif exists("b:current_syntax") 20 finish 21endif 22 23syn case match 24 25if version >= 600 26 setlocal iskeyword=.,-,48-58,A-Z,a-z,_ 27else 28 set iskeyword=.,-,48-58,A-Z,a-z,_ 29endif 30 31let s:save_cpo = &cpo 32set cpo-=C 33 34" BIND configuration file 35 36syn match namedComment "//.*" 37syn match namedComment "#.*" 38syn region namedComment start="/\*" end="\*/" 39syn region namedString start=/"/ end=/"/ contained 40" --- omitted trailing semicolon 41syn match namedError /[^;{#]$/ 42 43" --- top-level keywords 44 45syn keyword namedInclude include nextgroup=namedString skipwhite 46syn keyword namedKeyword acl key nextgroup=namedIntIdent skipwhite 47syn keyword namedKeyword server nextgroup=namedIdentifier skipwhite 48syn keyword namedKeyword controls nextgroup=namedSection skipwhite 49syn keyword namedKeyword trusted-keys nextgroup=namedIntSection skipwhite 50syn keyword namedKeyword logging nextgroup=namedLogSection skipwhite 51syn keyword namedKeyword options nextgroup=namedOptSection skipwhite 52syn keyword namedKeyword zone nextgroup=namedZoneString skipwhite 53 54" --- Identifier: name of following { ... } Section 55syn match namedIdentifier contained /\k\+/ nextgroup=namedSection skipwhite 56" --- IntIdent: name of following IntSection 57syn match namedIntIdent contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite 58 59" --- Section: { ... } clause 60syn region namedSection contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword 61 62" --- IntSection: section that does not contain other sections 63syn region namedIntSection contained start=+{+ end=+}+ contains=namedIntKeyword,namedError 64 65" --- IntKeyword: keywords contained within `{ ... }' sections only 66" + these keywords are contained within `key' and `acl' sections 67syn keyword namedIntKeyword contained key algorithm 68syn keyword namedIntKeyword contained secret nextgroup=namedString skipwhite 69 70" + these keywords are contained within `server' section only 71syn keyword namedIntKeyword contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite 72syn keyword namedIntKeyword contained transfers nextgroup=namedNumber,namedNotNumber skipwhite 73syn keyword namedIntKeyword contained transfer-format 74syn keyword namedIntKeyword contained keys nextgroup=namedIntSection skipwhite 75 76" + these keywords are contained within `controls' section only 77syn keyword namedIntKeyword contained inet nextgroup=namedIPaddr,namedIPerror skipwhite 78syn keyword namedIntKeyword contained unix nextgroup=namedString skipwhite 79syn keyword namedIntKeyword contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite 80syn keyword namedIntKeyword contained allow nextgroup=namedIntSection skipwhite 81 82" --- options 83syn region namedOptSection contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError 84 85syn keyword namedOption contained version directory 86\ nextgroup=namedString skipwhite 87syn keyword namedOption contained named-xfer dump-file pid-file 88\ nextgroup=namedString skipwhite 89syn keyword namedOption contained mem-statistics-file statistics-file 90\ nextgroup=namedString skipwhite 91syn keyword namedOption contained auth-nxdomain deallocate-on-exit 92\ nextgroup=namedBool,namedNotBool skipwhite 93syn keyword namedOption contained dialup fake-iquery fetch-glue 94\ nextgroup=namedBool,namedNotBool skipwhite 95syn keyword namedOption contained has-old-clients host-statistics 96\ nextgroup=namedBool,namedNotBool skipwhite 97syn keyword namedOption contained maintain-ixfr-base multiple-cnames 98\ nextgroup=namedBool,namedNotBool skipwhite 99syn keyword namedOption contained notify recursion rfc2308-type1 100\ nextgroup=namedBool,namedNotBool skipwhite 101syn keyword namedOption contained use-id-pool treat-cr-as-space 102\ nextgroup=namedBool,namedNotBool skipwhite 103syn keyword namedOption contained also-notify forwarders 104\ nextgroup=namedIntSection skipwhite 105syn keyword namedOption contained forward check-names 106syn keyword namedOption contained allow-query allow-transfer allow-recursion nextgroup=namedAML skipwhite 107syn keyword namedOption contained blackhole listen-on 108\ nextgroup=namedIntSection skipwhite 109syn keyword namedOption contained lame-ttl max-transfer-time-in 110\ nextgroup=namedNumber,namedNotNumber skipwhite 111syn keyword namedOption contained max-ncache-ttl min-roots 112\ nextgroup=namedNumber,namedNotNumber skipwhite 113syn keyword namedOption contained serial-queries transfers-in 114\ nextgroup=namedNumber,namedNotNumber skipwhite 115syn keyword namedOption contained transfers-out transfers-per-ns 116syn keyword namedOption contained transfer-format 117syn keyword namedOption contained transfer-source 118\ nextgroup=namedIPaddr,namedIPerror skipwhite 119syn keyword namedOption contained max-ixfr-log-size 120\ nextgroup=namedNumber,namedNotNumber skipwhite 121syn keyword namedOption contained coresize datasize files stacksize 122syn keyword namedOption contained cleaning-interval interface-interval statistics-interval heartbeat-interval 123\ nextgroup=namedNumber,namedNotNumber skipwhite 124syn keyword namedOption contained topology sortlist rrset-order 125\ nextgroup=namedIntSection skipwhite 126 127syn match namedOption contained /\<query-source\s\+.*;/he=s+12 contains=namedQSKeywords 128syn keyword namedQSKeywords contained address port 129syn match namedCNOption contained /\<check-names\s\+.*;/he=s+11 contains=namedCNKeywords 130syn keyword namedCNKeywords contained fail warn ignore master slave response 131 132" --- logging facilities 133syn region namedLogSection contained start=+{+ end=+};+ contains=namedLogOption 134syn keyword namedLogOption contained channel nextgroup=namedIntIdent skipwhite 135syn keyword namedLogOption contained category nextgroup=namedIntIdent skipwhite 136syn keyword namedIntKeyword contained syslog null versions size severity 137syn keyword namedIntKeyword contained file nextgroup=namedString skipwhite 138syn keyword namedIntKeyword contained print-category print-severity print-time nextgroup=namedBool,namedNotBool skipwhite 139 140" --- zone section 141syn region namedZoneString contained oneline start=+"+ end=+"+ skipwhite 142\ contains=namedDomain,namedIllegalDom 143\ nextgroup=namedZoneClass,namedZoneSection 144syn keyword namedZoneClass contained in hs hesiod chaos 145\ IN HS HESIOD CHAOS 146\ nextgroup=namedZoneSection skipwhite 147 148syn region namedZoneSection contained start=+{+ end=+};+ contains=namedZoneOpt,namedCNOption,namedComment,namedMasters,namedParenError 149syn keyword namedZoneOpt contained file ixfr-base 150\ nextgroup=namedString skipwhite 151syn keyword namedZoneOpt contained notify dialup 152\ nextgroup=namedBool,namedNotBool skipwhite 153syn keyword namedZoneOpt contained pubkey forward 154syn keyword namedZoneOpt contained max-transfer-time-in 155\ nextgroup=namedNumber,namedNotNumber skipwhite 156syn keyword namedZoneOpt contained type nextgroup=namedZoneType skipwhite 157syn keyword namedZoneType contained master slave stub forward hint 158 159syn keyword namedZoneOpt contained masters forwarders 160\ nextgroup=namedIPlist skipwhite 161syn region namedIPlist contained start=+{+ end=+};+ contains=namedIPaddr,namedIPerror,namedParenError,namedComment 162syn match namedZoneOpt contained "\<allow-\(update\|query\|transfer\)" 163\ nextgroup=namedAML skipwhite 164 165" --- boolean parameter 166syn match namedNotBool contained "[^ ;]\+" 167syn keyword namedBool contained yes no true false 1 0 168 169" --- number parameter 170syn match namedNotNumber contained "[^ 0-9;]\+" 171syn match namedNumber contained "\d\+" 172 173" --- address match list 174syn region namedAML contained start=+{+ end=+};+ contains=namedParenError,namedComment 175 176" --- IPs & Domains 177syn match namedIPaddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{3};/he=e-1 178syn match namedDomain contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/ nextgroup=namedSpareDot 179syn match namedDomain contained /"\."/ms=s+1,me=e-1 180syn match namedSpareDot contained /\./ 181 182" --- syntax errors 183syn match namedIllegalDom contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1 184syn match namedIPerror contained /\<\S*[^0-9.[:space:];]\S*/ 185syn match namedEParenError contained +{+ 186syn match namedParenError +}\([^;]\|$\)+ 187 188" Define the default highlighting. 189" For version 5.7 and earlier: only when not done already 190" For version 5.8 and later: only when an item doesn't have highlighting yet 191if version >= 508 || !exists("did_named_syn_inits") 192 if version < 508 193 let did_named_syn_inits = 1 194 command -nargs=+ HiLink hi link <args> 195 else 196 command -nargs=+ HiLink hi def link <args> 197 endif 198 199 HiLink namedComment Comment 200 HiLink namedInclude Include 201 HiLink namedKeyword Keyword 202 HiLink namedIntKeyword Keyword 203 HiLink namedIdentifier Identifier 204 HiLink namedIntIdent Identifier 205 206 HiLink namedString String 207 HiLink namedBool Type 208 HiLink namedNotBool Error 209 HiLink namedNumber Number 210 HiLink namedNotNumber Error 211 212 HiLink namedOption namedKeyword 213 HiLink namedLogOption namedKeyword 214 HiLink namedCNOption namedKeyword 215 HiLink namedQSKeywords Type 216 HiLink namedCNKeywords Type 217 HiLink namedLogCategory Type 218 HiLink namedDomain Identifier 219 HiLink namedZoneOpt namedKeyword 220 HiLink namedZoneType Type 221 HiLink namedParenError Error 222 HiLink namedEParenError Error 223 HiLink namedIllegalDom Error 224 HiLink namedIPerror Error 225 HiLink namedSpareDot Error 226 HiLink namedError Error 227 228 delcommand HiLink 229endif 230 231let &cpo = s:save_cpo 232unlet s:save_cpo 233 234let b:current_syntax = "named" 235 236" vim: ts=17 237