VSCode 如何找到这个 Go linting Problem 以及如何忽略它?

我正在我的 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 以确保注意到更改。

http://img1.mukewang.com/62de0714000158e012300140.jpg

RISEBY
浏览 142回答 1
1回答

侃侃尔雅

在本地复制后,似乎此消息来自gopls,因为禁用gopls会使消息静音。Go 问题跟踪器上有几个相关的投诉/问题:在生成的文件中隐藏 gofmt -s 诊断(和其他?)不应在生成的代码上发出 lint 样式的警告两者都没有提供实际的解决方案。但是, repo上的这个问题vscode-go提供了一种解决方法。在您的 VSCode 配置中,添加gopls.analyses.simplifycompositelit键,其值为false:    "gopls": {         "analyses": {             "simplifycompositelit": false         },     }当然,这会为所有项目禁用它,不仅是生成的文件,而且如果你也在使用golangci-lint,它可以配置为捕获相同类型的错误,并且可以更精细地配置,这样你就不会了不会错过非生成代码中的同一类错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go