如何在VS Code中保存时运行Cargo fmt?

32

在保存文件时,能否让Visual Studio Code运行cargo fmt命令?

6个回答

65

安装扩展程序 rust-analyzer(官方推荐的vscode扩展程序),并将以下内容添加到 settings.json 中:

"[rust]": {
    "editor.defaultFormatter": "rust-lang.rust-analyzer",
    "editor.formatOnSave": true
}

25
  1. 如果你还没有安装,可以安装 rust-analyzer
  2. 在 Visual Studio Code 的设置中,启用编辑器:保存时格式化editor.formatOnSave)。

4
我还要补充一点,你应该确保你没有全局设置"editor.defaultFormatter"。如果你在全局启用了像"esbenp.prettier-vscode"(或其他格式化程序)这样的格式化程序而不是按语言设置,则VSCode将尝试在Rust代码中使用该格式化程序代替rust-analyzer。我看到一些JS开发人员在转向Rust项目时因此浪费了10或15分钟。 - Parker Ziegler

19

这是适用于我的方法。在文件settings.json中的大括号内部插入以下内容:

    "editor.formatOnSave": true,
    "editor.formatOnType": true,
    "rust-analyzer.rustfmt.enableRangeFormatting": true,
    "[rust]": {
        "editor.defaultFormatter": "rust-lang.rust-analyzer", 
        "editor.formatOnSave": true 
    },

9

如果你的 formatOnSaveMode 设置为 modificationsmodificationsIfAvailable,你可能需要按照以下方式进行更改。

"[rust]": {
    "editor.defaultFormatter": "rust-lang.rust-analyzer",
    "editor.formatOnSave": true,
    "editor.formatOnSaveMode": "file"
  },

3
我只需要添加:"editor.formatOnSaveMode": "file",这就是可行的答案!谢谢! - FatihAziz
1
这对我来说就是这样了,谢谢!设置修改后,它默默地什么也没做。 - Viktor Hedefalk

9

当前 Rust 扩展的版本 > 0.7.8 不需要安装其他内容。请在 VS Code 的 settings.json 文件中启用 formatOnSave:

  "[rust]": {
        "editor.formatOnSave": true
    }

-1

安装 rust-analyzer 并将其添加到您的 settings.json

"[rust]": {
    "editor.defaultFormatter": "rust-lang.rust-analyzer",
    "editor.formatOnSave": true
}

2
这是Delta Kapp上面回答的重复。 - Jk Jensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接