【发布时间】:2021-04-05 15:11:51
【问题描述】:
我在我的 Go 项目中使用 golangci-lint 设置 linting。我有一个由go-bindata 生成的文件,VSCode 在“问题”选项卡下列出了以下内容:
assets/assets.go:来自数组、切片或映射复合字面量的冗余类型(simplifycompositelit)
我似乎无法摆脱它。这不是编译器错误,我会不时重新运行go-bindata,所以我不想养成修改生成代码的习惯。
目前,通过以下配置,我无法让 VSCode 停止报告此错误。如果我在工作区的根目录中运行golangci-lint run ./...,我将不会得到任何输出。如果需要,我可以提供我的 linting 配置,但 VSCode 似乎正在运行其他东西。如何确定报告此错误的原因以及如何使其停止报告此工作区中文件 assets/assets.go 的任何内容?
这里是 Go 相关的 vscode 设置:
{
"go.formatTool": "gofmt",
"go.lintTool": "golangci-lint",
"go.liveErrors": {
"enabled": true,
"delay": 500
},
"go.lintOnSave": "workspace",
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"go.useLanguageServer": true,
"go.languageServerExperimentalFeatures": {
"diagnostics": true,
"documentLink": true
},
}
这是有问题的行,即使带有 nolint 注释以表明它的行为不符合预期。如果是 golangci-lint 输出这个,则 nolint 会阻止显示警告。我重新加载了窗口并关闭/重新打开 vscode 以确保注意到更改。
【问题讨论】:
-
我正在运行
go-bindata -o assets/assets.go -pkg assets -debug -prefix embedded/ embedded/,在 go:generate 中使用最新的 go-bindata 来构建文件。看来您必须至少包含一个文件才能生成 linting 错误。这就是神秘 linter 抱怨的代码。 -
您使用的是哪个
go-bindata叉子?有很多,略有不同。 -
github.com/go-bindata/go-bindata
标签: go visual-studio-code static-analysis