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

7546afbf52

Co-authored-by: David Mandelberg <david@mandelberg.org>
This commit is contained in:
zeertzjq
2025-03-13 17:38:30 +08:00
committed by GitHub
parent 543e40624e
commit 6e588519c8
2 changed files with 13 additions and 2 deletions

View File

@ -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',

View File

@ -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'],