Ohhnews

分类导航

$ cd ..
foojay原文

BoxLang格式化工具介绍

#boxlang#代码格式化#开发工具#ci/cd#vs code

目录

[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