fix: improve parameter completion
This commit is contained in:
@@ -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)
|
||||
"#,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user