Automatically add semicolon when completing unit-returning functions

But provide a config to suppress that.

I didn't check whether we are in statement expression position, because this is hard in completion (due to the natural incompleteness of source code when completion is invoked), and anyway using function returning unit as an argument to something seems... dubious.
This commit is contained in:
Chayim Refael Friedman 2024-09-01 07:02:40 +03:00
parent 08c7bbc2db
commit 779a7cb0e3
12 changed files with 217 additions and 40 deletions

View file

@ -1185,7 +1185,7 @@ fn main() { fo$0 }
label: "main()",
source_range: 68..70,
delete: 68..70,
insert: "main()$0",
insert: "main();$0",
kind: SymbolKind(
Function,
),
@ -1244,7 +1244,7 @@ fn main() { let _: m::Spam = S$0 }
label: "main()",
source_range: 75..76,
delete: 75..76,
insert: "main()$0",
insert: "main();$0",
kind: SymbolKind(
Function,
),
@ -1331,7 +1331,7 @@ fn main() { som$0 }
label: "main()",
source_range: 56..59,
delete: 56..59,
insert: "main()$0",
insert: "main();$0",
kind: SymbolKind(
Function,
),
@ -1342,7 +1342,7 @@ fn main() { som$0 }
label: "something_deprecated()",
source_range: 56..59,
delete: 56..59,
insert: "something_deprecated()$0",
insert: "something_deprecated();$0",
kind: SymbolKind(
Function,
),
@ -1413,7 +1413,7 @@ impl S {
label: "bar()",
source_range: 94..94,
delete: 94..94,
insert: "bar()$0",
insert: "bar();$0",
kind: SymbolKind(
Method,
),
@ -1540,7 +1540,7 @@ fn foo(s: S) { s.$0 }
label: "the_method()",
source_range: 81..81,
delete: 81..81,
insert: "the_method()$0",
insert: "the_method();$0",
kind: SymbolKind(
Method,
),
@ -2789,7 +2789,7 @@ fn main() {
r#"
mod m { pub fn r#type {} }
fn main() {
m::r#type()$0
m::r#type();$0
}
"#,
)
@ -2963,7 +2963,7 @@ fn main() {
label: "flush()",
source_range: 193..193,
delete: 193..193,
insert: "flush()$0",
insert: "flush();$0",
kind: SymbolKind(
Method,
),
@ -2990,7 +2990,7 @@ fn main() {
label: "write()",
source_range: 193..193,
delete: 193..193,
insert: "write()$0",
insert: "write();$0",
kind: SymbolKind(
Method,
),