Show more possible matches in code context completion (#27199)

Closes #24794

We now don't filter matches provided by the fuzzy matcher, as it already
performs most of the filtering for us. Instead, the custom logic we
previously used for filtering is now used to partition, where before
discarded matches will be appended at end of list.

Before - Filtering out matches with higher fuzzy score
<img width="400" alt="image"
src="https://github.com/user-attachments/assets/7f9d66a2-0921-499c-af8a-f1e530da50b1"
/>

After - Changing filter to partition instead, and appending remaining
items at the end
<img width="400" alt="image"
src="https://github.com/user-attachments/assets/45848f70-ed51-4935-976c-6c16c5b5777b"
/>


Release Notes:

- Improved LSP auto complete to show more possible matches.

---------

Co-authored-by: Peter Tripp <petertripp@gmail.com>
This commit is contained in:
Smit Barmase 2025-03-20 23:46:20 +05:30 committed by GitHub
parent 7931b1d345
commit 7b80cd865d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 9 additions and 4 deletions

View file

@ -9492,7 +9492,7 @@ async fn test_word_completions_continue_on_typing(cx: &mut TestAppContext) {
}
});
cx.simulate_keystroke("s");
cx.simulate_keystroke("l");
cx.executor().run_until_parked();
cx.condition(|editor, _| editor.context_menu_visible())
.await;
@ -9501,7 +9501,7 @@ async fn test_word_completions_continue_on_typing(cx: &mut TestAppContext) {
{
assert_eq!(
completion_menu_entries(&menu),
&["second"],
&["last"],
"After showing word completions, further editing should filter them and not query the LSP"
);
} else {