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