Commit: patch 9.2.0036: completion: thesaurus completion incorrect with "longest/fuzzy"

1 view
Skip to first unread message

Christian Brabandt

unread,
Feb 21, 2026, 5:31:44 AM (yesterday) Feb 21
to vim...@googlegroups.com
patch 9.2.0036: completion: thesaurus completion incorrect with "longest/fuzzy"

Commit: https://github.com/vim/vim/commit/26a3f486cc708b285b20e92c206f1615d20b23b6
Author: Girish Palya <giri...@gmail.com>
Date: Sat Feb 21 10:10:17 2026 +0000

patch 9.2.0036: completion: thesaurus completion incorrect with "longest/fuzzy"

Problem: completion: thesaurus completion incorrect with
"longest/fuzzy" (Mao-Yining)
Solution: Disable fuzzy matching and longest-match insertion
specifically for thesaurus completion (Girish Palya).

fixes: #19356
closes: #19475

Signed-off-by: Girish Palya <giri...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 22e2ce2e3..0798934c2 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 9.2. Last change: 2026 Feb 17
+*options.txt* For Vim version 9.2. Last change: 2026 Feb 21


VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2257,11 +2257,13 @@ A jump table for the options with a short description can be found at |Q_op|.
fuzzy Enable |fuzzy-matching| for completion candidates. This
allows for more flexible and intuitive matching, where
characters can be skipped and matches can be found even
- if the exact sequence is not typed.
+ if the exact sequence is not typed (disabled for thesaurus
+ completion |compl-thesaurus|).

longest
When 'autocomplete' is not active, only the longest common
- prefix of the matches is inserted. If the popup menu is
+ prefix of the matches is inserted (disabled for thesaurus
+ completion |compl-thesaurus|). If the popup menu is
displayed, you can use CTRL-L to add more characters.
Whether case is ignored depends on the type of completion.
For buffer text the 'ignorecase' option applies.
diff --git a/src/insexpand.c b/src/insexpand.c
index 38e92dacf..bfae80f61 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -829,7 +829,7 @@ ins_compl_add_infercase(
static int
cot_fuzzy(void)
{
- return (get_cot_flags() & COT_FUZZY) != 0;
+ return (get_cot_flags() & COT_FUZZY) != 0 && !ctrl_x_mode_thesaurus();
}

/*
@@ -1035,7 +1035,7 @@ ins_compl_add(

// Find the longest common string if still doing that.
if (compl_get_longest && (flags & CP_ORIGINAL_TEXT) == 0 && !cot_fuzzy()
- && !ins_compl_preinsert_longest())
+ && !ins_compl_preinsert_longest() && !ctrl_x_mode_thesaurus())
ins_compl_longest_match(match);

return OK;
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 57680e40f..6ac115d77 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -919,7 +919,7 @@ func Test_edit_CTRL_S()
bw!
endfunc

-func Test_edit_CTRL_T()
+func Edit_CTRL_T()
" Check for CTRL-T and CTRL-X CTRL-T in insert mode
" 1) increase indent
new
@@ -992,6 +992,29 @@ func Test_edit_CTRL_T()
bw!
endfunc

+func Test_edit_CTRL_T()
+ call Edit_CTRL_T()
+ set completeopt+=fuzzy
+ call Edit_CTRL_T()
+ set completeopt&
+endfunc
+
+func Test_edit_CTRL_T_longest()
+ " CTRL-X CTRL-T (thesaurus complete) with 'longest' should not insert
+ " longest match
+ set completeopt+=longest
+ new
+ call writefile(['angry furious mad madder maddest'], 'Xthesaurus', 'D')
+ set thesaurus=Xthesaurus
+ call setline(1, 'mad')
+ call cursor(1, 1)
+ call feedkeys("A\<c-x>\<c-t>\<cr>\<esc>", 'tnix')
+ call assert_equal(['mad', ''], getline(1, '$'))
+ bw!
+ set thesaurus=
+ set completeopt&
+endfunc
+
" Test thesaurus completion with different encodings
func Test_thesaurus_complete_with_encoding()
call writefile(['angry furious mad enraged'], 'Xthesaurus', 'D')
diff --git a/src/version.c b/src/version.c
index 9e140b13f..d38a46661 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 36,
/**/
35,
/**/
Reply all
Reply to author
Forward
0 new messages