xref: /vim-8.2.3635/runtime/syntax/bindzone.vim (revision 5be4ceec)
1071d4279SBram Moolenaar" Vim syntax file
2fc1421ebSBram Moolenaar" Language:     BIND zone files (RFC 1035)
3fc1421ebSBram Moolenaar" Maintainer:   Julian Mehnle <[email protected]>
4fc1421ebSBram Moolenaar" URL:          http://www.mehnle.net/source/odds+ends/vim/syntax/
59729301aSBram Moolenaar" Last Change:  Thu 2011-07-16 20:42:00 UTC
6fc1421ebSBram Moolenaar"
7fc1421ebSBram Moolenaar" Based on an earlier version by Вячеслав Горбанев (Slava Gorbanev), with
8fc1421ebSBram Moolenaar" heavy modifications.
9fc1421ebSBram Moolenaar"
109729301aSBram Moolenaar" $Id: bindzone.vim 12 2011-07-16 21:09:57Z julian $
11071d4279SBram Moolenaar
1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1389bcfda6SBram Moolenaarif exists("b:current_syntax")
14071d4279SBram Moolenaar  finish
15071d4279SBram Moolenaarendif
16071d4279SBram Moolenaar
17071d4279SBram Moolenaarsyn case match
18071d4279SBram Moolenaar
19fc1421ebSBram Moolenaar" Directives
20fc1421ebSBram Moolenaarsyn region      zoneRRecord     start=/^/ end=/$/ contains=zoneOwnerName,zoneSpecial,zoneTTL,zoneClass,zoneRRType,zoneComment,zoneUnknown
21071d4279SBram Moolenaar
22fc1421ebSBram Moolenaarsyn match       zoneDirective   /^\$ORIGIN\s\+/   nextgroup=zoneOrigin,zoneUnknown
239729301aSBram Moolenaarsyn match       zoneDirective   /^\$TTL\s\+/      nextgroup=zoneTTL,zoneUnknown
24fc1421ebSBram Moolenaarsyn match       zoneDirective   /^\$INCLUDE\s\+/  nextgroup=zoneText,zoneUnknown
25fc1421ebSBram Moolenaarsyn match       zoneDirective   /^\$GENERATE\s/
26071d4279SBram Moolenaar
27fc1421ebSBram Moolenaarsyn match       zoneUnknown     contained /\S\+/
28071d4279SBram Moolenaar
29fc1421ebSBram Moolenaarsyn match       zoneOwnerName   contained /^[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\)\@=/ nextgroup=zoneTTL,zoneClass,zoneRRType skipwhite
30fc1421ebSBram Moolenaarsyn match       zoneOrigin      contained  /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
31fc1421ebSBram Moolenaarsyn match       zoneDomain      contained  /[^[:space:]!"#$%&'()*+,\/:;<=>?@[\]\^`{|}~]\+\(\s\|;\|$\)\@=/
32071d4279SBram Moolenaar
33fc1421ebSBram Moolenaarsyn match       zoneSpecial     contained /^[@*.]\s/
349729301aSBram Moolenaarsyn match       zoneTTL         contained /\s\@<=\d[0-9WwDdHhMmSs]*\(\s\|$\)\@=/ nextgroup=zoneClass,zoneRRType skipwhite
35*5be4ceecSBram Moolenaarsyn keyword     zoneClass       contained IN CHAOS CH HS HESIOD nextgroup=zoneRRType,zoneTTL skipwhite
36*5be4ceecSBram Moolenaarsyn keyword     zoneRRType      contained A AAAA CERT CNAME DNAME DNSKEY DS HINFO LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RP RRSIG SSHFP SOA SPF SRV TLSA TXT nextgroup=zoneRData skipwhite
37fc1421ebSBram Moolenaarsyn match       zoneRData       contained /[^;]*/ contains=zoneDomain,zoneIPAddr,zoneIP6Addr,zoneText,zoneNumber,zoneParen,zoneUnknown
38071d4279SBram Moolenaar
39fc1421ebSBram Moolenaarsyn match       zoneIPAddr      contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
40071d4279SBram Moolenaar
41fc1421ebSBram Moolenaar"   Plain IPv6 address          IPv6-embedded-IPv4 address
42fc1421ebSBram Moolenaar"   1111:2:3:4:5:6:7:8          1111:2:3:4:5:6:127.0.0.1
43fc1421ebSBram Moolenaarsyn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{6}\(\x\{1,4}:\x\{1,4}\|\([0-2]\?\d\{1,2}\.\)\{3}[0-2]\?\d\{1,2}\)\>/
44fc1421ebSBram Moolenaar"   ::[...:]8                   ::[...:]127.0.0.1
45fc1421ebSBram Moolenaarsyn 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}\)\>/
46fc1421ebSBram Moolenaar"   1111::[...:]8               1111::[...:]127.0.0.1
47fc1421ebSBram Moolenaarsyn 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}\)\>/
48fc1421ebSBram Moolenaar"   1111:2::[...:]8             1111:2::[...:]127.0.0.1
49fc1421ebSBram Moolenaarsyn 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}\)\>/
50fc1421ebSBram Moolenaar"   1111:2:3::[...:]8           1111:2:3::[...:]127.0.0.1
51fc1421ebSBram Moolenaarsyn 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}\)\>/
52fc1421ebSBram Moolenaar"   1111:2:3:4::[...:]8         1111:2:3:4::[...:]127.0.0.1
53fc1421ebSBram Moolenaarsyn 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}\)\>/
54fc1421ebSBram Moolenaar"   1111:2:3:4:5::[...:]8       1111:2:3:4:5::127.0.0.1
55fc1421ebSBram Moolenaarsyn 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}\)\>/
56fc1421ebSBram Moolenaar"   1111:2:3:4:5:6::8           -
57fc1421ebSBram Moolenaarsyn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{6}:\x\{1,4}\>/
58fc1421ebSBram Moolenaar"   1111[:...]::                -
59fc1421ebSBram Moolenaarsyn match       zoneIP6Addr     contained /\<\(\x\{1,4}:\)\{1,7}:\(\s\|;\|$\)\@=/
60071d4279SBram Moolenaar
61fc1421ebSBram Moolenaarsyn match       zoneText        contained /"\([^"\\]\|\\.\)*"\(\s\|;\|$\)\@=/
62fc1421ebSBram Moolenaarsyn match       zoneNumber      contained /\<[0-9]\+\(\s\|;\|$\)\@=/
63fc1421ebSBram Moolenaarsyn match       zoneSerial      contained /\<[0-9]\{9,10}\(\s\|;\|$\)\@=/
64071d4279SBram Moolenaar
65071d4279SBram Moolenaarsyn match       zoneErrParen    /)/
669729301aSBram Moolenaarsyn region      zoneParen       contained start="(" end=")" contains=zoneSerial,zoneTTL,zoneNumber,zoneComment
67fc1421ebSBram Moolenaarsyn match       zoneComment     /;.*/
68071d4279SBram Moolenaar
69071d4279SBram Moolenaar" Define the default highlighting.
7089bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
71071d4279SBram Moolenaar
72f37506f6SBram Moolenaarhi def link zoneDirective    Macro
73fc1421ebSBram Moolenaar
74f37506f6SBram Moolenaarhi def link zoneUnknown      Error
75fc1421ebSBram Moolenaar
76f37506f6SBram Moolenaarhi def link zoneOrigin       Statement
77f37506f6SBram Moolenaarhi def link zoneOwnerName    Statement
78f37506f6SBram Moolenaarhi def link zoneDomain       Identifier
79071d4279SBram Moolenaar
80f37506f6SBram Moolenaarhi def link zoneSpecial      Special
81f37506f6SBram Moolenaarhi def link zoneTTL          Constant
82f37506f6SBram Moolenaarhi def link zoneClass        Include
83f37506f6SBram Moolenaarhi def link zoneRRType       Type
84fc1421ebSBram Moolenaar
85f37506f6SBram Moolenaarhi def link zoneIPAddr       Number
86f37506f6SBram Moolenaarhi def link zoneIP6Addr      Number
87f37506f6SBram Moolenaarhi def link zoneText         String
88f37506f6SBram Moolenaarhi def link zoneNumber       Number
89f37506f6SBram Moolenaarhi def link zoneSerial       Special
90fc1421ebSBram Moolenaar
91f37506f6SBram Moolenaarhi def link zoneErrParen     Error
92f37506f6SBram Moolenaarhi def link zoneComment      Comment
93fc1421ebSBram Moolenaar
94071d4279SBram Moolenaar
95071d4279SBram Moolenaarlet b:current_syntax = "bindzone"
96071d4279SBram Moolenaar
97fc1421ebSBram Moolenaar" vim:sts=2 sw=2
98