百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

prettyplease

> 编程语言
开源

一个最小的 `syn` 语法树美化器

774 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

一个最小的 `syn` 语法树美化器

prettyplease::unparse

一个最小的 syn 语法树美化器。

概述

这是一个格式化器,用于将 syn 语法树转换为 String 格式化的源代码。与 rustfmt 不同,此库的目的是 适用于任意生成的代码。

Rustfmt 优先考虑高质量的输出,这种输出足够完美,您可以舒适地花费大量时间观看其输出 - 但这意味着需要一些重量级的算法,而且它倾向于放弃难以格式化的代码(例如 [rustfmt#3697],还有数十个类似的问题)。对于人类生成的代码来说,这并不一定是个大问题,因为当代码高度嵌套时,人类自然会倾向于重构为更容易格式化的代码。但是对于生成的代码,如果格式化器放弃,则代码将完全不可读。

此库使用最简单的算法和数据结构来实现,可以提供与 rustfmt 格式化输出的质量相差 95% 的输出。通过在实际代码中进行测试,我发现大约 97-98% 的输出行在 rustfmt 的格式化和此 crate 中是相同的。其余部分的行分割决策略略有不同,但仍然明确遵循主流的现代 Rust 格式。

这个 crate 所做的权衡非常适合生成的代码,你不会花费你的整个职业生涯来仔细阅读这些代码。例如,bindgen 的输出,或者 cargo-expand 的输出。在这种情况下,重要的是整个代码能够被格式化,而不需要格式化器放弃,而不是要求它是完美的。

[rustfmt#3697]: https://github.com/rust-lang/rustfmt/issues/3697

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言