completion relevance distinguish between exact type match and could unify

This commit is contained in:
Josh Mcguigan 2021-03-22 21:18:34 -07:00
parent 957939292e
commit 0e31ae2cef
5 changed files with 87 additions and 50 deletions

View file

@ -6,7 +6,7 @@ use itertools::Itertools;
use crate::{
item::{CompletionItem, CompletionKind, ImportEdit},
render::{builder_ext::Params, compute_exact_type_match, compute_ref_match, RenderContext},
render::{builder_ext::Params, compute_ref_match, compute_type_match, RenderContext},
CompletionRelevance,
};
@ -77,7 +77,7 @@ impl<'a> EnumRender<'a> {
let ty = self.variant.parent_enum(self.ctx.completion.db).ty(self.ctx.completion.db);
item.set_relevance(CompletionRelevance {
exact_type_match: compute_exact_type_match(self.ctx.completion, &ty),
type_match: compute_type_match(self.ctx.completion, &ty),
..CompletionRelevance::default()
});

View file

@ -8,7 +8,7 @@ use syntax::ast::Fn;
use crate::{
item::{CompletionItem, CompletionItemKind, CompletionKind, CompletionRelevance, ImportEdit},
render::{
builder_ext::Params, compute_exact_name_match, compute_exact_type_match, compute_ref_match,
builder_ext::Params, compute_exact_name_match, compute_ref_match, compute_type_match,
RenderContext,
},
};
@ -73,7 +73,7 @@ impl<'a> FunctionRender<'a> {
let ret_type = self.func.ret_type(self.ctx.db());
item.set_relevance(CompletionRelevance {
exact_type_match: compute_exact_type_match(self.ctx.completion, &ret_type),
type_match: compute_type_match(self.ctx.completion, &ret_type),
exact_name_match: compute_exact_name_match(self.ctx.completion, self.name.clone()),
..CompletionRelevance::default()
});