99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:	BIND 8.x zone files (RFC1035)
 | |
| " Maintainer:	glory hump <rnd@web-drive.ru>
 | |
| " Last change:	Thu Apr 26 02:16:18 SAMST 2001
 | |
| " Filenames:	/var/named/*
 | |
| " URL:	http://rnd.web-drive.ru/vim/syntax/bindzone.vim
 | |
| " $Id$
 | |
| 
 | |
| " 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
 | |
| 
 | |
| 
 | |
| " Master File Format (rfc 1035)
 | |
| 
 | |
| " directives
 | |
| syn region	zoneRRecord	start=+^+ end=+$+ contains=zoneLHSDomain,zoneLHSIP,zoneIllegalDom,zoneWhitespace,zoneComment,zoneParen,zoneSpecial
 | |
| syn match	zoneDirective	/\$ORIGIN\s\+/ nextgroup=zoneDomain,zoneIllegalDom
 | |
| syn match	zoneDirective	/\$TTL\s\+/ nextgroup=zoneTTL
 | |
| syn match	zoneDirective	/\$INCLUDE\s\+/
 | |
| syn match	zoneDirective	/\$GENERATE\s/
 | |
| 
 | |
| syn match	zoneWhitespace	contained /^\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
 | |
| syn match	zoneError	"\s\+$"
 | |
| syn match	zoneSpecial	contained /^[@.]\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
 | |
| syn match	zoneSpecial	contained /@$/
 | |
| 
 | |
| " domains and IPs
 | |
| syn match	zoneLHSDomain	contained /^[-0-9A-Za-z.]\+\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
 | |
| syn match	zoneLHSIP	contained /^[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\s\+/ nextgroup=zoneTTL,zoneClass,zoneRRType
 | |
| syn match	zoneIPaddr	contained /\<[0-9]\{1,3}\(\.[0-9]\{1,3}\)\{,3}\>/
 | |
| syn match	zoneDomain	contained /\<[0-9A-Za-z][-0-9A-Za-z.]\+\>/
 | |
| 
 | |
| syn match	zoneIllegalDom	contained /\S*[^-A-Za-z0-9.[:space:]]\S*\>/
 | |
| "syn match	zoneIllegalDom	contained /[0-9]\S*[-A-Za-z]\S*/
 | |
| 
 | |
| " keywords
 | |
| syn keyword	zoneClass	IN CHAOS nextgroup=zoneRRType
 | |
| 
 | |
| syn match	zoneTTL	contained /\<[0-9HhWwDd]\+\s\+/ nextgroup=zoneClass,zoneRRType
 | |
| syn match	zoneRRType	contained /\s*\<\(NS\|HINFO\)\s\+/ nextgroup=zoneSpecial,zoneDomain
 | |
| syn match	zoneRRType	contained /\s*\<CNAME\s\+/ nextgroup=zoneDomain,zoneSpecial
 | |
| syn match	zoneRRType	contained /\s*\<SOA\s\+/ nextgroup=zoneDomain,zoneIllegalDom
 | |
| syn match	zoneRRType	contained /\s*\<PTR\s\+/ nextgroup=zoneDomain,zoneIllegalDom
 | |
| syn match	zoneRRType	contained /\s*\<MX\s\+/ nextgroup=zoneMailPrio
 | |
| syn match	zoneRRType	contained /\s*\<A\s\+/ nextgroup=zoneIPaddr,zoneIllegalDom
 | |
| 
 | |
| " FIXME: catchup serial number
 | |
| syn match	zoneSerial	contained /\<[0-9]\{9}\>/
 | |
| 
 | |
| syn match	zoneMailPrio	contained /\<[0-9]\+\s*/ nextgroup=zoneDomain,zoneIllegalDom
 | |
| syn match	zoneErrParen	/)/
 | |
| syn region	zoneParen	contained start=+(+ end=+)+ contains=zoneSerial,zoneTTL,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 zoneComment	Comment
 | |
|   HiLink zoneDirective	Macro
 | |
|   HiLink zoneLHSDomain	Statement
 | |
|   HiLink zoneLHSIP	Statement
 | |
|   HiLink zoneClass	Include
 | |
|   HiLink zoneSpecial	Special
 | |
|   HiLink zoneRRType	Type
 | |
|   HiLink zoneError	Error
 | |
|   HiLink zoneErrParen	Error
 | |
|   HiLink zoneIllegalDom	Error
 | |
|   HiLink zoneSerial	Todo
 | |
|   HiLink zoneIPaddr	Number
 | |
|   HiLink zoneDomain	Identifier
 | |
| 
 | |
|   delcommand HiLink
 | |
| endif
 | |
| 
 | |
| let b:current_syntax = "bindzone"
 | |
| 
 | |
| " vim: ts=17
 |