#formatter #linter #parser

biome_formatter

Biome的格式化共享基础设施

7 个版本 (4 个重大变更)

0.5.7 2024年3月12日
0.5.5 2024年3月12日
0.4.0 2024年1月9日
0.3.1 2023年11月26日
0.0.2 2023年9月28日

#39 in #linter

Download history 44/week @ 2024-05-04 63/week @ 2024-05-11 164/week @ 2024-05-18 260/week @ 2024-05-25 275/week @ 2024-06-01 164/week @ 2024-06-08 48/week @ 2024-06-15 48/week @ 2024-06-22 26/week @ 2024-06-29 61/week @ 2024-07-06 173/week @ 2024-07-13 2489/week @ 2024-07-20 3082/week @ 2024-07-27 2780/week @ 2024-08-03 1604/week @ 2024-08-10 1418/week @ 2024-08-17

9,227 每月下载量
4 crates 中使用

MIT/Apache

1.5MB
27K SLoC

Biome - Toolchain of the web

Discord chat CI cargo version

biome_formatter

Biome的格式化实现。遵循 文档


lib.rs:

代码格式化基础设施

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

格式化特性

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

格式化宏

此crate定义了两个宏来构建IR。这些宏灵感来源于Rust的 fmt

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

依赖关系

~9–19MB
~242K SLoC