Go (Golang) 工具之Golang格式化程序golines | 使用 golines 简洁您的 go 代码

Go (Golang) 工具之Golang格式化程序golines

什么是golines

https://github.com/segmentio/golines

Golines是一个Golang格式化程序,除了由gofmt完成的所有格式修复外,缩短了长行。

动机

标准的 golang 格式工具(gofmt, goimports等)很大,但故意不缩短长行;相反,这是留给开发人员的一项动作。

虽然在谈到行长度方面存在不同的口味,但我们通常发现非常长的行比短行方案更难以阅读。举个例子:

myMap := map[string]string{"first key": "first value", "second key": "second value", "third key": "third value", "fourth key": "fourth value", "fifth key": "fifth value"}

vs.

myMap := map[string]string{
	"first key": "first value",
	"second key": "second value",
	"third key": "third value",
	"fourth key": "fourth value",
	"fifth key": "fifth value",
}

根据他们的偏好,我们构建了 Go开发人员可以选择自动缩短长线的选项。

此博客文章中提供了更多背景和技术细节。

使用 golines 简洁您的 go 代码

首先,安装工具:

go install github.com/segmentio/golines@latest
golines [paths to format]

路径可以是目录或单个文件。如果没有提供路径,则从stdin(与gofmt一样)输入。

默认情况下,结果将打印到stdout。要覆盖现有文件,请使用-w标志。

选项

以下部分描述了一些其他选项。运行golines --help以查看所有可用的flags 和settings。

  • Line length settings
    默认情况下,该工具尝试缩短长于100列的行,并假定1个选项卡= 4列。后者可以分别通过-m和-t标志进行更改。

  • Dry-run mode
    运行工具使用--dry-run, 显示漂亮,git风格的差异。

  • Comment shortening
    缩短的长注释行比缩短代码更难,因为注释可以具有任意结构和格式。Golines包括缩短单行(即// - 前缀)注释的一些基本逻辑,但默认情况下,由于质量不大,因此默认情况下关闭。要启用此功能,请使用–shorten-comments标志运行。

  • Custom formatters
    默认情况下,该工具将使用 goimports作为基本格式器(如果找到),否则它将恢复为gofmt。可以通过--base-formatter标志设置显式格式化程序;这里提供的命令应通过stdin 接受其输入并将其输出写入stdout

  • Generated files
    默认情况下,该工具不会格式化它们生成的文件。如果您想要重新格式化这些,请使用-no-Ignore标志。

  • Chained method splitting
    有几种可能的方法可以分割作为方法链的一部分。golines采取的原始方法是在args上分裂,例如:

myObj.Method(
	arg1,
	arg2,
	arg3,
).AnotherMethod(
	arg1,
	arg2,
).AThirdMethod(
	arg1,
	arg2,
)

从版本0.3.0开始,该工具现在默认拆分在点上,例如:

myObj.Method(arg1, arg2, arg3).
	AnotherMethod(arg1, arg2).
	AThirdMethod(arg1, arg2)

通过使用--no-chain-split-dots标志运行工具可以使用原始行为。

  • Struct tag reformatting

除了缩短长行外,该工具还对齐结构标签键;请参阅_fixtures目录中的之前之后的示例。要关闭此行为,请使用--no-reformat-tags运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值