mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 19:25:11 -07:00
249 lines
10 KiB
VimL
249 lines
10 KiB
VimL
|
" Vim syntax file
|
||
|
" Language: BIND configuration file
|
||
|
" Maintainer: Nick Hibma <nick@van-laarhoven.org>
|
||
|
" Last change: 2007-01-30
|
||
|
" Filenames: named.conf, rndc.conf
|
||
|
" Location: http://www.van-laarhoven.org/vim/syntax/named.vim
|
||
|
"
|
||
|
" Previously maintained by glory hump <rnd@web-drive.ru> and updated by Marcin
|
||
|
" Dalecki.
|
||
|
"
|
||
|
" This file could do with a lot of improvements, so comments are welcome.
|
||
|
" Please submit the named.conf (segment) with any comments.
|
||
|
"
|
||
|
" 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
|
||
|
|
||
|
if version >= 600
|
||
|
syn sync match namedSync grouphere NONE "^(zone|controls|acl|key)"
|
||
|
endif
|
||
|
|
||
|
let s:save_cpo = &cpo
|
||
|
set cpo-=C
|
||
|
|
||
|
" BIND configuration file
|
||
|
|
||
|
syn match namedComment "//.*"
|
||
|
syn match namedComment "#.*"
|
||
|
syn region namedComment start="/\*" end="\*/"
|
||
|
syn region namedString start=/"/ end=/"/ contained
|
||
|
" --- omitted trailing semicolon
|
||
|
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
|
||
|
|
||
|
" + these keywords are contained within `update-policy' section only
|
||
|
syn keyword namedIntKeyword contained grant nextgroup=namedString skipwhite
|
||
|
syn keyword namedIntKeyword contained name self subdomain wildcard nextgroup=namedString skipwhite
|
||
|
syn keyword namedIntKeyword TXT A PTR NS SOA A6 CNAME MX ANY 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=namedIPlist 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 /\<query-source\s\+.*;/he=s+12 contains=namedQSKeywords
|
||
|
syn keyword namedQSKeywords contained address port
|
||
|
syn match namedCNOption contained /\<check-names\s\+.*;/he=s+11 contains=namedCNKeywords
|
||
|
syn keyword namedCNKeywords contained fail warn ignore master slave response
|
||
|
|
||
|
" --- logging facilities
|
||
|
syn region namedLogSection contained start=+{+ end=+};+ contains=namedLogOption
|
||
|
syn keyword namedLogOption contained channel nextgroup=namedIntIdent skipwhite
|
||
|
syn keyword namedLogOption contained category nextgroup=namedIntIdent skipwhite
|
||
|
syn keyword namedIntKeyword contained syslog null versions size severity
|
||
|
syn keyword namedIntKeyword contained file nextgroup=namedString skipwhite
|
||
|
syn keyword namedIntKeyword contained print-category print-severity print-time nextgroup=namedBool,namedNotBool skipwhite
|
||
|
|
||
|
" --- zone section
|
||
|
syn region namedZoneString contained oneline start=+"+ end=+"+ skipwhite
|
||
|
\ contains=namedDomain,namedIllegalDom
|
||
|
\ nextgroup=namedZoneClass,namedZoneSection
|
||
|
syn keyword namedZoneClass contained in hs hesiod chaos
|
||
|
\ IN HS HESIOD CHAOS
|
||
|
\ nextgroup=namedZoneSection skipwhite
|
||
|
|
||
|
syn region namedZoneSection contained start=+{+ end=+};+ contains=namedZoneOpt,namedCNOption,namedComment,namedMasters,namedParenError
|
||
|
syn keyword namedZoneOpt contained file ixfr-base
|
||
|
\ nextgroup=namedString skipwhite
|
||
|
syn keyword namedZoneOpt contained notify dialup
|
||
|
\ nextgroup=namedBool,namedNotBool skipwhite
|
||
|
syn keyword namedZoneOpt contained pubkey forward
|
||
|
syn keyword namedZoneOpt contained max-transfer-time-in
|
||
|
\ nextgroup=namedNumber,namedNotNumber skipwhite
|
||
|
syn keyword namedZoneOpt contained type nextgroup=namedZoneType skipwhite
|
||
|
syn keyword namedZoneType contained master slave stub forward hint
|
||
|
|
||
|
syn keyword namedZoneOpt contained masters forwarders
|
||
|
\ nextgroup=namedIPlist skipwhite
|
||
|
syn region namedIPlist contained start=+{+ end=+};+ contains=namedIPaddr,namedIPerror,namedParenError,namedComment
|
||
|
syn keyword namedZoneOpt contained allow-update allow-query allow-transfer
|
||
|
\ nextgroup=namedAML skipwhite
|
||
|
syn keyword namedZoneOpt contained update-policy
|
||
|
\ nextgroup=namedIntSection skipwhite
|
||
|
|
||
|
" --- boolean parameter
|
||
|
syn match namedNotBool contained "[^ ;]\+"
|
||
|
syn keyword namedBool contained yes no true false 1 0
|
||
|
|
||
|
" --- number parameter
|
||
|
syn match namedNotNumber contained "[^ 0-9;]\+"
|
||
|
syn match namedNumber contained "\d\+"
|
||
|
|
||
|
" --- address match list
|
||
|
syn region namedAML contained start=+{+ end=+};+ contains=namedParenError,namedComment,namedString
|
||
|
|
||
|
" --- IPs & Domains
|
||
|
syn match namedIPaddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{3};/he=e-1
|
||
|
syn match namedDomain contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/ 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 <args>
|
||
|
else
|
||
|
command -nargs=+ HiLink hi def link <args>
|
||
|
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 namedIPaddr Number
|
||
|
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
|