Skip to content

Commit

Permalink
Add vim73 files.
Browse files Browse the repository at this point in the history
  • Loading branch information
mat813 committed Dec 6, 2012
0 parents commit 25569d5
Show file tree
Hide file tree
Showing 6 changed files with 379 additions and 0 deletions.
5 changes: 5 additions & 0 deletions README.md
@@ -0,0 +1,5 @@
vim-bind
========

This project aims to replace the stock bind syntax hilighting, updating it to
recognize the RR that came out in the last decade.
10 changes: 10 additions & 0 deletions ftdetect/bindzone.vim
@@ -0,0 +1,10 @@
au BufNewFile,BufRead named.root setf bindzone
au BufNewFile,BufRead */named/*,*/bind/*,*.db call s:BindzoneCheck('')

func! s:BindzoneCheck(default)
if getline(1).getline(2).getline(3).getline(4) =~ '^; <<>> DiG [0-9.]\+ <<>>\|BIND.*named\|$ORIGIN\|$TTL\|IN\s\+SOA'
setf bindzone
elseif a:default != ''
exe 'setf ' . a:default
endif
endfunc
1 change: 1 addition & 0 deletions ftdetect/named.vim
@@ -0,0 +1 @@
au BufNewFile,BufRead named.conf,rndc.conf setf named
110 changes: 110 additions & 0 deletions syntax/bindzone.vim
@@ -0,0 +1,110 @@
" Vim syntax file
" Language: BIND zone files (RFC1035)
" Maintainer: Julian Mehnle <julian@mehnle.net>
" URL: http://www.mehnle.net/source/odds+ends/vim/syntax/
" Last Change: Thu 2006-04-20 12:30:45 UTC
"
" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
" heavy modifications.
"
" $Id: bindzone.vim,v 1.2 2006/04/20 22:06:21 vimboss Exp $

" 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

" Directives
syn region zoneRRecord start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown

syn match zoneDirective /^\$ORIGIN\s\+/ nextgroup=zoneOrigin,zoneUnknown
syn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneNumber,zoneUnknown
syn match zoneDirective /^\$INCLUDE\s\+/ nextgroup=zoneText,zoneUnknown
syn match zoneDirective /^\$GENERATE\s/

syn match zoneUnknown contained /\S\+/

syn match zoneOwnerName contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite
syn match zoneOrigin contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
syn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/

syn match zoneSpecial contained /^[@*.]\s/
syn match zoneTTL contained /\<\d[0-9HhWwDd]*\>/ nextgroup=zoneClass,zoneRRType skipwhite
syn keyword zoneClass contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
syn keyword zoneRRType contained A AAAA CNAME HINFO MX NS PTR SOA SRV TXT nextgroup=zoneRData skipwhite
syn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown

syn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/

" Plain IPv6 address IPv6-embedded-IPv4 address
" 1111:2:3:4:5:6:7:8 1111:2:3:4:5:6:127.0.0.1
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" ::[...:]8 ::[...:]127.0.0.1
syn match zoneIP6Addr contained /\s\@<=::\(\(\x\{1,4}:\)\{,6}\x\{1,4}\|\(\x\{1,4}:\)\{,5}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" 1111::[...:]8 1111::[...:]127.0.0.1
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1}:\(\(\x\{1,4}:\)\{,5}\x\{1,4}\|\(\x\{1,4}:\)\{,4}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" 1111:2::[...:]8 1111:2::[...:]127.0.0.1
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{2}:\(\(\x\{1,4}:\)\{,4}\x\{1,4}\|\(\x\{1,4}:\)\{,3}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" 1111:2:3::[...:]8 1111:2:3::[...:]127.0.0.1
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{3}:\(\(\x\{1,4}:\)\{,3}\x\{1,4}\|\(\x\{1,4}:\)\{,2}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" 1111:2:3:4::[...:]8 1111:2:3:4::[...:]127.0.0.1
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{4}:\(\(\x\{1,4}:\)\{,2}\x\{1,4}\|\(\x\{1,4}:\)\{,1}\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" 1111:2:3:4:5::[...:]8 1111:2:3:4:5::127.0.0.1
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{5}:\(\(\x\{1,4}:\)\{,1}\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
" 1111:2:3:4:5:6::8 -
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
" 1111[:...]:: -
syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/

syn match zoneText contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/
syn match zoneNumber contained /\<[0-9]\+\(\s\|;\|$\)\@=/
syn match zoneSerial contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/

syn match zoneErrParen /)/
syn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneNumber,zoneComment
syn match zoneComment /;.*/

" 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_bind_zone_syn_inits")
if version < 508
let did_bind_zone_syn_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif

HiLink zoneDirective Macro

HiLink zoneUnknown Error

HiLink zoneOrigin Statement
HiLink zoneOwnerName Statement
HiLink zoneDomain Identifier

HiLink zoneSpecial Special
HiLink zoneTTL Constant
HiLink zoneClass Include
HiLink zoneRRType Type

HiLink zoneIPAddr Number
HiLink zoneIP6Addr Number
HiLink zoneText String
HiLink zoneNumber Number
HiLink zoneSerial Special

HiLink zoneErrParen Error
HiLink zoneComment Comment

delcommand HiLink
endif

let b:current_syntax = "bindzone"

" vim:sts=2 sw=2
5 changes: 5 additions & 0 deletions syntax/dns.vim
@@ -0,0 +1,5 @@
" Vim syntax file
" Language: DNS/BIND Zone File

" This has been replaced by the bindzone syntax
:runtime! syntax/bindzone.vim
248 changes: 248 additions & 0 deletions syntax/named.vim
@@ -0,0 +1,248 @@
" 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

0 comments on commit 25569d5

Please sign in to comment.