x/tools/gopls: 添加一个选项,用于抑制或减少go.mod诊断的详细程度,

7d7tgy0s  于 6个月前  发布在  Go
关注(0)|答案(6)|浏览(72)

我们有一个故意在go.mod中引入未使用的依赖项的项目(例如,由于构建时通过bazel生成的代码)。VSCode显示了以下问题的长列表。
我已经尝试了这里的建议:
microsoft/vscode-go#3181

"[go.mod]": {
        "editor.codeLens": false
    }

以及:

"ui.codelenses": {
      "gc_details": false,
      "regenerate_cgo": false,
      "generate": false,
      "test": false,
      "tidy": false,
      "upgrade_dependency": false,
      "vendor": false,
    },

但它仍然显示警告/错误:

33qvvth1

33qvvth11#

我认为正确的前进方向可能是允许禁用gopls的modfile诊断(或至少控制详细程度),而不是在modfile中使用仅由gopls使用的语法。
通常,我们尽量避免对仅用于与单个工具集成的源代码进行任何更改。

piok6c0g

piok6c0g2#

忽略特定警告会非常好。

2o7dmzc5

2o7dmzc53#

+1 非常感谢提供一种禁用 mod tidy 的方法,或者通过环境变量指定 -compat=... 的方法。

mznpcxlj

mznpcxlj4#

我们目前正在从gopls(很差)中修补这种行为,并希望有一种一流的方法来完全禁用所有modfile诊断。外部工具管理我们的go.mod / go.sum和vendor tree -我们需要gopls信任它们并远离它们。大型企业单仓库设置。

ff29svar

ff29svar5#

+1 希望能找到一种禁用 mod tidy 的方法,或者通过环境变量指定 -compat=...
在我的 ~/.zshrc、~/.bashrc 和 /etc/bashrc 等文件中添加此功能。
它在我 MBP 上运行正常

function go {
    if [[ $1 == "mod" && $2 == "tidy" ]]; then
        command go mod tidy -compat=1.17 "${@:3}"
    else
        command go "$@"
    fi
}

尽管 gopls 仍然自动抛出错误,但从可用性(gopls 格式化和导入)的Angular 来看,没有问题。

nlejzf6q

nlejzf6q6#

你看到的警告/错误来自gopls诊断功能。目前无法禁用go mod tidy诊断功能。将其保留为功能请求。

相关问题