]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1173: filetype: ABNF files are not detected v9.1.1173
authorA4-Tacks <wdsjxhno1001@163.com>
Wed, 5 Mar 2025 19:10:29 +0000 (20:10 +0100)
committerChristian Brabandt <cb@256bit.org>
Wed, 5 Mar 2025 19:19:32 +0000 (20:19 +0100)
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>
.github/MAINTAINERS
runtime/filetype.vim
runtime/syntax/abnf.vim [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index c316849cfbc16bf27a12652161d1a06b4c881c24..071553b9fe4a89a9323fa1780d233fde5178c2c8 100644 (file)
@@ -422,6 +422,7 @@ runtime/pack/dist/opt/nohlsearch/           @habamax
 runtime/plugin/manpager.vim            @Konfekt
 runtime/syntax/shared/hgcommitDiff.vim @vegerot
 runtime/syntax/abaqus.vim              @costerwi
+runtime/syntax/abnf.vim                @A4-Tacks
 runtime/syntax/aidl.vim                        @dpelle
 runtime/syntax/ant.vim                 @dkearns
 runtime/syntax/antlr4.vim              @jiangyinzuo
index ff6905f913840b986aad46d42e67a96159bf5ae7..50c9f08f7c73813ec60e6b7428f9c424b7271913 100644 (file)
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:  The Vim Project <https://github.com/vim/vim>
-" Last Change: 2025 Feb 23
+" Last Change: 2025 Mar 05
 " Former Maintainer:   Bram Moolenaar <Bram@vim.org>
 
 " Listen very carefully, I will say this only once
@@ -75,6 +75,9 @@ au BufNewFile,BufRead *.abc                   setf abc
 " ABEL
 au BufNewFile,BufRead *.abl                    setf abel
 
+" ABNF
+au BufNewFile,BufRead *.abnf                   setf abnf
+
 " AceDB
 au BufNewFile,BufRead *.wrm                    setf acedb
 
diff --git a/runtime/syntax/abnf.vim b/runtime/syntax/abnf.vim
new file mode 100644 (file)
index 0000000..13459eb
--- /dev/null
@@ -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
index bbc2d1f0009f8fbbc6343c3a917a95e66345dc46..d8fc0a1e008774f946e6137673b6d81c17bf4495 100644 (file)
@@ -87,6 +87,7 @@ def s:GetFilenameChecks(): dict<list<string>>
     abap: ['file.abap'],
     abc: ['file.abc'],
     abel: ['file.abl'],
+    abnf: ['file.abnf'],
     acedb: ['file.wrm'],
     ada: ['file.adb', 'file.ads', 'file.ada', 'file.gpr'],
     ahdl: ['file.tdf'],
index cfb661e7067737b3a0996f31b588abe5bc358919..8b42a790988d3c4c43cb18eab0181ec7f2737d86 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1173,
 /**/
     1172,
 /**/