aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-05-28 06:39:07 +0800
committerGitHub <noreply@github.com>2024-05-28 06:39:07 +0800
commit7b16c1fa8451880c72769f6d3c311f24c74f4fc7 (patch)
tree169b7b20c9e9903ba56ff050d57ddb4b804dc9a9
parent6e8a728e3dad747d0c46dc47a530b76e8997bc08 (diff)
downloadrneovim-7b16c1fa8451880c72769f6d3c311f24c74f4fc7.tar.gz
rneovim-7b16c1fa8451880c72769f6d3c311f24c74f4fc7.tar.bz2
rneovim-7b16c1fa8451880c72769f6d3c311f24c74f4fc7.zip
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.
-rw-r--r--runtime/ftplugin/cpp.vim3
-rw-r--r--test/functional/lua/runtime_spec.lua8
2 files changed, 10 insertions, 1 deletions
diff --git a/runtime/ftplugin/cpp.vim b/runtime/ftplugin/cpp.vim
index d4931a2533..5cdad8fdc8 100644
--- a/runtime/ftplugin/cpp.vim
+++ b/runtime/ftplugin/cpp.vim
@@ -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 ">".
diff --git a/test/functional/lua/runtime_spec.lua b/test/functional/lua/runtime_spec.lua
index 4adce42c3e..c6b0577ebe 100644
--- a/test/functional/lua/runtime_spec.lua
+++ b/test/functional/lua/runtime_spec.lua
@@ -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)