From 3ee7a95315e510e719dae01bdc0b4cb47561938f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 30 Dec 2018 16:20:17 +0300 Subject: use completion context when creating completion --- crates/ra_analysis/src/completion/complete_path.rs | 2 +- crates/ra_analysis/src/completion/complete_scope.rs | 2 +- crates/ra_analysis/src/completion/completion_item.rs | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) (limited to 'crates/ra_analysis/src/completion') diff --git a/crates/ra_analysis/src/completion/complete_path.rs b/crates/ra_analysis/src/completion/complete_path.rs index c73a083a4..99fe9aa94 100644 --- a/crates/ra_analysis/src/completion/complete_path.rs +++ b/crates/ra_analysis/src/completion/complete_path.rs @@ -17,7 +17,7 @@ pub(super) fn complete_path(acc: &mut Completions, ctx: &CompletionContext) -> C let module_scope = module.scope(ctx.db)?; module_scope.entries().for_each(|(name, res)| { CompletionItem::new(CompletionKind::Reference, name.to_string()) - .from_resolution(ctx.db, res) + .from_resolution(ctx, res) .add_to(acc) }); } diff --git a/crates/ra_analysis/src/completion/complete_scope.rs b/crates/ra_analysis/src/completion/complete_scope.rs index cd98efe95..daf666505 100644 --- a/crates/ra_analysis/src/completion/complete_scope.rs +++ b/crates/ra_analysis/src/completion/complete_scope.rs @@ -34,7 +34,7 @@ pub(super) fn complete_scope(acc: &mut Completions, ctx: &CompletionContext) -> }) .for_each(|(name, res)| { CompletionItem::new(CompletionKind::Reference, name.to_string()) - .from_resolution(ctx.db, res) + .from_resolution(ctx, res) .add_to(acc) }); Ok(()) diff --git a/crates/ra_analysis/src/completion/completion_item.rs b/crates/ra_analysis/src/completion/completion_item.rs index b8fa39ae3..a3d947e5b 100644 --- a/crates/ra_analysis/src/completion/completion_item.rs +++ b/crates/ra_analysis/src/completion/completion_item.rs @@ -1,7 +1,7 @@ -use crate::db; - use hir::PerNs; +use crate::completion::CompletionContext; + /// `CompletionItem` describes a single completion variant in the editor pop-up. /// It is basically a POD with various properties. To construct a /// `CompletionItem`, use `new` method and the `Builder` struct. @@ -118,12 +118,12 @@ impl Builder { self.kind = Some(kind); self } - pub(crate) fn from_resolution( + pub(super) fn from_resolution( mut self, - db: &db::RootDatabase, + ctx: &CompletionContext, resolution: &hir::Resolution, ) -> Builder { - let resolved = resolution.def_id.and_then(|d| d.resolve(db).ok()); + let resolved = resolution.def_id.and_then(|d| d.resolve(ctx.db).ok()); let kind = match resolved { PerNs { types: Some(hir::Def::Module(..)), @@ -141,7 +141,7 @@ impl Builder { values: Some(hir::Def::Function(function)), .. } => { - if let Some(sig_info) = function.signature_info(db) { + if let Some(sig_info) = function.signature_info(ctx.db) { if sig_info.params.is_empty() { self.snippet = Some(format!("{}()$0", self.label)); } else { -- cgit v1.2.3