Loading…

关于 在线Rust格式化工具

粘贴您的Rust代码,调整缩进大小或行长度,点击“格式化”即可立即获得符合习惯的rustfmt风格输出。非常适合处理crate、API、微服务、CLI或学习项目的Rust开发者。无需注册,无配置困扰——只需干净的Rust代码。

为何使用此Rust格式化器

  • rustfmt风格格式化,生成符合习惯的Rust代码
  • 可调整缩进大小和最大行宽(换行列)
  • 幂等格式化 – 重复格式化同一文件结果一致
  • 仅布局更改:缩进、间距和换行,不影响逻辑
  • 完美支持独立`.rs`文件和crate模块
  • 通过安全格式化后端处理代码 – 无公开共享或索引
  • 响应式界面,完美适配深色/浅色编辑器主题

🛠️ 如何在线格式化 Rust 代码 for rust-formatter

1

1. 粘贴或上传您的 Rust 代码

📥 将 Rust 代码粘贴到编辑器中,或从项目中拖放 `.rs` 文件。工具会自动检测 Rust 语法并高亮显示,便于检查。

2

2. 调整缩进和行长度

📏 使用选项面板选择**缩进大小**(如 2 或 4 个空格)和**换行长度**(适用于长链或复杂表达式)。若希望保持现有行宽,可将换行设置为 `0`。

3

3. 点击“格式化”

🚀 点击**格式化**按钮。您的代码将发送至 rustfmt 风格的格式化器,统一缩进、空格、空行和换行,而不改变行为。

4

4. 审查、复制或下载

📤 对比前后差异,然后将格式化后的代码复制回编辑器,或下载为 `.rs` 文件。即可用于 `cargo build`、`cargo test` 和代码审查。

技术规格

格式化引擎与风格

格式化器遵循 rustfmt 风格,采用约定式格式化,确保您的代码在文件和贡献者间保持地道的 Rust 风格。

方面行为备注
缩进可配置,通常每级 2–4 个空格制表符统一转换为空格,以匹配许多项目中常见的 Rust 风格。
大括号与块为 `fn`、`impl`、`match`、`if`、`loop` 等提供一致的放置和缩进有助于保持嵌套控制流和匹配表达式的可读性。
间距清理运算符和标点周围的额外空格标准化 `let`、`match`、闭包和泛型的间距。
空行在项之间(函数、结构体、impl 块)标准化提升模块和 API 表面的视觉分隔。
幂等性相同输入 → 相同输出(当已格式化时)重新运行格式化程序始终安全且稳定。

缩进大小与换行

您可以根据团队规范自定义缩进宽度和换行方式。

设置项取值范围效果
indentSize1–8 个空格控制每个嵌套块增加的缩进量。
wrapLineLength = 0无基于行长度的换行保持现有行宽(适用于快速调整)。
wrapLineLength = 80–100典型 Rust 团队偏好保持代码紧凑且高度可读。
wrapLineLength = 101–120宽松布局适用于超宽显示器或探索性代码。

支持的输入与限制

专为日常 Rust 开发工作流打造。

参数限制/行为备注
文件扩展名.rs用于 crate、二进制文件、模块和示例的源文件。
MIME 类型text/x-rustsrc内部用于语法高亮和编辑器模式。
最大输入大小约 2 MB Rust 源代码极大或生成的文件最好通过本地 `cargo fmt` 处理。
编码推荐 UTF-8非 UTF-8 输入应在格式化前转换。

执行与安全

格式化在安全后端使用 Rust 感知的格式化程序执行。

方面行为备注
传输方式向格式化API发送HTTPS请求您的代码安全传输,不会公开暴露。
超时设置每个请求约25秒防止极端或格式错误的输入导致任务失控。
语义仅布局转换您的逻辑保持不变;仅更改空白符和布局。

rustfmt & cargo fmt 命令行示例

想在编辑器、CI或终端中直接使用相同样式吗?在本地使用 `rustfmt` 或 `cargo fmt`:

跨平台(通过Rust工具链)

格式化整个项目

cargo fmt

根据 `rustfmt.toml` 对项目中的所有 `.rs` 文件运行 rustfmt。

格式化单个文件

rustfmt src/main.rs

原地对单个文件应用 rustfmt 规则。

使用自定义最大宽度

rustfmt --config max_width=100 src/lib.rs

覆盖默认换行列(类似于此工具的换行长度设置)。

将 `cargo fmt` 添加到您的 CI 和预提交钩子中,确保团队中的每次提交都保持一致的格式。

Rust格式化工具的常见用例

包与库开发

保持您的公开包、内部库和微服务代码整洁一致。

  • 发布到 crates.io 前统一格式化。
  • 使多位开发者的贡献在视觉上保持一致。
  • 运行大型重构后自动格式化以清理布局。
pub fn add(a: i32,b:i32)->i32{a+b}
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

命令行工具与自动化

格式化简洁、可维护的CLI工具、脚本和开发实用程序。

  • 保持参数解析和错误处理块的可读性。
  • 清理冗长的 `match` 链和选项处理。
  • 确保内部工具随时间推移仍易于扩展。

学习与教授Rust

向学生展示地道的Rust代码,无需在代码风格上争论。

  • 在幻灯片或教程中分享前格式化示例代码。
  • 对比混乱与格式化的Rust代码以教授最佳实践。
  • 在审阅逻辑前自动格式化学生提交的代码。
fn fibonacci(n:u32)->u32{if n<2{n}else{fibonacci(n-1)+fibonacci(n-2)}}
fn fibonacci(n: u32) -> u32 {
    if n < 2 {
        n
    } else {
        fibonacci(n - 1) + fibonacci(n - 2)
    }
}

❓ Frequently Asked Questions

这个Rust格式化工具会改变我的代码行为吗?

目标仅改变布局——缩进、间距和换行——同时保持有效Rust代码的语义不变。一如既往,在大量格式化后仍应运行测试,尤其是在关键代码库中。

📏应如何选择换行长度?

许多Rust团队使用80或100字符作为可读性与紧凑性之间的良好平衡。在此工具中可选择0到120之间的任意值。最重要的是选定一个值并在项目中保持一致使用。

🧹格式化工具会移除尾部空白吗?

是的,典型的rustfmt风格格式化会移除尾部空白并标准化缩进。这能保持差异记录整洁,避免拉取请求中出现不必要的干扰。

🔒在此格式化生产环境Rust代码安全吗?

您的代码会安全地发送至格式化后端,不会被公开或索引。尽管如此,对于高度敏感或专有系统,您可能更倾向于在自有基础设施上运行`rustfmt`或`cargo fmt`。

⚙️这与rustfmt和cargo fmt有何关联?

此在线格式化工具旨在匹配rustfmt的行为,以便您能先预览格式化效果,然后在本地或CI中依赖`cargo fmt`处理完整代码库。将`rustfmt.toml`设置与您在此使用的选项对齐可获得最佳效果。

Pro Tips

Best Practice

在您的crate根目录添加`rustfmt.toml`,使本地`cargo fmt`与此在线格式化工具在宽度和缩进上保持一致。

CI Tip

将此工具与运行`cargo fmt -- --check`的CI任务结合,防止未格式化代码进入主分支。

Best Practice

在大型重构前进行专门的格式化提交(或PR),使后续差异聚焦于实际逻辑变更。

Best Practice

教学和文档中使用较短行宽(80-90字符);若团队偏好,内部工具可稍放宽限制。

Additional Resources

Other Tools