VSCode Rust 在保存时添加分号

问题描述

我在 vscode 上使用 Rust 扩展而不是 rust-analyzer。但是,当我保存文件时,vscode 使用 rustfmt 来格式化我的文件,但它不会自动插入分号。我有一个像这样的微不足道的功能

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

它没有添加必要的分号。我如何使它添加分号?我的安装有什么问题吗?

另外,我尝试过 rust-analyzer,它也不添加分号。

解决方法

与 JavaScript 不同,分号在 Rust 中不是语法上可选的。因此,将它们排除在外是一个语法错误,而不仅仅是样式问题,而且 rustfmt(标准的 Rust 代码格式化工具)从不尝试修复任何语法错误,不无论它们多么“明显”——如果它读取一个有错误的文件,它就不会进行任何格式更改。

(我不知道是否有办法让 rust-analyzer、vim 或 VS Code 自动插入分号作为编辑而不是格式化。)