From 074a6abd55af8b4d2b4a4cc9430a4f3e91e229f7 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 2 May 2025 21:45:57 +0800 Subject: [PATCH] vim-patch:9.1.1359: filetype: GNU Radio config files are not recognized Problem: filetype: GNU Radio config files are not recognized. Solution: detect GNU Radio config files as confini filetype. Only allow '#' as start of comment in confini syntax (zeertzjq). Ref: - https://wiki.gnuradio.org/index.php/Configuration_Files closes: vim/vim#17242 https://github.com/vim/vim/commit/9c9200d1eafe50077222a38bfad6cba7156a6487 --- runtime/lua/vim/filetype.lua | 2 ++ runtime/syntax/cfg.vim | 2 +- runtime/syntax/confini.vim | 6 ++++++ test/old/testdir/test_filetype.vim | 3 ++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua index 2ae604d189..c9fb539e3b 100644 --- a/runtime/lua/vim/filetype.lua +++ b/runtime/lua/vim/filetype.lua @@ -2280,6 +2280,8 @@ local pattern = { ['asterisk/.*%.conf'] = starsetf('asterisk'), ['asterisk.*/.*voicemail%.conf'] = starsetf('asteriskvm'), ['^dictd.*%.conf$'] = 'dictdconf', + ['/%.?gnuradio/.*%.conf$'] = 'confini', + ['/gnuradio/conf%.d/.*%.conf$'] = 'confini', ['/lxqt/.*%.conf$'] = 'dosini', ['/screengrab/.*%.conf$'] = 'dosini', ['/%.config/fd/ignore$'] = 'gitignore', diff --git a/runtime/syntax/cfg.vim b/runtime/syntax/cfg.vim index 4b5ebf5c25..69788760cc 100644 --- a/runtime/syntax/cfg.vim +++ b/runtime/syntax/cfg.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: Good old CFG files " Maintainer: Igor N. Prischepoff (igor@tyumbit.ru, pri_igor@mail.ru) -" Last change: 2012 Aug 11 +" Last Change: 2012 Aug 11 " 2024 Nov 14 by Vim project: // only denotes a comment when starting a line (#16051) " quit when a syntax file was already loaded diff --git a/runtime/syntax/confini.vim b/runtime/syntax/confini.vim index 823d417a81..009a60c60a 100644 --- a/runtime/syntax/confini.vim +++ b/runtime/syntax/confini.vim @@ -1,5 +1,7 @@ " Vim syntax file " Language: confini +" Last Change: +" 2025 May 02 by Vim project commented line starts with # only " Quit if a syntax file was already loaded if exists("b:current_syntax") @@ -9,4 +11,8 @@ endif " Use the cfg syntax for now, it's similar. runtime! syntax/cfg.vim +" Only accept '#' as the start of a comment. +syn clear CfgComment +syn match CfgComment "#.*" contains=@Spell + let b:current_syntax = 'confini' diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim index 000a5482e0..3481e980eb 100644 --- a/test/old/testdir/test_filetype.vim +++ b/test/old/testdir/test_filetype.vim @@ -183,7 +183,8 @@ func s:GetFilenameChecks() abort \ 'conaryrecipe': ['file.recipe'], \ 'conf': ['auto.master', 'file.conf', 'texdoc.cnf', '.x11vncrc', '.chktexrc', '.ripgreprc', 'ripgreprc', 'file.ctags'], \ 'config': ['configure.in', 'configure.ac', '/etc/hostname.file', 'any/etc/hostname.file'], - \ 'confini': ['pacman.conf', 'paru.conf', 'mpv.conf', 'any/.aws/config', 'any/.aws/credentials', 'file.nmconnection'], + \ 'confini': ['pacman.conf', 'paru.conf', 'mpv.conf', 'any/.aws/config', 'any/.aws/credentials', 'file.nmconnection', + \ 'any/.gnuradio/grc.conf', 'any/gnuradio/config.conf', 'any/gnuradio/conf.d/modtool.conf'], \ 'context': ['tex/context/any/file.tex', 'file.mkii', 'file.mkiv', 'file.mkvi', 'file.mkxl', 'file.mklx'], \ 'cook': ['file.cook'], \ 'corn': ['file.corn'],