#format #formatter #rome #formatted #formatting #print #document

rome_formatter

Rome 格式化器共享基础设施

2 个版本

0.0.1 2023年4月6日
0.0.0 2022年1月26日

#9#rome

21 每月下载量
用于 2 crates

MIT 许可证

1MB
19K SLoC

代码格式化基础设施

此模块定义了 [FormatElement],一个用于格式化代码文档的 IR,并提供了一种将此类文档打印到字符串中的方法。能够格式化自身的对象实现 [Format] 特性。

格式化特性

  • [Format]: 由可格式化的对象实现。
  • [FormatRule]: 知道如何格式化另一种类型对象的规则。在需要在对另一个 crate 的对象实现 [Format] 时是必要的。此模块定义了 [FormatRefWithRule] 和 [FormatOwnedWithRule] 结构体,用于传递带有相应规则的项。
  • [FormatWithRule] 由知道如何格式化另一种类型的对象实现。当类型本身没有实现 [Format] 时,在模块内部实现一些可重用的格式化逻辑很有用。

格式化宏

此 crate 定义了两个宏来构建 IR。这些宏是受 Rust 的 fmt 宏启发的

  • format!: 格式化一个可格式化的对象
  • format_args!: 连接一系列 Format 对象。
  • write!: 将一系列可格式化的对象写入输出缓冲区。

依赖关系

~9–18MB
~225K SLoC