runtime(vimcomplete): do not use wildoptions for completion
Commit:
https://github.com/vim/vim/commit/01a4a8b7b4e94da5b4a6a2925b2b8df405340d66
Author: Maxim Kim <
hab...@gmail.com>
Date: Thu Sep 24 19:18:26 2026 +0000
runtime(vimcomplete): do not use wildoptions for completion
fixes:
https://github.com/vim/vim/issues/21355
closes:
https://github.com/vim/vim/issues/21359
Signed-off-by: Maxim Kim <
hab...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/autoload/vimcomplete.vim b/runtime/autoload/vimcomplete.vim
index f0ab31b6d..df532e8e4 100644
--- a/runtime/autoload/vimcomplete.vim
+++ b/runtime/autoload/vimcomplete.vim
@@ -3,7 +3,7 @@ vim9script
# Vim completion script
# Language: Vim script
# Maintainer: Maxim Kim <
hab...@gmail.com>
-# Last Change: 2026 Sep 08
+# Last Change: 2026 Sep 22
#
# Usage:
# setlocal omnifunc=vimcomplete#Complete
@@ -54,6 +54,14 @@ export def Complete(findstart: number, base: string): any
return line->len() - keyword->len() - trigger_len
endif
+ # getcompletion() uses wildoptions to filter out items
+ # which is not what users might expect
+ var save_wildoptions = &wildoptions
+ &wildoptions = ""
+ defer () => {
+ &wildoptions = save_wildoptions
+ }()
+
var items = []
if trigger == 'function'
items = getcompletion(base, 'function')