mirror of
				https://github.com/vim/vim.git
				synced 2025-11-04 09:47:15 -05:00 
			
		
		
		
	Problem:  filetype: ABNF files are not detected
Solution: detect '.abnf' file as abnf filetype and
          include an abnf syntax plugin (A4-Tacks).
References:
- RFC5234
- RFC7405
closes: #16802
Signed-off-by: A4-Tacks <wdsjxhno1001@163.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			952 B
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			952 B
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim compiler file
 | 
						|
" Language:	abnf
 | 
						|
" Maintainer:	A4-Tacks <wdsjxhno1001@163.com>
 | 
						|
" Last Change:	2025 Mar 05
 | 
						|
" Upstream:	https://github.com/A4-Tacks/abnf.vim
 | 
						|
 | 
						|
" Implementing RFC-5234, RFC-7405
 | 
						|
 | 
						|
if exists('b:current_syntax')
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
syn case ignore
 | 
						|
 | 
						|
syn match  abnfError	/[<>"]/
 | 
						|
syn match  abnfComment	/;.*/
 | 
						|
syn match  abnfOption	/[[/\]]/
 | 
						|
syn region abnfString	start=/\(%[si]\)\="/ end=/"/ oneline
 | 
						|
syn region abnfProse	start=/</ end=/>/ oneline
 | 
						|
syn match  abnfNumVal	/\v\%b[01]+%(%(\.[01]+)+|-[01]+)=>/
 | 
						|
syn match  abnfNumVal	/\v\%d\d+%(%(\.\d+)+|-\d+)=>/
 | 
						|
syn match  abnfNumVal	/\v\%x[0-9a-f]+%(%(\.[0-9a-f]+)+|-[0-9a-f]+)=>/
 | 
						|
syn match  abnfRepeat	/\v%(%(<\d+)=\*\d*|<\d+ =)\ze[^ \t\r\n0-9*/)\]]/
 | 
						|
 | 
						|
hi def link abnfError		Error
 | 
						|
hi def link abnfComment		Comment
 | 
						|
hi def link abnfOption		PreProc
 | 
						|
hi def link abnfString		String
 | 
						|
hi def link abnfProse		String
 | 
						|
hi def link abnfNumVal		Number
 | 
						|
hi def link abnfRepeat		Repeat
 | 
						|
 | 
						|
" vim:noet:ts=8:sts=8:nowrap
 |