fix(runtime): source c ftplugin properly for cpp on Windows (#29053)

On Windows, '{' is currently not treated as a wildcard char, so another
wildcard char is needed for the pattern to be treated as a wildcard.

It may be worth trying to make '{' always a wildcard char in the future,
but that'll be a bit harder as it'll be necessary to make sure '{' is
escaped at various places.
This commit is contained in:
zeertzjq
2024-05-28 06:39:07 +08:00
committed by GitHub
parent 6e8a728e3d
commit 7b16c1fa84
2 changed files with 10 additions and 1 deletions

View File

@ -10,7 +10,8 @@ if exists("b:did_ftplugin")
endif
" Behaves mostly just like C
runtime! ftplugin/c.{vim,lua} ftplugin/c_*.{vim,lua} ftplugin/c/*.{vim,lua}
" XXX: "[.]" in the first pattern makes it a wildcard on Windows
runtime! ftplugin/c[.]{vim,lua} ftplugin/c_*.{vim,lua} ftplugin/c/*.{vim,lua}
" C++ uses templates with <things>
" Disabled, because it gives an error for typing an unmatched ">".

View File

@ -401,4 +401,12 @@ describe('runtime:', function()
eq('ABab', eval('g:seq'))
end)
end)
it('cpp ftplugin loads c ftplugin #29053', function()
eq('', eval('&commentstring'))
eq('', eval('&omnifunc'))
exec('edit file.cpp')
eq('/*%s*/', eval('&commentstring'))
eq('ccomplete#Complete', eval('&omnifunc'))
end)
end)