为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
RISEBY 2022-07-25 10:55:34
我正在我的 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,它可以配置为捕获相同类型的错误,并且可以更精细地配置,这样你就不会了不会错过非生成代码中的同一类错误。


查看完整回答
反对 回复 2022-07-25
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信