fix: improve parameter completion

This commit is contained in:
rainy-me
2022-04-20 17:56:20 +09:00
parent e3ec87730a
commit a58f7acc97
3 changed files with 96 additions and 9 deletions

View File

@@ -562,6 +562,78 @@ fn qux(Foo { bar }: Foo) {
fn main() {
qux(${1:foo})$0
}
"#,
);
}
#[test]
fn complete_fn_param() {
// has mut kw
check_edit(
"mut bar",
r#"
fn f(foo: (), mut bar: u32) {}
fn g(foo: (), mut ba$0)
"#,
r#"
fn f(foo: (), mut bar: u32) {}
fn g(foo: (), mut bar: u32)
"#,
);
// has type param
check_edit(
"mut bar",
r#"
fn g(foo: (), mut ba$0: u32)
fn f(foo: (), mut bar: u32) {}
"#,
r#"
fn g(foo: (), mut bar: u32)
fn f(foo: (), mut bar: u32) {}
"#,
);
}
#[test]
fn complete_fn_mut_param_add_comma() {
// add leading and trailing comma
check_edit(
"mut bar",
r#"
fn f(foo: (), mut bar: u32) {}
fn g(foo: ()mut ba$0 baz: ())
"#,
r#"
fn f(foo: (), mut bar: u32) {}
fn g(foo: (), mut bar: u32, baz: ())
"#,
);
}
#[test]
fn complete_fn_mut_param_has_attribute() {
check_edit(
"mut bar",
r#"
fn f(foo: (), #[baz = "qux"] mut bar: u32) {}
fn g(foo: (), mut ba$0)
"#,
r#"
fn f(foo: (), #[baz = "qux"] mut bar: u32) {}
fn g(foo: (), #[baz = "qux"] mut bar: u32)
"#,
);
check_edit(
"mut bar",
r#"
fn f(foo: (), #[baz = "qux"] mut bar: u32) {}
fn g(foo: (), #[baz = "qux"] mut ba$0)
"#,
r#"
fn f(foo: (), #[baz = "qux"] mut bar: u32) {}
fn g(foo: (), #[baz = "qux"] mut bar: u32)
"#,
);
}