Unnamed repository; edit this file 'description' to name the repository.
Don't complete attributes with existing expressions
Lukas Wirth 2022-01-12
parent a3393c9 · commit 51419c1
-rw-r--r--crates/ide_completion/src/completions/attribute.rs1
-rw-r--r--crates/ide_completion/src/tests/attribute.rs13
2 files changed, 14 insertions, 0 deletions
diff --git a/crates/ide_completion/src/completions/attribute.rs b/crates/ide_completion/src/completions/attribute.rs
index f67d7d56d8..2603ad2003 100644
--- a/crates/ide_completion/src/completions/attribute.rs
+++ b/crates/ide_completion/src/completions/attribute.rs
@@ -56,6 +56,7 @@ pub(crate) fn complete_attribute(acc: &mut Completions, ctx: &CompletionContext)
_ => (),
},
(_, Some(_)) => (),
+ (_, None) if attribute.expr().is_some() => (),
(_, None) => complete_new_attribute(acc, ctx, attribute),
}
Some(())
diff --git a/crates/ide_completion/src/tests/attribute.rs b/crates/ide_completion/src/tests/attribute.rs
index c2bd26e2d8..2d2a1b867a 100644
--- a/crates/ide_completion/src/tests/attribute.rs
+++ b/crates/ide_completion/src/tests/attribute.rs
@@ -41,6 +41,19 @@ struct Foo;
}
#[test]
+fn proc_macros_on_comment() {
+ check(
+ r#"
+//- proc_macros: identity
+/// $0
+#[proc_macros::identity]
+struct Foo;
+"#,
+ expect![[r#""#]],
+ )
+}
+
+#[test]
fn proc_macros_qualified() {
check(
r#"