commit da3eeb4b32bdf98948096fdf0fe533696d03b3d1
parent 074a6abd55af8b4d2b4a4cc9430a4f3e91e229f7
Author: zeertzjq <zeertzjq@outlook.com>
Date: Fri, 2 May 2025 21:50:17 +0800
vim-patch:9.1.1360: filetype: GNU Radio companion files are not recognized
Problem: filetype: GNU Radio companion files are not recognized
Solution: detect *.grc files as xml or yaml filetype depending on the
first line (zeertzjq).
Ref:
- https://wiki.gnuradio.org/index.php/XML_GRC
- https://wiki.gnuradio.org/index.php/YAML_GRC
closes: vim/vim#17241
https://github.com/vim/vim/commit/af4a5d6e2ae57a44edab48c8b012d2afa743998f
Diffstat:
2 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
@@ -1390,6 +1390,7 @@ local extension = {
yaml = 'yaml',
eyaml = 'yaml',
mplstyle = 'yaml',
+ grc = detect_line1('<%?xml', 'xml', 'yaml'),
yang = 'yang',
yuck = 'yuck',
z8a = 'z8a',
diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim
@@ -1597,6 +1597,22 @@ func Test_git_file()
filetype off
endfunc
+func Test_grc_file()
+ filetype on
+
+ call writefile(['<?xml version="1.0"?>', '<block>', '</block>'], 'Xfile.grc')
+ split Xfile.grc
+ call assert_equal('xml', &filetype)
+ bwipe!
+
+ call writefile(['metadata:', ' file_format: 1'], 'Xfile.grc')
+ split Xfile.grc
+ call assert_equal('yaml', &filetype)
+ bwipe!
+
+ filetype off
+endfunc
+
func Test_haredoc_file()
filetype on
call assert_true(mkdir('foo/bar', 'pR'))