Unnamed repository; edit this file 'description' to name the repository.
return immediately from `render_tuple_lit` if `snippet_cap` is None
partially addresses #13767
Brent Westbrook 2022-12-20
parent 4596847 · commit 1116cc9
-rw-r--r--crates/ide-completion/src/completions/record.rs38
-rw-r--r--crates/ide-completion/src/render/variant.rs3
2 files changed, 40 insertions, 1 deletions
diff --git a/crates/ide-completion/src/completions/record.rs b/crates/ide-completion/src/completions/record.rs
index 5d96fbd30a..6743ec897f 100644
--- a/crates/ide-completion/src/completions/record.rs
+++ b/crates/ide-completion/src/completions/record.rs
@@ -124,7 +124,12 @@ fn complete_fields(
#[cfg(test)]
mod tests {
- use crate::tests::check_edit;
+ use ide_db::SnippetCap;
+
+ use crate::{
+ tests::{check_edit, check_edit_with_config, TEST_CONFIG},
+ CompletionConfig,
+ };
#[test]
fn literal_struct_completion_edit() {
@@ -152,6 +157,37 @@ fn baz() {
}
#[test]
+ fn enum_variant_no_snippets() {
+ let conf = CompletionConfig { snippet_cap: SnippetCap::new(false), ..TEST_CONFIG };
+ check_edit_with_config(
+ conf,
+ "Variant()",
+ r#"
+enum Enum {
+ Variant(usize),
+}
+
+impl Enum {
+ fn new(u: usize) -> Self {
+ Self::Va$0
+ }
+}
+"#,
+ r#"
+enum Enum {
+ Variant(usize),
+}
+
+impl Enum {
+ fn new(u: usize) -> Self {
+ Self::Variant
+ }
+}
+"#,
+ )
+ }
+
+ #[test]
fn literal_struct_impl_self_completion() {
check_edit(
"Self{}",
diff --git a/crates/ide-completion/src/render/variant.rs b/crates/ide-completion/src/render/variant.rs
index 24e6abdc9a..c328962b11 100644
--- a/crates/ide-completion/src/render/variant.rs
+++ b/crates/ide-completion/src/render/variant.rs
@@ -48,6 +48,9 @@ pub(crate) fn render_tuple_lit(
fields: &[hir::Field],
path: &str,
) -> RenderedLiteral {
+ if snippet_cap.is_none() {
+ return RenderedLiteral { literal: format!("{}", path), detail: format!("{}", path) };
+ }
let completions = fields.iter().enumerate().format_with(", ", |(idx, _), f| {
if snippet_cap.is_some() {
f(&format_args!("${{{}:()}}", idx + 1))