mirror of
https://github.com/vim/vim
synced 2025-03-15 14:27:53 +01: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>
33 lines
952 B
VimL
33 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
|