Mercurial > vim
changeset 35823:f2457a89c91e v9.1.0631
patch 9.1.0631: wrong completion list displayed with non-existing dir + fuzzy completion
Commit: https://github.com/vim/vim/commit/6b6280c4a270547f84f01c0e0d9be1b7d6bb9e20
Author: glepnir <glephunter@gmail.com>
Date: Sat Jul 27 16:25:45 2024 +0200
patch 9.1.0631: wrong completion list displayed with non-existing dir + fuzzy completion
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 27 Jul 2024 16:30:05 +0200 |
parents | f6448806101d |
children | 52e8ae5d33ec |
files | src/insexpand.c src/testdir/dumps/Test_pum_highlights_15.dump src/testdir/test_popup.vim src/version.c |
diffstat | 4 files changed, 35 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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); } /*
new file mode 100644 --- /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
--- 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)