ALEInfo 显示,目前用 NeoVim 打开 go 代码文件时,默认启用了 4 个 linter:
Enabled Linters: ['gofmt', 'golint', 'gopls', 'govet']
其引起的不便是,同一行代码错误,可能会显示两条错误信息。例如,
composite literal uses unkeyed fields
这一个问题,显示了两行提示:一个 warning,一个 error。推测是启用了两个 go lint 语法检测。
禁用之前,需要先了解各个工具的功能,及区别。
go vet
vet 兽医的意思。。。大概是治疗 go 吉祥物这个大老鼠的吧。。。
go vet starts where the compiler ends by identifying subtle issues in your code. It’s good at catching things where your code is technically valid but probably not working as intended.
例如:
- 检测不可触发的逻辑。例如某个 if 条件不可能走到
- format %s %d 混用的情况
gofmt
没啥好说的,go 内置的代码格式化工具。例如自动处理代码缩进,换行等。方便团队统一代码风格。
golint
用于统一 go 代码规范,规范:
https://golang.org/doc/effective_go.html
https://github.com/golang/go/wiki/CodeReviewComments
例如:
- 变量命名规则
gopls
gopls, 读作 go please 。。。是官方提供的 language server。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式