rust 代码格式化

rust 代码格式化

业务代码

fn main() {
      let naive_boy = " Handsome!";
        let naive_girl = " Beautiful!";
    println!("{}{}", naive_boy, naive_girl);
}

你把项目中代码写成这个样子,保准会被旁边的狗骂你xx

正确的格式,应当是酱紫

fn main() {
    let naive_boy = " Handsome!";
    let naive_girl = " Beautiful!";
    println!("{}{}", naive_boy, naive_girl);
}

官方自带的工具

在通过rustup方式安装的rust中,在你的.cargo/bin目录下,有两条可执行命令
cargo-fmt rustfmt,并且cargo命令中也有对应的子命令 cargo fmt

cargo fmtcargo-fmtrustfmt 都与代码格式化相关,且都是官方提供的工具

  1. rustfmt
    这个命令是实际执行代码格式化操作的底层程序。它直接读取 Rust 源代码文件,按照 Rust 社区的代码风格规范(Rust Style Guide)对代码进行格式化。
    使用方式通常是直接指定文件:
    rustfmt src/main.rs  # 格式化单个文件
    
  2. cargo fmt
    这是 Rust 构建工具 cargo 提供的格式化命令,它本质上是 rustfmt 的封装,用于更方便地在 Cargo 项目中使用格式化功能。
    特点:
    • 无需手动指定文件路径,默认会格式化项目中所有的 Rust 代码(遵循 Cargo.toml 定义的项目结构)。
    • 会自动读取项目中的 rustfmt.toml 配置文件,应用自定义格式化规则。
      常用命令:
    cargo fmt          # 格式化整个项目
    cargo fmt --check  # 检查格式是否符合规范(不修改文件)
    
  3. cargo-fmt
    这是早期版本中 cargo fmt 命令的别名,现在已基本不再使用。在当前的 Rust 工具链中,cargo-fmt 通常会被解析为 cargo fmt,两者行为一致。
    就当不存在就行了

总结

  1. 格式化指定文件用 rustfmt
  2. 整个项目格式化用 cargo fmt ,并且支持自定义格式规范 rustfmt.toml 配置即可

编辑器中使用

在开发golang的时候,安装了语言的官方对应扩展后,gofmt会自动启动
例如,IDE中按下command + s会自动格式化当前文件

rust中,需要人工设置一下

我这里使用的vscode,这里包含了一切以vscode套壳的各路牛马IDE,某Tree Cursor Code及各路拴马绳

使用全家桶的自行google

编辑器配置

  1. rust的插件rust-analyzer,这个大多数会提示你安装
  2. 打开编程语言的语言设置,右下角有个rust的图标,点击它,选择配置"rust"语言基础设置,新增如下配置,保存
"[rust]": {
    "editor.defaultFormatter": "rust-lang.rust-analyzer",
    "editor.formatOnSave": true
},

这样保存代码时就会自动格式化当前代码,


image.png

image.png

image.png

如果你要格式化整个项目,那还是用cargo fmt执行吧,小心哈

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容