0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

patch 9.1.1173: filetype: ABNF files are not detected

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>
This commit is contained in:
A4-Tacks
2025-03-05 20:10:29 +01:00
committed by Christian Brabandt
parent 3ed6659549
commit 9f827ec587
5 changed files with 41 additions and 1 deletions

33
runtime/syntax/abnf.vim Normal file
View File

@@ -0,0 +1,33 @@
" 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