Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-completion/src/completions/postfix/format_like.rs')
-rw-r--r--crates/ide-completion/src/completions/postfix/format_like.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/ide-completion/src/completions/postfix/format_like.rs b/crates/ide-completion/src/completions/postfix/format_like.rs
index 7faa113959..85a8899fd1 100644
--- a/crates/ide-completion/src/completions/postfix/format_like.rs
+++ b/crates/ide-completion/src/completions/postfix/format_like.rs
@@ -40,6 +40,7 @@ static KINDS: &[(&str, &str)] = &[
("logw", "log::warn!"),
("loge", "log::error!"),
];
+static SNIPPET_RETURNS_NON_UNIT: &[&str] = &["format"];
pub(crate) fn add_format_like_completions(
acc: &mut Completions,
@@ -47,6 +48,7 @@ pub(crate) fn add_format_like_completions(
dot_receiver: &ast::Expr,
cap: SnippetCap,
receiver_text: &ast::String,
+ semi: &str,
) {
let postfix_snippet = match build_postfix_snippet_builder(ctx, cap, dot_receiver) {
Some(it) => it,
@@ -64,10 +66,11 @@ pub(crate) fn add_format_like_completions(
let exprs = with_placeholders(exprs);
for (label, macro_name) in KINDS {
+ let semi = if SNIPPET_RETURNS_NON_UNIT.contains(label) { "" } else { semi };
let snippet = if exprs.is_empty() {
- format!(r#"{macro_name}({out})"#)
+ format!(r#"{macro_name}({out}){semi}"#)
} else {
- format!(r#"{}({}, {})"#, macro_name, out, exprs.join(", "))
+ format!(r#"{}({}, {}){semi}"#, macro_name, out, exprs.join(", "))
};
postfix_snippet(label, macro_name, &snippet).add_to(acc, ctx.db);