commit 6e588519c8b355599bd6b3dfce822325cee80deb
parent 543e40624ea58bceacbd0ae62a797a7d22b74ee3
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu, 13 Mar 2025 17:38:30 +0800
vim-patch:9.1.1196: filetype: config files for container tools are not recognized (#32873)
Problem: filetype: config files for container tools are not recognized
Solution: detect the ones that aren't detected yet as toml filetype
(David Mandelberg)
The .containerignore format doesn't look exactly the same as gitignore,
but very close. And .dockerignore is already using gitignore.
References:
https://github.com/containers/common/blob/main/docs/containerignore.5.md
https://github.com/containers/common/blob/main/docs/containers.conf.5.md
https://github.com/containers/storage/blob/main/docs/containers-storage.conf.5.md
https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md
https://github.com/containers/image/blob/main/docs/containers-registries.conf.d.5.md
I wasn't sure exactly how to interpret what containers.conf(5) was
saying about modules, so I looked at
https://github.com/containers/common/tree/main/pkg/config/testdata/modules
to get examples, and based the detection off those.
closes: vim/vim#16852
https://github.com/vim/vim/commit/7546afbf525861f586ea2deabf71e3a2940abd4d
Co-authored-by: David Mandelberg <david@mandelberg.org>
Diffstat:
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
@@ -1583,6 +1583,7 @@ local filename = {
['.gitattributes'] = 'gitattributes',
['.gitignore'] = 'gitignore',
['.ignore'] = 'gitignore',
+ ['.containerignore'] = 'gitignore',
['.dockerignore'] = 'gitignore',
['.fdignore'] = 'gitignore',
['.npmignore'] = 'gitignore',
@@ -2264,6 +2265,12 @@ local pattern = {
['/%.ssh/.*%.conf$'] = 'sshconfig',
['^%.?tmux.*%.conf$'] = 'tmux',
['^%.?tmux.*%.conf'] = { 'tmux', { priority = -1 } },
+ ['/containers/containers%.conf$'] = 'toml',
+ ['/containers/containers%.conf%.d/.*%.conf$'] = 'toml',
+ ['/containers/containers%.conf%.modules/.*%.conf$'] = 'toml',
+ ['/containers/registries%.conf$'] = 'toml',
+ ['/containers/registries%.conf%.d/.*%.conf$'] = 'toml',
+ ['/containers/storage%.conf$'] = 'toml',
['/%.config/upstart/.*%.conf$'] = 'upstart',
['/%.config/upstart/.*%.override$'] = 'upstart',
['/%.init/.*%.conf$'] = 'upstart',
diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim
@@ -306,7 +306,7 @@ func s:GetFilenameChecks() abort
\ 'gitattributes': ['file.git/info/attributes', '.gitattributes', '/.config/git/attributes', '/etc/gitattributes', '/usr/local/etc/gitattributes', 'some.git/info/attributes'] + s:WhenConfigHome('$XDG_CONFIG_HOME/git/attributes'),
\ 'gitcommit': ['COMMIT_EDITMSG', 'MERGE_MSG', 'TAG_EDITMSG', 'NOTES_EDITMSG', 'EDIT_DESCRIPTION'],
\ 'gitconfig': ['file.git/config', 'file.git/config.worktree', 'file.git/worktrees/x/config.worktree', '.gitconfig', '.gitmodules', 'file.git/modules//config', '/.config/git/config', '/etc/gitconfig', '/usr/local/etc/gitconfig', '/etc/gitconfig.d/file', 'any/etc/gitconfig.d/file', '/.gitconfig.d/file', 'any/.config/git/config', 'any/.gitconfig.d/file', 'some.git/config', 'some.git/modules/any/config'] + s:WhenConfigHome('$XDG_CONFIG_HOME/git/config'),
- \ 'gitignore': ['file.git/info/exclude', '.gitignore', '/.config/git/ignore', 'some.git/info/exclude'] + s:WhenConfigHome('$XDG_CONFIG_HOME/git/ignore') + ['.prettierignore', '.fdignore', '/.config/fd/ignore', '.ignore', '.rgignore', '.dockerignore', '.npmignore', '.vscodeignore'],
+ \ 'gitignore': ['file.git/info/exclude', '.gitignore', '/.config/git/ignore', 'some.git/info/exclude'] + s:WhenConfigHome('$XDG_CONFIG_HOME/git/ignore') + ['.prettierignore', '.fdignore', '/.config/fd/ignore', '.ignore', '.rgignore', '.dockerignore', '.containerignore', '.npmignore', '.vscodeignore'],
\ 'gitolite': ['gitolite.conf', '/gitolite-admin/conf/file', 'any/gitolite-admin/conf/file'],
\ 'gitrebase': ['git-rebase-todo'],
\ 'gitsendemail': ['.gitsendemail.msg.xxxxxx'],
@@ -816,7 +816,11 @@ func s:GetFilenameChecks() abort
\ 'tla': ['file.tla'],
\ 'tli': ['file.tli'],
\ 'tmux': ['tmuxfile.conf', '.tmuxfile.conf', '.tmux-file.conf', '.tmux.conf', 'tmux-file.conf', 'tmux.conf', 'tmux.conf.local'],
- \ 'toml': ['file.toml', 'Gopkg.lock', 'Pipfile', '/home/user/.cargo/config', '.black'],
+ \ 'toml': ['file.toml', 'Gopkg.lock', 'Pipfile', '/home/user/.cargo/config', '.black',
+ \ 'any/containers/containers.conf', 'any/containers/containers.conf.d/file.conf',
+ \ 'any/containers/containers.conf.modules/file.conf', 'any/containers/containers.conf.modules/any/file.conf',
+ \ 'any/containers/registries.conf', 'any/containers/registries.conf.d/file.conf',
+ \ 'any/containers/storage.conf'],
\ 'tpp': ['file.tpp'],
\ 'trace32': ['file.cmm', 'file.cmmt', 'file.t32'],
\ 'treetop': ['file.treetop'],