BoxLang格式化工具介绍
目录
[LOADING...]
你知道这种场景:有人提交了一个PR,结果一半的审查评论都在争论制表符与空格、大括号的位置,或者某个函数的参数格式与其他地方不一致。这些都是噪音,而现在这一切结束了。
BoxLang Formatter 来了,它为你处理所有这些问题。
文档地址:https://boxlang.ortusbooks.com/getting-started/ide-tooling/boxlang-formatter
它是什么?
BoxLang Formatter 是一个内置的代码格式化工具,随 BoxLang 一同发布。它能自动对 .bx、.bxs、.bxm、.cfm、.cfc 和 .cfs 文件强制执行一致的代码风格。
它不是 linter,不会只会抱怨。它修复你的代码,或者在样式出现偏差时让 CI 构建失败。
60 秒快速上手
如果你已经安装了 BoxLang,那么你就已经拥有了这个格式化工具。无需额外安装。
格式化当前目录下的所有文件:
cooooooooooooooooooooooooooooooooode1
就是这么简单。它会递归遍历你的项目,并就地重写所有支持的文件。
想要指定某个路径或文件?
cooooooooooooooooooooooooooooooode2
一次性处理多个路径(v1.14+):
coooooooooooooooooooooooooooooode3
配置你的风格
Formatter 开箱即用,默认设置已经非常合理,但你也可以通过项目根目录下的 .bxformat.json 文件进行自定义。
快速生成一个配置:
coooooooooooooooooooooooooooode4
这会在当前目录下生成一个初始配置。然后,你可以根据需要调整参数。下面是一个最小示例:
coooooooooooooooooooooooooooode5
你可以控制缩进、行长度、大括号风格、结构体/数组格式化、运算符风格、SQL 关键字大小写、导入排序等很多选项。只需覆盖你需要修改的部分,其余都会使用合理的默认值。
在 CI 中锁定规则
这才是真正发挥作用的地方。在质量把关中运行格式化工具的检查模式:
cooooooooooooooooooooooooooode6
- 如果所有文件都已正确格式化,则退出码为
0 - 如果有任何文件存在偏差,则退出码为非零
将其添加到你的 CI 管道中,那些格式混乱的拉取请求将无法合并。一条命令即可,无需额外的 linter。
推荐团队工作流程
- 开发者在推送之前运行
boxlang format - CI 在每个 PR 上运行
boxlang format --check - 未通过检查的 PR 必须重新格式化后才能合并
代码审查中再也不会有样式争论。Formatter 说了算。
在 VS Code 中保存时自动格式化
如果你希望在编码时自动进行格式化,BoxLang 的 LSP 支持实验性的保存时格式化功能。
第 1 步 - 在 .bxlint.json 中启用:
coooooooooooooooooooooooooooode7
第 2 步 - 将以下内容添加到你的 VS Code 的 settings.json 文件中:
coooooooooooooooooooooooooooode8
第 3 步 - 打开命令面板并运行:
BoxLang: Select BoxLang Version(选择最新版本)BoxLang: Select LSP Version(选择最新版本)Developer: Reload Window
保存一个 .bx 文件,它就会被自动格式化。本地快速反馈,CI 强制作为事实来源。
从 cfformat 迁移?
如果你已经在项目中使用 cfformat,迁移只需两步,并且你可以保留现有的样式意图。
第 1 步 - 转换你的配置:
cooooooooooooooooooooooooooooooooode9
这会将你的 .cfformat.json 转换为 .bxformat.json,并保留你的规则不变。
第 2 步 - 使用检查模式验证:
cooooooooooooooooooooooooooooode10
看看哪些内容(如果有)发生了变化。在一个清理提交中运行一次 Formatter,然后在 CI 中启用 --check,就完成了。
其他几个实用选项
预览但不重写文件 —— 将输出重定向到标准输出:
coooooooooooooooooooooooooooooode11
排除目录(v1.14+):
coooooooooooooooooooooooooooooode12
使用自定义配置路径:
cooooooooooooooooooooooooooooode13
总结
不要再把审查时间浪费在样式争论上了。Formatter 会处理这一切——在你的编辑器中、在你的预提交钩子中、在 CI 中。一条命令,一致的输出,从此不再为分号争吵。
快去格式化代码吧:
coooooooooooooooooooooooooooode14
有问题?欢迎在 Community & Support 上联系我们,或者在 BoxLang 仓库 上发起讨论。我们很想知道你是如何使用它的。
本文《BoxLang 格式化工具介绍》最初发布于 foojay。