跳转到内容

格式化选项理念

💡 Biome 遵循与 Prettier 相同的选项理念。现有的格式化选项集被认为是稳定的,并且不太可能考虑新选项。

本文档解释了 Biome 如何以及为何达到今天的水平的一些历史,以及对未来的展望。

Biome 是一种有主见的格式化工具。在理想世界中,这意味着 Biome 假定只有一种正确的格式化方式,并将始终执行这种风格。无论项目如何,无论设置如何,Biome 格式化的代码看起来总是一样的。从另一个角度看,Biome 是自己的自动样式指南,而不是实施其他样式指南的工具。

对格式有如此强烈的意见似乎有些强人所难,但采用后的好处很快就会显现出来。所有关于空格应放在哪里、一行是否应该断开、一行是否应该缩进等问题的讨论都会烟消云散琐碎的讨论不再干扰人们对重要内容的关注。代码审查不再需要重新格式化请求和循环辩论。所需要的只是相信 Biome 会尽力干净、清晰和一致地格式化代码。

除了单个团队和组织内部的益处外,在整个网络生态系统中采用一致的格式化器也会让每个人受益,这样在项目间移动时就更容易保持熟悉感,也能帮助新人不受干扰地更直观地学习和识别模式。

在当今的 Web 生态系统中,Prettier 是迄今为止最流行的代码格式化程序,而且它也非常固执己见,对添加选项有着严格的理念。 Biome 的目标是在很大程度上兼容 Prettier,因此采纳了 Prettier 所实现的许多观点,配置项也不例外。

Biome 很自豪能与 Prettier 实现如此高的兼容性,并尽可能减少用户的迁移路径,但这也有类似的注意事项。

Biome 从严格的配置选项子集开始,针对 JavaScript 生态系统中最常见和最有争议的样式指南:缩进样式(制表符与空格)、缩进宽度(2 个空格等于一个制表符还是 4 个?)以及强制分号。为这些点添加选项被认为足以满足大多数人的需求,并且没有强烈考虑添加任何其他选项。

依靠 Prettier 选项理念,Biome 有机会从头开始,避免 Prettier 因其他现有选项,例如 --bracket-same-line--arrow-parens 而陷入困境:

…[这些]并不是我们乐见的选择类型。它们在团队中造成了大量的自行车损耗,我们对此深表遗憾。这些选项现在很难取消,但它们是历史遗留问题,不应成为增加更多选项的动力(“既然有这些选项,为什么这个不能?)

然而,当 Prettier 挑战赛宣布后,Biome 决定接受挑战,这就需要实施 Prettier 的所有配置选项,以实现完全兼容。

Biome 仍赞同 Prettier 关于这些选项的理念,并认为它们是用于兼容性的传统功能,而不是基准功能集。这些选项的存在并不表明将添加更多选项,也不应作为支持未来存在其他选项的理由。

与 Prettier 一样,Biome 认为当前的选项集是稳定的、足够的,不允许添加或进行其他更改。对于增加配置选项的请求,Biome 可能不会考虑,也可能不经讨论就关闭。

尽管如此,尽管 Biome 已成为一款功能强大的格式化工具,但它仍然是一款相对较新的工具,这意味着有很多机会为新的进步和想法铺平道路,否则这些想法可能看起来并不可行。

Biome 的格式风格也相对稳定,尽可能与 Prettier 保持一致,很少有意偏离。我们可能会考虑并实施对 Biome 风格的修改。不过,这些改动也不太可能成为可配置选项,而是将普遍应用于 Biome 的所有未来版本。