Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/render/macro_.rs')
-rw-r--r--crates/ide-completion/src/render/macro_.rs12
1 files changed, 5 insertions, 7 deletions
diff --git a/crates/ide-completion/src/render/macro_.rs b/crates/ide-completion/src/render/macro_.rs
index ac2091eca9..ebf8a98eb0 100644
--- a/crates/ide-completion/src/render/macro_.rs
+++ b/crates/ide-completion/src/render/macro_.rs
@@ -46,7 +46,7 @@ fn render(
ctx.source_range()
};
- let name = name.to_smol_str();
+ let (name, escaped_name) = (name.to_smol_str(), name.escaped().to_smol_str());
let docs = ctx.docs(macro_);
let docs_str = docs.as_ref().map(Documentation::as_str).unwrap_or_default();
let is_fn_like = macro_.is_fn_like(completion.db);
@@ -64,20 +64,18 @@ fn render(
.set_documentation(docs)
.set_relevance(ctx.completion_relevance());
- let name = &*name;
match ctx.snippet_cap() {
Some(cap) if needs_bang && !has_call_parens => {
- let snippet = format!("{}!{}$0{}", name, bra, ket);
- let lookup = banged_name(name);
+ let snippet = format!("{}!{}$0{}", escaped_name, bra, ket);
+ let lookup = banged_name(&name);
item.insert_snippet(cap, snippet).lookup_by(lookup);
}
_ if needs_bang => {
- let banged_name = banged_name(name);
- item.insert_text(banged_name.clone()).lookup_by(banged_name);
+ item.insert_text(banged_name(&escaped_name)).lookup_by(banged_name(&name));
}
_ => {
cov_mark::hit!(dont_insert_macro_call_parens_unncessary);
- item.insert_text(name);
+ item.insert_text(escaped_name);
}
};
if let Some(import_to_add) = ctx.import_to_add {