vscode 没有检测到 golang 错误

Use*_*645 2 go visual-studio-code

我的 vscode 没有检测到 golang 中的错误。

例子:

package somepackage

import "fmt"

func f(name string) string {
    name = 1
    return name
}
Run Code Online (Sandbox Code Playgroud)

这应该会引发类型错误,但事实并非如此。我从来没有收到任何错误。

我的settings.json包含

"go.gopath": "some/path", 
"go.vetOnSave": "package",
"go.lintOnSave": "package",
"go.testOnSave": true,
"go.buildOnSave": "package",
"go.coverOnSave": true 
Run Code Online (Sandbox Code Playgroud)

我能够跑了go: install/update Tools。所有工具均已成功安装。

我还可以在 vscode 中运行调试 .go 文件。

Use*_*645 6

正如@pwaterz 指出的,我的问题的解决方案是添加"go.goroot: /some/other/path".

vscode 无法检测错误的原因是,我的电脑上有不同的 go 版本。添加goroot并运行go: install/update Tools解决了问题。

---- 编辑:多个 go 版本 ----

我的 Mac 上有多个相互冲突的 go 版本,通过 brew 引入。修复了重新安装的问题。

  • 卸载go并运行brew uninstall go
  • 重新安装去
  • 在您的或类似的环境变量中设置环境变量.bash_profile。比较一下这里
  • 通过运行例如将更改应用到您的个人资料source .bash_profile
  • 重启VSCode
  • settings.json集合中"go.goroot": "/usr/local/go"
  • 运行go: Toggle workspace trust space以确保settings.json应用更改(您必须信任您的工作区)
  • go: Install/update tools并选择全部

---- 编辑:根文件夹不正确 ----

确保打开项目的根文件夹而不是项目的子文件夹。否则可能会导致无效的导入路径

---- 编辑:语言服务器损坏 ----