forked from aniani/vim
		
	
		
			
	
	
		
			76 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " pf syntax file | ||
|  | " Language:	OpenBSD packet filter configuration (pf.conf) | ||
|  | " Maintainer:	Camiel Dobbelaar <cd@sentia.nl> | ||
|  | " Last Change:	2003 May 27 | ||
|  | 
 | ||
|  | " 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 | ||
|  | 
 | ||
|  | setlocal foldmethod=syntax | ||
|  | syn sync fromstart | ||
|  | 
 | ||
|  | syn cluster	pfNotLS		contains=pfComment,pfTodo,pfVarAssign | ||
|  | syn keyword	pfCmd		altq anchor antispoof binat nat pass | ||
|  | syn keyword	pfCmd		queue rdr scrub table set | ||
|  | syn keyword	pfService	auth bgp domain finger ftp http https ident | ||
|  | syn keyword	pfService	imap irc isakmp kerberos mail nameserver nfs | ||
|  | syn keyword	pfService	nntp ntp pop3 portmap pptp rpcbind rsync smtp | ||
|  | syn keyword	pfService	snmp snmptrap socks ssh sunrpc syslog telnet | ||
|  | syn keyword	pfService	tftp www | ||
|  | syn keyword	pfTodo		TODO XXX contained | ||
|  | syn keyword	pfWildAddr	all any | ||
|  | syn match	pfCmd		/block\s/ | ||
|  | syn match	pfComment	/#.*$/ contains=pfTodo | ||
|  | syn match	pfCont		/\\$/ | ||
|  | syn match	pfErrClose	/}/ | ||
|  | syn match	pfIPv4		/\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/ | ||
|  | syn match	pfIPv6		/[a-fA-F0-9:]*::[a-fA-F0-9:.]*/ | ||
|  | syn match	pfIPv6		/[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/ | ||
|  | syn match	pfNetmask	/\/\d\+/ | ||
|  | syn match	pfNum		/[a-zA-Z0-9_:.]\@<!\d\+[a-zA-Z0-9_:.]\@!/ | ||
|  | syn match	pfTable		/<\s*[a-zA-Z][a-zA-Z0-9_]*\s*>/ | ||
|  | syn match	pfVar		/$[a-zA-Z][a-zA-Z0-9_]*/ | ||
|  | syn match	pfVarAssign	/^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1 | ||
|  | syn region	pfFold1		start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold | ||
|  | syn region	pfFold2		start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold | ||
|  | syn region	pfFold3		start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold | ||
|  | syn region	pfList		start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS | ||
|  | syn region	pfString	start=/"/ end=/"/ transparent contains=ALLBUT,pfString,@pfNotLS | ||
|  | syn region	pfString	start=/'/ end=/'/ transparent contains=ALLBUT,pfString,@pfNotLS | ||
|  | 
 | ||
|  | " 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_c_syn_inits") | ||
|  |   if version < 508 | ||
|  |     let did_c_syn_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink pfCmd		Statement | ||
|  |   HiLink pfComment	Comment | ||
|  |   HiLink pfCont		Statement | ||
|  |   HiLink pfErrClose	Error | ||
|  |   HiLink pfIPv4		Type | ||
|  |   HiLink pfIPv6		Type | ||
|  |   HiLink pfNetmask	Constant | ||
|  |   HiLink pfNum		Constant | ||
|  |   HiLink pfService	Constant | ||
|  |   HiLink pfTable	Identifier | ||
|  |   HiLink pfTodo		Todo | ||
|  |   HiLink pfVar		Identifier | ||
|  |   HiLink pfVarAssign	Identifier | ||
|  |   HiLink pfWildAddr	Type | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "pf" |