1071d4279SBram Moolenaar" Vim syntax file 29964e468SBram Moolenaar" Language: BIND configuration file 39964e468SBram Moolenaar" Maintainer: Nick Hibma <[email protected]> 4*2e693a88SBram Moolenaar" Last Change: 2019 Oct 08 59964e468SBram Moolenaar" Filenames: named.conf, rndc.conf 69964e468SBram Moolenaar" Location: http://www.van-laarhoven.org/vim/syntax/named.vim 7071d4279SBram Moolenaar" 89964e468SBram Moolenaar" Previously maintained by glory hump <[email protected]> and updated by Marcin 99964e468SBram Moolenaar" Dalecki. 109964e468SBram Moolenaar" 119964e468SBram Moolenaar" This file could do with a lot of improvements, so comments are welcome. 129964e468SBram Moolenaar" Please submit the named.conf (segment) with any comments. 139964e468SBram Moolenaar" 1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1589bcfda6SBram Moolenaarif exists("b:current_syntax") 16071d4279SBram Moolenaar finish 17071d4279SBram Moolenaarendif 18071d4279SBram Moolenaar 19071d4279SBram Moolenaarsyn case match 20071d4279SBram Moolenaar 21071d4279SBram Moolenaarsetlocal iskeyword=.,-,48-58,A-Z,a-z,_ 22071d4279SBram Moolenaar 239964e468SBram Moolenaarsyn sync match namedSync grouphere NONE "^(zone|controls|acl|key)" 249964e468SBram Moolenaar 25071d4279SBram Moolenaarlet s:save_cpo = &cpo 26071d4279SBram Moolenaarset cpo-=C 27071d4279SBram Moolenaar 28071d4279SBram Moolenaar" BIND configuration file 29071d4279SBram Moolenaar 30071d4279SBram Moolenaarsyn match namedComment "//.*" 31dfccaf0fSBram Moolenaarsyn match namedComment "#.*" 32071d4279SBram Moolenaarsyn region namedComment start="/\*" end="\*/" 33071d4279SBram Moolenaarsyn region namedString start=/"/ end=/"/ contained 34dfccaf0fSBram Moolenaar" --- omitted trailing semicolon 35dfccaf0fSBram Moolenaarsyn match namedError /[^;{#]$/ 36071d4279SBram Moolenaar 37071d4279SBram Moolenaar" --- top-level keywords 38071d4279SBram Moolenaar 39071d4279SBram Moolenaarsyn keyword namedInclude include nextgroup=namedString skipwhite 40071d4279SBram Moolenaarsyn keyword namedKeyword acl key nextgroup=namedIntIdent skipwhite 41071d4279SBram Moolenaarsyn keyword namedKeyword server nextgroup=namedIdentifier skipwhite 42071d4279SBram Moolenaarsyn keyword namedKeyword controls nextgroup=namedSection skipwhite 43071d4279SBram Moolenaarsyn keyword namedKeyword trusted-keys nextgroup=namedIntSection skipwhite 44071d4279SBram Moolenaarsyn keyword namedKeyword logging nextgroup=namedLogSection skipwhite 45071d4279SBram Moolenaarsyn keyword namedKeyword options nextgroup=namedOptSection skipwhite 46071d4279SBram Moolenaarsyn keyword namedKeyword zone nextgroup=namedZoneString skipwhite 47071d4279SBram Moolenaar 48071d4279SBram Moolenaar" --- Identifier: name of following { ... } Section 49071d4279SBram Moolenaarsyn match namedIdentifier contained /\k\+/ nextgroup=namedSection skipwhite 50071d4279SBram Moolenaar" --- IntIdent: name of following IntSection 51071d4279SBram Moolenaarsyn match namedIntIdent contained /"\=\k\+"\=/ nextgroup=namedIntSection skipwhite 52071d4279SBram Moolenaar 53071d4279SBram Moolenaar" --- Section: { ... } clause 54071d4279SBram Moolenaarsyn region namedSection contained start=+{+ end=+};+ contains=namedSection,namedIntKeyword 55071d4279SBram Moolenaar 56071d4279SBram Moolenaar" --- IntSection: section that does not contain other sections 57*2e693a88SBram Moolenaarsyn region namedIntSection contained start=+{+ end=+}+ contains=namedIntKeyword,namedError,namedComment 58071d4279SBram Moolenaar 59071d4279SBram Moolenaar" --- IntKeyword: keywords contained within `{ ... }' sections only 60071d4279SBram Moolenaar" + these keywords are contained within `key' and `acl' sections 61071d4279SBram Moolenaarsyn keyword namedIntKeyword contained key algorithm 62071d4279SBram Moolenaarsyn keyword namedIntKeyword contained secret nextgroup=namedString skipwhite 63071d4279SBram Moolenaar 64071d4279SBram Moolenaar" + these keywords are contained within `server' section only 65071d4279SBram Moolenaarsyn keyword namedIntKeyword contained bogus support-ixfr nextgroup=namedBool,namedNotBool skipwhite 66071d4279SBram Moolenaarsyn keyword namedIntKeyword contained transfers nextgroup=namedNumber,namedNotNumber skipwhite 67071d4279SBram Moolenaarsyn keyword namedIntKeyword contained transfer-format 68071d4279SBram Moolenaarsyn keyword namedIntKeyword contained keys nextgroup=namedIntSection skipwhite 69071d4279SBram Moolenaar 70071d4279SBram Moolenaar" + these keywords are contained within `controls' section only 71071d4279SBram Moolenaarsyn keyword namedIntKeyword contained inet nextgroup=namedIPaddr,namedIPerror skipwhite 72071d4279SBram Moolenaarsyn keyword namedIntKeyword contained unix nextgroup=namedString skipwhite 73071d4279SBram Moolenaarsyn keyword namedIntKeyword contained port perm owner group nextgroup=namedNumber,namedNotNumber skipwhite 74071d4279SBram Moolenaarsyn keyword namedIntKeyword contained allow nextgroup=namedIntSection skipwhite 75071d4279SBram Moolenaar 769964e468SBram Moolenaar" + these keywords are contained within `update-policy' section only 779964e468SBram Moolenaarsyn keyword namedIntKeyword contained grant nextgroup=namedString skipwhite 789964e468SBram Moolenaarsyn keyword namedIntKeyword contained name self subdomain wildcard nextgroup=namedString skipwhite 799964e468SBram Moolenaarsyn keyword namedIntKeyword TXT A PTR NS SOA A6 CNAME MX ANY skipwhite 809964e468SBram Moolenaar 81071d4279SBram Moolenaar" --- options 82071d4279SBram Moolenaarsyn region namedOptSection contained start=+{+ end=+};+ contains=namedOption,namedCNOption,namedComment,namedParenError 83071d4279SBram Moolenaar 84071d4279SBram Moolenaarsyn keyword namedOption contained version directory 85071d4279SBram Moolenaar\ nextgroup=namedString skipwhite 86071d4279SBram Moolenaarsyn keyword namedOption contained named-xfer dump-file pid-file 87071d4279SBram Moolenaar\ nextgroup=namedString skipwhite 88071d4279SBram Moolenaarsyn keyword namedOption contained mem-statistics-file statistics-file 89071d4279SBram Moolenaar\ nextgroup=namedString skipwhite 90071d4279SBram Moolenaarsyn keyword namedOption contained auth-nxdomain deallocate-on-exit 91071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 92071d4279SBram Moolenaarsyn keyword namedOption contained dialup fake-iquery fetch-glue 93071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 94071d4279SBram Moolenaarsyn keyword namedOption contained has-old-clients host-statistics 95071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 96071d4279SBram Moolenaarsyn keyword namedOption contained maintain-ixfr-base multiple-cnames 97071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 98071d4279SBram Moolenaarsyn keyword namedOption contained notify recursion rfc2308-type1 99071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 100071d4279SBram Moolenaarsyn keyword namedOption contained use-id-pool treat-cr-as-space 101071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 102071d4279SBram Moolenaarsyn keyword namedOption contained also-notify forwarders 1039964e468SBram Moolenaar\ nextgroup=namedIPlist skipwhite 104071d4279SBram Moolenaarsyn keyword namedOption contained forward check-names 1059964e468SBram Moolenaarsyn keyword namedOption contained allow-query allow-transfer allow-recursion 1069964e468SBram Moolenaar\ nextgroup=namedAML skipwhite 107071d4279SBram Moolenaarsyn keyword namedOption contained blackhole listen-on 108071d4279SBram Moolenaar\ nextgroup=namedIntSection skipwhite 109071d4279SBram Moolenaarsyn keyword namedOption contained lame-ttl max-transfer-time-in 110071d4279SBram Moolenaar\ nextgroup=namedNumber,namedNotNumber skipwhite 111071d4279SBram Moolenaarsyn keyword namedOption contained max-ncache-ttl min-roots 112071d4279SBram Moolenaar\ nextgroup=namedNumber,namedNotNumber skipwhite 113071d4279SBram Moolenaarsyn keyword namedOption contained serial-queries transfers-in 114071d4279SBram Moolenaar\ nextgroup=namedNumber,namedNotNumber skipwhite 115071d4279SBram Moolenaarsyn keyword namedOption contained transfers-out transfers-per-ns 116071d4279SBram Moolenaarsyn keyword namedOption contained transfer-format 117071d4279SBram Moolenaarsyn keyword namedOption contained transfer-source 118071d4279SBram Moolenaar\ nextgroup=namedIPaddr,namedIPerror skipwhite 119071d4279SBram Moolenaarsyn keyword namedOption contained max-ixfr-log-size 120071d4279SBram Moolenaar\ nextgroup=namedNumber,namedNotNumber skipwhite 121071d4279SBram Moolenaarsyn keyword namedOption contained coresize datasize files stacksize 122071d4279SBram Moolenaarsyn keyword namedOption contained cleaning-interval interface-interval statistics-interval heartbeat-interval 123071d4279SBram Moolenaar\ nextgroup=namedNumber,namedNotNumber skipwhite 124071d4279SBram Moolenaarsyn keyword namedOption contained topology sortlist rrset-order 125071d4279SBram Moolenaar\ nextgroup=namedIntSection skipwhite 126071d4279SBram Moolenaar 127071d4279SBram Moolenaarsyn match namedOption contained /\<query-source\s\+.*;/he=s+12 contains=namedQSKeywords 128071d4279SBram Moolenaarsyn keyword namedQSKeywords contained address port 129071d4279SBram Moolenaarsyn match namedCNOption contained /\<check-names\s\+.*;/he=s+11 contains=namedCNKeywords 130071d4279SBram Moolenaarsyn keyword namedCNKeywords contained fail warn ignore master slave response 131071d4279SBram Moolenaar 132071d4279SBram Moolenaar" --- logging facilities 133071d4279SBram Moolenaarsyn region namedLogSection contained start=+{+ end=+};+ contains=namedLogOption 134071d4279SBram Moolenaarsyn keyword namedLogOption contained channel nextgroup=namedIntIdent skipwhite 135071d4279SBram Moolenaarsyn keyword namedLogOption contained category nextgroup=namedIntIdent skipwhite 136071d4279SBram Moolenaarsyn keyword namedIntKeyword contained syslog null versions size severity 137071d4279SBram Moolenaarsyn keyword namedIntKeyword contained file nextgroup=namedString skipwhite 138071d4279SBram Moolenaarsyn keyword namedIntKeyword contained print-category print-severity print-time nextgroup=namedBool,namedNotBool skipwhite 139071d4279SBram Moolenaar 140071d4279SBram Moolenaar" --- zone section 141071d4279SBram Moolenaarsyn region namedZoneString contained oneline start=+"+ end=+"+ skipwhite 142071d4279SBram Moolenaar\ contains=namedDomain,namedIllegalDom 143071d4279SBram Moolenaar\ nextgroup=namedZoneClass,namedZoneSection 144071d4279SBram Moolenaarsyn keyword namedZoneClass contained in hs hesiod chaos 145071d4279SBram Moolenaar\ IN HS HESIOD CHAOS 146071d4279SBram Moolenaar\ nextgroup=namedZoneSection skipwhite 147071d4279SBram Moolenaar 148071d4279SBram Moolenaarsyn region namedZoneSection contained start=+{+ end=+};+ contains=namedZoneOpt,namedCNOption,namedComment,namedMasters,namedParenError 149071d4279SBram Moolenaarsyn keyword namedZoneOpt contained file ixfr-base 150071d4279SBram Moolenaar\ nextgroup=namedString skipwhite 151071d4279SBram Moolenaarsyn keyword namedZoneOpt contained notify dialup 152071d4279SBram Moolenaar\ nextgroup=namedBool,namedNotBool skipwhite 153071d4279SBram Moolenaarsyn keyword namedZoneOpt contained pubkey forward 154071d4279SBram Moolenaarsyn keyword namedZoneOpt contained max-transfer-time-in 155071d4279SBram Moolenaar\ nextgroup=namedNumber,namedNotNumber skipwhite 156071d4279SBram Moolenaarsyn keyword namedZoneOpt contained type nextgroup=namedZoneType skipwhite 157071d4279SBram Moolenaarsyn keyword namedZoneType contained master slave stub forward hint 158071d4279SBram Moolenaar 159071d4279SBram Moolenaarsyn keyword namedZoneOpt contained masters forwarders 160071d4279SBram Moolenaar\ nextgroup=namedIPlist skipwhite 161071d4279SBram Moolenaarsyn region namedIPlist contained start=+{+ end=+};+ contains=namedIPaddr,namedIPerror,namedParenError,namedComment 1629964e468SBram Moolenaarsyn keyword namedZoneOpt contained allow-update allow-query allow-transfer 163071d4279SBram Moolenaar\ nextgroup=namedAML skipwhite 1649964e468SBram Moolenaarsyn keyword namedZoneOpt contained update-policy 1659964e468SBram Moolenaar\ nextgroup=namedIntSection skipwhite 166071d4279SBram Moolenaar 167071d4279SBram Moolenaar" --- boolean parameter 168071d4279SBram Moolenaarsyn match namedNotBool contained "[^ ;]\+" 169071d4279SBram Moolenaarsyn keyword namedBool contained yes no true false 1 0 170071d4279SBram Moolenaar 171071d4279SBram Moolenaar" --- number parameter 172071d4279SBram Moolenaarsyn match namedNotNumber contained "[^ 0-9;]\+" 173071d4279SBram Moolenaarsyn match namedNumber contained "\d\+" 174071d4279SBram Moolenaar 175071d4279SBram Moolenaar" --- address match list 1769964e468SBram Moolenaarsyn region namedAML contained start=+{+ end=+};+ contains=namedParenError,namedComment,namedString 177071d4279SBram Moolenaar 178071d4279SBram Moolenaar" --- IPs & Domains 179071d4279SBram Moolenaarsyn match namedIPaddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{3};/he=e-1 180071d4279SBram Moolenaarsyn match namedDomain contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/ nextgroup=namedSpareDot 181071d4279SBram Moolenaarsyn match namedDomain contained /"\."/ms=s+1,me=e-1 182071d4279SBram Moolenaarsyn match namedSpareDot contained /\./ 183071d4279SBram Moolenaar 184071d4279SBram Moolenaar" --- syntax errors 185071d4279SBram Moolenaarsyn match namedIllegalDom contained /"\S*[^-A-Za-z0-9.[:space:]]\S*"/ms=s+1,me=e-1 186071d4279SBram Moolenaarsyn match namedIPerror contained /\<\S*[^0-9.[:space:];]\S*/ 187071d4279SBram Moolenaarsyn match namedEParenError contained +{+ 188071d4279SBram Moolenaarsyn match namedParenError +}\([^;]\|$\)+ 189071d4279SBram Moolenaar 190071d4279SBram Moolenaar" Define the default highlighting. 19189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 192071d4279SBram Moolenaar 193f37506f6SBram Moolenaarhi def link namedComment Comment 194f37506f6SBram Moolenaarhi def link namedInclude Include 195f37506f6SBram Moolenaarhi def link namedKeyword Keyword 196f37506f6SBram Moolenaarhi def link namedIntKeyword Keyword 197f37506f6SBram Moolenaarhi def link namedIdentifier Identifier 198f37506f6SBram Moolenaarhi def link namedIntIdent Identifier 199071d4279SBram Moolenaar 200f37506f6SBram Moolenaarhi def link namedString String 201f37506f6SBram Moolenaarhi def link namedBool Type 202f37506f6SBram Moolenaarhi def link namedNotBool Error 203f37506f6SBram Moolenaarhi def link namedNumber Number 204f37506f6SBram Moolenaarhi def link namedNotNumber Error 205071d4279SBram Moolenaar 206f37506f6SBram Moolenaarhi def link namedOption namedKeyword 207f37506f6SBram Moolenaarhi def link namedLogOption namedKeyword 208f37506f6SBram Moolenaarhi def link namedCNOption namedKeyword 209f37506f6SBram Moolenaarhi def link namedQSKeywords Type 210f37506f6SBram Moolenaarhi def link namedCNKeywords Type 211f37506f6SBram Moolenaarhi def link namedLogCategory Type 212f37506f6SBram Moolenaarhi def link namedIPaddr Number 213f37506f6SBram Moolenaarhi def link namedDomain Identifier 214f37506f6SBram Moolenaarhi def link namedZoneOpt namedKeyword 215f37506f6SBram Moolenaarhi def link namedZoneType Type 216f37506f6SBram Moolenaarhi def link namedParenError Error 217f37506f6SBram Moolenaarhi def link namedEParenError Error 218f37506f6SBram Moolenaarhi def link namedIllegalDom Error 219f37506f6SBram Moolenaarhi def link namedIPerror Error 220f37506f6SBram Moolenaarhi def link namedSpareDot Error 221f37506f6SBram Moolenaarhi def link namedError Error 222071d4279SBram Moolenaar 223071d4279SBram Moolenaar 224071d4279SBram Moolenaarlet &cpo = s:save_cpo 225071d4279SBram Moolenaarunlet s:save_cpo 226071d4279SBram Moolenaar 227071d4279SBram Moolenaarlet b:current_syntax = "named" 228071d4279SBram Moolenaar 229071d4279SBram Moolenaar" vim: ts=17 230