问题阐述
最近在Github上提交PR后,遇到了这么一个问题:golangci-lint
运行失败,具体原因是File is not gofumpt-ed (gofumpt)
。
名词解释
golangci-lint: golangci-lint
是Go语言社区中常用的代码质量检查工具,它可以帮助开发者发现代码中的潜在问题和不规范之处。它集成了多种代码检查工具,用于检查代码风格、静态分析、性能问题等。
可以在本地使用该工具,会输出当前项目的警告与错误等。
//前提确保`GOPATH/bin`在path环境变量里
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
golangci-lint run
gofumpt: gofumpt
是一个用于格式化Go代码的工具,它是 gofmt
的替代品。gofmt
是Go语言官方提供的代码格式化工具,而 gofumpt
是在 gofmt
基础上进行改进的,旨在强制执行一种更加一致和规范的代码风格。
//前提确保`GOPATH/bin`在path环境变量里
go install mvdan.cc/gofumpt@latest
gofumpt -w your_file.go
在我的情况下,出现了File is not gofumpt-ed
的错误,意味着提交中的某个文件不符合 gofumpt
规定的代码格式。这可能是因为代码中的一些排版问题,例如缩进、空格、换行等方面不符合规范。为了通过代码审查,需要对这些文件进行格式化,使其符合 gofumpt
的规范。
解决办法
从我提供的截图可以看到:Check failure on line 20 in object/get-dashboard.go
。说明是get-dashboard.go
这个文件20行有问题。只需要cd
到有问题的go
文件目录,执行命令:gofumpt -w get-dashboard.go
。这样gofumpt
工具就会自动帮我们格式化代码。格式化的结果就是将部分多余的换行删了,也就是删掉第20行。然后我重新commit
代码,发现golangci-lint
就可以通过了。