aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/insexpand.c4
-rw-r--r--test/old/testdir/test_ins_complete.vim7
2 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c
index 1522aeeb75..c17bd27daa 100644
--- a/src/nvim/insexpand.c
+++ b/src/nvim/insexpand.c
@@ -1244,7 +1244,9 @@ static int ins_compl_build_pum(void)
if (comp->cp_score > max_fuzzy_score) {
did_find_shown_match = true;
max_fuzzy_score = comp->cp_score;
- compl_shown_match = comp;
+ if (!compl_no_select) {
+ compl_shown_match = comp;
+ }
}
if (!shown_match_ok && comp == compl_shown_match && !compl_no_select) {
diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim
index b90c0013d9..48319f5017 100644
--- a/test/old/testdir/test_ins_complete.vim
+++ b/test/old/testdir/test_ins_complete.vim
@@ -2664,6 +2664,13 @@ func Test_complete_fuzzy_match()
call feedkeys("A\<C-X>\<C-N>\<Esc>0", 'tx!')
call assert_equal('hello help hero h', getline('.'))
+ " issue #15526
+ set completeopt=fuzzy,menuone,menu,noselect
+ call setline(1, ['Text', 'ToText', ''])
+ call cursor(2, 1)
+ call feedkeys("STe\<C-X>\<C-N>x\<CR>\<Esc>0", 'tx!')
+ call assert_equal('Tex', getline('.'))
+
" clean up
set omnifunc=
bw!