From fb7105a5801ab1d0ede830cd53bbc3ccbf0b5e2c Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Sun, 30 May 2021 16:41:33 +0200 Subject: Add config setting for self-on-the-fly --- crates/ide_completion/src/completions/dot.rs | 2 +- crates/ide_completion/src/config.rs | 1 + crates/ide_completion/src/render.rs | 2 +- crates/ide_completion/src/test_utils.rs | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) (limited to 'crates/ide_completion') diff --git a/crates/ide_completion/src/completions/dot.rs b/crates/ide_completion/src/completions/dot.rs index 886251639..302c9ccbd 100644 --- a/crates/ide_completion/src/completions/dot.rs +++ b/crates/ide_completion/src/completions/dot.rs @@ -30,7 +30,7 @@ pub(crate) fn complete_dot(acc: &mut Completions, ctx: &CompletionContext) { } fn complete_undotted_self(acc: &mut Completions, ctx: &CompletionContext) { - if !ctx.is_trivial_path { + if !ctx.is_trivial_path || !ctx.config.enable_self_on_the_fly { return; } ctx.scope.process_all_names(&mut |name, def| { diff --git a/crates/ide_completion/src/config.rs b/crates/ide_completion/src/config.rs index d70ed6c1c..c300ce887 100644 --- a/crates/ide_completion/src/config.rs +++ b/crates/ide_completion/src/config.rs @@ -10,6 +10,7 @@ use ide_db::helpers::{insert_use::InsertUseConfig, SnippetCap}; pub struct CompletionConfig { pub enable_postfix_completions: bool, pub enable_imports_on_the_fly: bool, + pub enable_self_on_the_fly: bool, pub add_call_parenthesis: bool, pub add_call_argument_snippets: bool, pub snippet_cap: Option, diff --git a/crates/ide_completion/src/render.rs b/crates/ide_completion/src/render.rs index 97dd52851..a49a60711 100644 --- a/crates/ide_completion/src/render.rs +++ b/crates/ide_completion/src/render.rs @@ -139,7 +139,7 @@ impl<'a> Render<'a> { let mut item = CompletionItem::new( CompletionKind::Reference, self.ctx.source_range(), - receiver.map_or_else(|| name.to_string(), |receiver| format!("{}.{}", receiver, name)), + receiver.map_or_else(|| name.clone(), |receiver| format!("{}.{}", receiver, name)), ); item.kind(SymbolKind::Field) .detail(ty.display(self.ctx.db()).to_string()) diff --git a/crates/ide_completion/src/test_utils.rs b/crates/ide_completion/src/test_utils.rs index 93c7c872c..b0a4b2026 100644 --- a/crates/ide_completion/src/test_utils.rs +++ b/crates/ide_completion/src/test_utils.rs @@ -19,6 +19,7 @@ use crate::{item::CompletionKind, CompletionConfig, CompletionItem}; pub(crate) const TEST_CONFIG: CompletionConfig = CompletionConfig { enable_postfix_completions: true, enable_imports_on_the_fly: true, + enable_self_on_the_fly: true, add_call_parenthesis: true, add_call_argument_snippets: true, snippet_cap: SnippetCap::new(true), -- cgit v1.2.3