我正在我的 Go 项目中设置 linting golangci-lint。我有一个由go-bindataVSCode 生成的文件,在“问题”选项卡下列出以下内容: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 以确保注意到更改。
1 回答
侃侃尔雅
TA贡献1801条经验 获得超16个赞
在本地复制后,似乎此消息来自gopls
,因为禁用gopls
会使消息静音。Go 问题跟踪器上有几个相关的投诉/问题:
两者都没有提供实际的解决方案。
但是, repo上的这个问题vscode-go
提供了一种解决方法。在您的 VSCode 配置中,添加gopls.analyses.simplifycompositelit
键,其值为false
:
"gopls": { "analyses": { "simplifycompositelit": false }, }
当然,这会为所有项目禁用它,不仅是生成的文件,而且如果你也在使用golangci-lint
,它可以配置为捕获相同类型的错误,并且可以更精细地配置,这样你就不会了不会错过非生成代码中的同一类错误。
- 1 回答
- 0 关注
- 141 浏览
添加回答
举报
0/150
提交
取消