From 68a747efe048e8e92eedafaa27b0c0d2f317f04d Mon Sep 17 00:00:00 2001 From: Kirill Bulatov Date: Thu, 3 Dec 2020 00:27:26 +0200 Subject: Remove redundant code --- crates/completion/src/config.rs | 17 ++++++++++------- crates/completion/src/render.rs | 10 ++-------- crates/completion/src/render/enum_variant.rs | 5 +---- crates/completion/src/render/function.rs | 5 +---- crates/completion/src/render/macro_.rs | 5 +---- 5 files changed, 15 insertions(+), 27 deletions(-) (limited to 'crates/completion') diff --git a/crates/completion/src/config.rs b/crates/completion/src/config.rs index f2fa5c27b..eacdd3449 100644 --- a/crates/completion/src/config.rs +++ b/crates/completion/src/config.rs @@ -15,12 +15,12 @@ pub struct CompletionConfig { pub add_call_argument_snippets: bool, pub snippet_cap: Option, pub merge: Option, - /// A set of capabilities, enabled on the cliend and supported on the server. - pub resolve_capabilities: FxHashSet, + /// A set of capabilities, enabled on the client and supported on the server. + pub active_resolve_capabilities: FxHashSet, } -/// A resolve capability, supported on a server. -/// If the client registers any of those in its completion resolve capabilities, +/// A resolve capability, supported on the server. +/// If the client registers any completion resolve capabilities, /// the server is able to render completion items' corresponding fields later, /// not during an initial completion item request. /// See https://github.com/rust-analyzer/rust-analyzer/issues/6366 for more details. @@ -37,8 +37,11 @@ impl CompletionConfig { } /// Whether the completions' additional edits are calculated later, during a resolve request or not. - pub fn should_resolve_additional_edits_immediately(&self) -> bool { - !self.resolve_capabilities.contains(&CompletionResolveCapability::AdditionalTextEdits) + /// See `CompletionResolveCapability` for the details. + pub fn resolve_edits_immediately(&self) -> bool { + !self + .active_resolve_capabilities + .contains(&CompletionResolveCapability::AdditionalTextEdits) } } @@ -56,7 +59,7 @@ impl Default for CompletionConfig { add_call_argument_snippets: true, snippet_cap: Some(SnippetCap { _private: () }), merge: Some(MergeBehaviour::Full), - resolve_capabilities: FxHashSet::default(), + active_resolve_capabilities: FxHashSet::default(), } } } diff --git a/crates/completion/src/render.rs b/crates/completion/src/render.rs index 3a793000b..2b4f1ea14 100644 --- a/crates/completion/src/render.rs +++ b/crates/completion/src/render.rs @@ -194,10 +194,7 @@ impl<'a> Render<'a> { local_name, ) .kind(CompletionItemKind::UnresolvedReference) - .add_import( - import_to_add, - self.ctx.completion.config.should_resolve_additional_edits_immediately(), - ) + .add_import(import_to_add, self.ctx.completion.config.resolve_edits_immediately()) .build(); return Some(item); } @@ -252,10 +249,7 @@ impl<'a> Render<'a> { let item = item .kind(kind) - .add_import( - import_to_add, - self.ctx.completion.config.should_resolve_additional_edits_immediately(), - ) + .add_import(import_to_add, self.ctx.completion.config.resolve_edits_immediately()) .set_documentation(docs) .set_ref_match(ref_match) .build(); diff --git a/crates/completion/src/render/enum_variant.rs b/crates/completion/src/render/enum_variant.rs index 6548b4676..4a91fe3c7 100644 --- a/crates/completion/src/render/enum_variant.rs +++ b/crates/completion/src/render/enum_variant.rs @@ -71,10 +71,7 @@ impl<'a> EnumVariantRender<'a> { .kind(CompletionItemKind::EnumVariant) .set_documentation(self.variant.docs(self.ctx.db())) .set_deprecated(self.ctx.is_deprecated(self.variant)) - .add_import( - import_to_add, - self.ctx.completion.config.should_resolve_additional_edits_immediately(), - ) + .add_import(import_to_add, self.ctx.completion.config.resolve_edits_immediately()) .detail(self.detail()); if self.variant_kind == StructKind::Tuple { diff --git a/crates/completion/src/render/function.rs b/crates/completion/src/render/function.rs index b13e0dafc..20f2b9b7e 100644 --- a/crates/completion/src/render/function.rs +++ b/crates/completion/src/render/function.rs @@ -47,10 +47,7 @@ impl<'a> FunctionRender<'a> { .set_deprecated(self.ctx.is_deprecated(self.func)) .detail(self.detail()) .add_call_parens(self.ctx.completion, self.name, params) - .add_import( - import_to_add, - self.ctx.completion.config.should_resolve_additional_edits_immediately(), - ) + .add_import(import_to_add, self.ctx.completion.config.resolve_edits_immediately()) .build() } diff --git a/crates/completion/src/render/macro_.rs b/crates/completion/src/render/macro_.rs index 7a8eeb7b9..be7c53659 100644 --- a/crates/completion/src/render/macro_.rs +++ b/crates/completion/src/render/macro_.rs @@ -50,10 +50,7 @@ impl<'a> MacroRender<'a> { .kind(CompletionItemKind::Macro) .set_documentation(self.docs.clone()) .set_deprecated(self.ctx.is_deprecated(self.macro_)) - .add_import( - import_to_add, - self.ctx.completion.config.should_resolve_additional_edits_immediately(), - ) + .add_import(import_to_add, self.ctx.completion.config.resolve_edits_immediately()) .detail(self.detail()); let needs_bang = self.needs_bang(); -- cgit v1.2.3