From 405bbb3aa46ecbfa5124969739695565d9841b9c Mon Sep 17 00:00:00 2001 From: Josh Mcguigan Date: Mon, 15 Mar 2021 19:26:59 -0700 Subject: completions: centralize calculation of relevance and ref matches --- crates/ide_completion/src/render/enum_variant.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'crates/ide_completion/src/render/enum_variant.rs') diff --git a/crates/ide_completion/src/render/enum_variant.rs b/crates/ide_completion/src/render/enum_variant.rs index e8cfcc0c7..374247b05 100644 --- a/crates/ide_completion/src/render/enum_variant.rs +++ b/crates/ide_completion/src/render/enum_variant.rs @@ -6,7 +6,8 @@ use itertools::Itertools; use crate::{ item::{CompletionItem, CompletionKind, ImportEdit}, - render::{builder_ext::Params, RenderContext}, + render::{builder_ext::Params, compute_exact_type_match, compute_ref_match, RenderContext}, + CompletionRelevance, }; pub(crate) fn render_variant<'a>( @@ -74,6 +75,16 @@ impl<'a> EnumRender<'a> { item.lookup_by(self.short_qualified_name); } + 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), + ..CompletionRelevance::default() + }); + + if let Some(ref_match) = compute_ref_match(self.ctx.completion, &ty) { + item.ref_match(ref_match); + } + item.build() } -- cgit v1.2.3