annotate runtime/syntax/bindzone.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children e170173ecb68
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
1 " Vim syntax file
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
2 " Language: BIND zone files (RFC1035)
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
3 " Maintainer: Julian Mehnle <julian@mehnle.net>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
4 " URL: http://www.mehnle.net/source/odds+ends/vim/syntax/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
5 " Last Change: Thu 2006-04-20 12:30:45 UTC
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
6 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
7 " Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
8 " heavy modifications.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
9 "
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
10 " $Id$
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
11
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
12 " For version 5.x: Clear all syntax items
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
13 " For version 6.x: Quit when a syntax file was already loaded
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
14 if version < 600
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
15 syntax clear
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
16 elseif exists("b:current_syntax")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
17 finish
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
18 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
19
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
20 syn case match
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
21
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
22 " Directives
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
23 syn region zoneRRecord start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
24
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
25 syn match zoneDirective /^\$ORIGIN\s\+/ nextgroup=zoneOrigin,zoneUnknown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
26 syn match zoneDirective /^\$TTL\s\+/ nextgroup=zoneNumber,zoneUnknown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
27 syn match zoneDirective /^\$INCLUDE\s\+/ nextgroup=zoneText,zoneUnknown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
28 syn match zoneDirective /^\$GENERATE\s/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
29
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
30 syn match zoneUnknown contained /\S\+/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
31
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
32 syn match zoneOwnerName contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
33 syn match zoneOrigin contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
34 syn match zoneDomain contained /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
35
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
36 syn match zoneSpecial contained /^[@*.]\s/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
37 syn match zoneTTL contained /\<\d[0-9HhWwDd]*\>/ nextgroup=zoneClass,zoneRRType skipwhite
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
38 syn keyword zoneClass contained IN CHAOS nextgroup=zoneRRType,zoneTTL skipwhite
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
39 syn keyword zoneRRType contained A AAAA CNAME HINFO MX NS PTR SOA SRV TXT nextgroup=zoneRData skipwhite
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
40 syn match zoneRData contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
41
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
42 syn match zoneIPAddr contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
43
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
44 " Plain IPv6 address IPv6-embedded-IPv4 address
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
45 " 1111:2:3:4:5:6:7:8 1111:2:3:4:5:6:127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
46 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
47 " ::[...:]8 ::[...:]127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
48 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
49 " 1111::[...:]8 1111::[...:]127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
50 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
51 " 1111:2::[...:]8 1111:2::[...:]127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
52 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
53 " 1111:2:3::[...:]8 1111:2:3::[...:]127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
54 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
55 " 1111:2:3:4::[...:]8 1111:2:3:4::[...:]127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
56 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
57 " 1111:2:3:4:5::[...:]8 1111:2:3:4:5::127.0.0.1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
58 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}\)\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
59 " 1111:2:3:4:5:6::8 -
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
60 syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
61 " 1111[:...]:: -
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
62 syn match zoneIP6Addr contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
63
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
64 syn match zoneText contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
65 syn match zoneNumber contained /\<[0-9]\+\(\s\|;\|$\)\@=/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
66 syn match zoneSerial contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
67
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
68 syn match zoneErrParen /)/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
69 syn region zoneParen contained start="(" end=")" contains=zoneSerial,zoneNumber,zoneComment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
70 syn match zoneComment /;.*/
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
71
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
72 " Define the default highlighting.
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
73 " For version 5.7 and earlier: only when not done already
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
74 " For version 5.8 and later: only when an item doesn't have highlighting yet
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
75 if version >= 508 || !exists("did_bind_zone_syn_inits")
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
76 if version < 508
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
77 let did_bind_zone_syn_inits = 1
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
78 command -nargs=+ HiLink hi link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
79 else
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
80 command -nargs=+ HiLink hi def link <args>
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
81 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
82
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
83 HiLink zoneDirective Macro
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
84
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
85 HiLink zoneUnknown Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
86
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
87 HiLink zoneOrigin Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
88 HiLink zoneOwnerName Statement
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
89 HiLink zoneDomain Identifier
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
90
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
91 HiLink zoneSpecial Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
92 HiLink zoneTTL Constant
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
93 HiLink zoneClass Include
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
94 HiLink zoneRRType Type
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
95
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
96 HiLink zoneIPAddr Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
97 HiLink zoneIP6Addr Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
98 HiLink zoneText String
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
99 HiLink zoneNumber Number
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
100 HiLink zoneSerial Special
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
101
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
102 HiLink zoneErrParen Error
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
103 HiLink zoneComment Comment
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
104
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
105 delcommand HiLink
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
106 endif
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
107
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
108 let b:current_syntax = "bindzone"
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
109
76efa0be13f1 Initial revision
atsuki
parents:
diff changeset
110 " vim:sts=2 sw=2