From 9757b11aaf58cf49b96daa3abe31af2212badbe1 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 30 Aug 2024 16:34:01 +0800 Subject: vim-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: vim/vim#15357 closes: vim/vim#15365 https://github.com/vim/vim/commit/6b6280c4a270547f84f01c0e0d9be1b7d6bb9e20 Co-authored-by: glepnir --- src/nvim/insexpand.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/insexpand.c b/src/nvim/insexpand.c index a02d7a62d2..4cddebf3f9 100644 --- a/src/nvim/insexpand.c +++ b/src/nvim/insexpand.c @@ -3339,6 +3339,7 @@ static void get_next_filename_completion(void) // Move leader to the file part leader = last_sep + 1; + leader_len -= path_len; } } @@ -3392,13 +3393,18 @@ static void get_next_filename_completion(void) FreeWild(num_matches, matches); matches = sorted_matches; num_matches = fuzzy_indices.ga_len; + } else if (leader_len > 0) { + FreeWild(num_matches, matches); + num_matches = 0; } xfree(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); + } } /// Get the next set of command-line completions matching "compl_pattern". -- cgit