aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/bindzone.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-07-11 04:05:51 +0000
committerJustin M. Keyes <justinkz@gmail.com>2014-07-29 02:12:31 +0000
commita98a6996c291b3e300d27b791eded9eed333d677 (patch)
tree51d92f6cac128f938cd0aaa9a8dd0ce7a83d63a9 /runtime/syntax/bindzone.vim
parent66bc13163398786c88e20b7cdd61c66978b4d3fb (diff)
downloadrneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.gz
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.tar.bz2
rneovim-a98a6996c291b3e300d27b791eded9eed333d677.zip
re-integrate runtime/ vim-patch:0 #938
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
Diffstat (limited to 'runtime/syntax/bindzone.vim')
-rw-r--r--runtime/syntax/bindzone.vim110
1 files changed, 110 insertions, 0 deletions
diff --git a/runtime/syntax/bindzone.vim b/runtime/syntax/bindzone.vim
new file mode 100644
index 0000000000..d599a85db2
--- /dev/null
+++ b/runtime/syntax/bindzone.vim
@@ -0,0 +1,110 @@
+" Vim syntax file
+" Language: BIND zone files (RFC 1035)
+" Maintainer: Julian Mehnle <julian@mehnle.net>
+" URL: http://www.mehnle.net/source/odds+ends/vim/syntax/
+" Last Change: Thu 2011-07-16 20:42:00 UTC
+"
+" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
+" heavy modifications.
+"
+" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $
+
+" 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=zoneTTL,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 /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite
+syn keyword zoneClass contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
+syn keyword zoneRRType contained A AAAA CNAME DNAME HINFO MX NS PTR SOA SRV TXT SPF 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,zoneTTL,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