diff options
author | glepnir <glephunter@gmail.com> | 2024-07-27 16:25:45 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-07-27 16:25:45 +0200 |
commit | 6b6280c4a270547f84f01c0e0d9be1b7d6bb9e20 (patch) | |
tree | ed55af267be59082a6cd89ef5addabdd94c96847 | |
parent | f0ce176b5ff631cbc4d149e9f6ba03e78a9bf2a6 (diff) |
patch 9.1.0631: wrong completion list displayed with non-existing dir + fuzzy completionv9.1.0631
Problem: wrong completion list displayed with non-existing dir + fuzzy
completion (kawarimidoll)
Solution: clear list of matches, if leader did not use fuzzy match
(glepnir)
fixes: #15357
closes: #15365
Signed-off-by: glepnir <glephunter@gmail.com>
-rw-r--r-- | src/insexpand.c | 9 | ||||
-rw-r--r-- | src/testdir/dumps/Test_pum_highlights_15.dump | 20 | ||||
-rw-r--r-- | src/testdir/test_popup.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 35 insertions, 1 deletions
diff --git a/src/insexpand.c b/src/insexpand.c index 7a5298f026..2a5f8e8045 100644 --- a/src/insexpand.c +++ b/src/insexpand.c @@ -3581,6 +3581,7 @@ get_next_filename_completion(void) // Move leader to the file part leader = last_sep + 1; + leader_len = STRLEN(leader); } } } @@ -3643,12 +3644,18 @@ get_next_filename_completion(void) matches = sorted_matches; num_matches = fuzzy_indices.ga_len; } + else if (leader_len > 0) + { + FreeWild(num_matches, matches); + num_matches = 0; + } vim_free(compl_fuzzy_scores); ga_clear(&fuzzy_indices); } - ins_compl_add_matches(num_matches, matches, p_fic || p_wic); + if (num_matches > 0) + ins_compl_add_matches(num_matches, matches, p_fic || p_wic); } /* diff --git a/src/testdir/dumps/Test_pum_highlights_15.dump b/src/testdir/dumps/Test_pum_highlights_15.dump new file mode 100644 index 0000000000..e923b439a3 --- /dev/null +++ b/src/testdir/dumps/Test_pum_highlights_15.dump @@ -0,0 +1,20 @@ +|/+0&#ffffff0|n|o|n|_|e|x|i|t|_|f|o|l|d|e|r> @58 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|-+2#0000000&@1| |F|i|l|e| |n|a|m|e| |c|o|m|p|l|e|t|i|o|n| |(|^|F|^|N|^|P|)| |P+0#ffffff16#e000002|a|t@1|e|r|n| |n|o|t| |f|o|u|n|d| +0#0000000#ffffff0@24 diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim index 4c2fb4542f..38324c1cda 100644 --- a/src/testdir/test_popup.vim +++ b/src/testdir/test_popup.vim @@ -1493,6 +1493,11 @@ func Test_pum_highlights_match() call TermWait(buf, 50) call VerifyScreenDump(buf, 'Test_pum_highlights_11', {}) + " issue #15357 + call term_sendkeys(buf, "\<ESC>S/non_exit_folder\<C-X>\<C-F>") + call TermWait(buf, 50) + call VerifyScreenDump(buf, 'Test_pum_highlights_15', {}) + call term_sendkeys(buf, "\<C-E>\<Esc>") call TermWait(buf) diff --git a/src/version.c b/src/version.c index 417e4003a5..31b0c2462f 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 631, +/**/ 630, /**/ 629, |