From 4c95c6e25d7765798fc527f11beb6c039c6adabe Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Wed, 25 Nov 2020 00:02:45 +0200 Subject: Gate autoimports begind experimental completions flag --- crates/completion/src/completions/unqualified_path.rs | 4 +++- crates/completion/src/config.rs | 2 ++ crates/rust-analyzer/src/config.rs | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) (limited to 'crates') diff --git a/crates/completion/src/completions/unqualified_path.rs b/crates/completion/src/completions/unqualified_path.rs index 86c143b63..4f1c9faa0 100644 --- a/crates/completion/src/completions/unqualified_path.rs +++ b/crates/completion/src/completions/unqualified_path.rs @@ -44,7 +44,9 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC acc.add_resolution(ctx, name.to_string(), &res) }); - fuzzy_completion(acc, ctx).unwrap_or_default() + if ctx.config.enable_experimental_completions { + fuzzy_completion(acc, ctx).unwrap_or_default() + } } fn complete_enum_variants(acc: &mut Completions, ctx: &CompletionContext, ty: &Type) { diff --git a/crates/completion/src/config.rs b/crates/completion/src/config.rs index 82874ff25..f50735372 100644 --- a/crates/completion/src/config.rs +++ b/crates/completion/src/config.rs @@ -9,6 +9,7 @@ use assists::utils::MergeBehaviour; #[derive(Clone, Debug, PartialEq, Eq)] pub struct CompletionConfig { pub enable_postfix_completions: bool, + pub enable_experimental_completions: bool, pub add_call_parenthesis: bool, pub add_call_argument_snippets: bool, pub snippet_cap: Option, @@ -30,6 +31,7 @@ impl Default for CompletionConfig { fn default() -> Self { CompletionConfig { enable_postfix_completions: true, + enable_experimental_completions: true, add_call_parenthesis: true, add_call_argument_snippets: true, snippet_cap: Some(SnippetCap { _private: () }), diff --git a/crates/rust-analyzer/src/config.rs b/crates/rust-analyzer/src/config.rs index 5fc6800cf..a334cdb11 100644 --- a/crates/rust-analyzer/src/config.rs +++ b/crates/rust-analyzer/src/config.rs @@ -184,6 +184,7 @@ impl Config { }, completion: CompletionConfig { enable_postfix_completions: true, + enable_experimental_completions: true, add_call_parenthesis: true, add_call_argument_snippets: true, ..CompletionConfig::default() @@ -306,6 +307,7 @@ impl Config { }; self.completion.enable_postfix_completions = data.completion_postfix_enable; + self.completion.enable_experimental_completions = data.completion_enableExperimental; self.completion.add_call_parenthesis = data.completion_addCallParenthesis; self.completion.add_call_argument_snippets = data.completion_addCallArgumentSnippets; self.completion.merge = self.assist.insert_use.merge; @@ -506,6 +508,7 @@ config_data! { completion_addCallArgumentSnippets: bool = true, completion_addCallParenthesis: bool = true, completion_postfix_enable: bool = true, + completion_enableExperimental: bool = true, diagnostics_enable: bool = true, diagnostics_enableExperimental: bool = true, -- cgit v1.2.3 From 9812150047ea5f53631762e83ed25177e821857f Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Wed, 25 Nov 2020 00:42:58 +0200 Subject: Document experimental completions --- crates/completion/src/lib.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'crates') diff --git a/crates/completion/src/lib.rs b/crates/completion/src/lib.rs index cb6e0554e..aecc1378b 100644 --- a/crates/completion/src/lib.rs +++ b/crates/completion/src/lib.rs @@ -67,6 +67,13 @@ pub use crate::{ // fn test_name() {} // } // ``` +// +// And experimental completions, enabled with the `rust-analyzer.completion.enableExperimental` setting. +// This flag enables or disables: +// +// - Auto import: additional completion options with automatic `use` import and options from all project importable items, matched for the input +// +// Experimental completions might cause issues with performance and completion list look. /// Main entry point for completion. We run completion as a two-phase process. /// -- cgit v1.2.3