Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #20729 from A4-Tacks/const-param-kwd
Add const parameter keyword completion
Shoyu Vanilla (Flint) 7 months ago
parent e81202c · parent b39c7a8 · commit a55e2b5
-rw-r--r--crates/ide-completion/src/completions.rs4
-rw-r--r--crates/ide-completion/src/tests/special.rs25
2 files changed, 28 insertions, 1 deletions
diff --git a/crates/ide-completion/src/completions.rs b/crates/ide-completion/src/completions.rs
index e36e0e5704..eb2bb31f96 100644
--- a/crates/ide-completion/src/completions.rs
+++ b/crates/ide-completion/src/completions.rs
@@ -691,6 +691,9 @@ pub(super) fn complete_name(
NameKind::RecordField => {
field::complete_field_list_record_variant(acc, ctx);
}
+ NameKind::TypeParam => {
+ acc.add_keyword_snippet(ctx, "const", "const $1: $0");
+ }
NameKind::ConstParam
| NameKind::Enum
| NameKind::MacroDef
@@ -700,7 +703,6 @@ pub(super) fn complete_name(
| NameKind::Static
| NameKind::Struct
| NameKind::Trait
- | NameKind::TypeParam
| NameKind::Union
| NameKind::Variant => (),
}
diff --git a/crates/ide-completion/src/tests/special.rs b/crates/ide-completion/src/tests/special.rs
index 84ddff8f61..c438ca7880 100644
--- a/crates/ide-completion/src/tests/special.rs
+++ b/crates/ide-completion/src/tests/special.rs
@@ -1510,3 +1510,28 @@ fn foo<T>() {
"#]],
);
}
+
+#[test]
+fn fn_generic_params_const_param_snippet() {
+ check_edit("const", "fn foo<c$0>() {}", "fn foo<const $1: $0>() {}");
+ check_edit("const", "fn foo<T, c$0>() {}", "fn foo<T, const $1: $0>() {}");
+ check(
+ r#"
+fn foo<T: $0>() {}
+"#,
+ expect![[r#"
+ kw crate::
+ kw self::
+ "#]],
+ );
+ check(
+ r#"
+fn foo<const N: $0>() {}
+"#,
+ expect![[r#"
+ bt u32 u32
+ kw crate::
+ kw self::
+ "#]],
+ );
+}