'VSCode Rust add semicolon on save

I am using the Rust extension on vscode and NOT rust-analyzer. However, when I am saving a file, vscode is using rustfmt to format my file but it doesn't automatically insert semicolons. I have a trivial function like this

fn call_me() {
  let x = 5
  println!(x)
}

It doesn't add the necessary semicolons. How do I make it add semicolons? Are my installations somehow messed up?

Also, I have tried rust-analyzer and it doesn't add semicolons either.



Solution 1:[1]

Unlike JavaScript, semicolons are not syntactically optional in Rust. Thus, leaving them out is a syntax error, not just a matter of style, and rustfmt (the standard Rust code formatting tool) doesn't ever attempt to fix any syntax errors, no matter how “obvious” they might be — if it reads a file with errors it will not make any formatting changes.

(I don't know if there's a way to get rust-analyzer, vim, or VS Code to auto-insert semicolons as a matter of editing rather than formatting.)

Solution 2:[2]

Maybe not what you're looking for but there are language-agnostic options to reduce the friction of semicolon insertion.

For instance the vs code extension colonize adds the shortcut alt+enter which appends a semicolon and newline, no matter where in the line the cursor is.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Kevin Reid
Solution 2 chantey