]> git.lizzy.rs Git - rust.git/commitdiff
pass `snippet_cap` to `format_literal_label`, return early if None
authorBrent Westbrook <brentrwestbrook@gmail.com>
Tue, 20 Dec 2022 16:27:19 +0000 (11:27 -0500)
committerBrent Westbrook <brentrwestbrook@gmail.com>
Tue, 20 Dec 2022 16:27:19 +0000 (11:27 -0500)
crates/ide-completion/src/render/literal.rs
crates/ide-completion/src/render/pattern.rs
crates/ide-completion/src/render/union_literal.rs
crates/ide-completion/src/render/variant.rs

index 0c791ac570c566f95f511c1a94805ffe03b96af1..3aeb69258ee7c9d520f2151a43513b863670ca12 100644 (file)
@@ -96,7 +96,7 @@ fn render(
     if !should_add_parens {
         kind = StructKind::Unit;
     }
-    let label = format_literal_label(&qualified_name, kind);
+    let label = format_literal_label(&qualified_name, kind, snippet_cap);
     let lookup = if qualified {
         format_literal_lookup(&short_qualified_name.to_string(), kind)
     } else {
index c845ff21aaba401045cbef14c30c12ea74a3857f..21b4bc2174bee1886af6aa0de75d2a3e9c170068 100644 (file)
@@ -33,7 +33,7 @@ pub(crate) fn render_struct_pat(
     let name = local_name.unwrap_or_else(|| strukt.name(ctx.db()));
     let (name, escaped_name) = (name.unescaped().to_smol_str(), name.to_smol_str());
     let kind = strukt.kind(ctx.db());
-    let label = format_literal_label(name.as_str(), kind);
+    let label = format_literal_label(name.as_str(), kind, ctx.snippet_cap());
     let lookup = format_literal_lookup(name.as_str(), kind);
     let pat = render_pat(&ctx, pattern_ctx, &escaped_name, kind, &visible_fields, fields_omitted)?;
 
@@ -67,7 +67,7 @@ pub(crate) fn render_variant_pat(
         }
         _ => {
             let kind = variant.kind(ctx.db());
-            let label = format_literal_label(name.as_str(), kind);
+            let label = format_literal_label(name.as_str(), kind, ctx.snippet_cap());
             let lookup = format_literal_lookup(name.as_str(), kind);
             let pat = render_pat(
                 &ctx,
index 54e97dd57ba82280074c27635f675d57fef6fa7c..2d55a1bade3d0c42dcc119c9ff84adf0a7ba2ff6 100644 (file)
@@ -24,7 +24,7 @@ pub(crate) fn render_union_literal(
         Some(p) => (p.unescaped().to_string(), p.to_string()),
         None => (name.unescaped().to_string(), name.to_string()),
     };
-    let label = format_literal_label(&name.to_smol_str(), StructKind::Record);
+    let label = format_literal_label(&name.to_smol_str(), StructKind::Record, ctx.snippet_cap());
     let lookup = format_literal_lookup(&name.to_smol_str(), StructKind::Record);
     let mut item = CompletionItem::new(
         CompletionItemKind::SymbolKind(SymbolKind::Union),
index c328962b110fe41cee8a48fefe64086bf0de15c6..d69906a7065735d50b1bf32d6911272f6418d84b 100644 (file)
@@ -90,7 +90,14 @@ pub(crate) fn visible_fields(
 }
 
 /// Format a struct, etc. literal option for display in the completions menu.
-pub(crate) fn format_literal_label(name: &str, kind: StructKind) -> SmolStr {
+pub(crate) fn format_literal_label(
+    name: &str,
+    kind: StructKind,
+    snippet_cap: Option<SnippetCap>,
+) -> SmolStr {
+    if snippet_cap.is_none() {
+        return name.into();
+    }
     match kind {
         StructKind::Tuple => SmolStr::from_iter([name, "(…)"]),
         StructKind::Record => SmolStr::from_iter([name, " {…}"]),