go - vscode 不检测错误 golang

标签 go visual-studio-code

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

示例:

package somepackage

import "fmt"

func f(name string) string {
    name = 1
    return name
}

这应该会引发类型错误,但实际上并没有。我从来没有得到任何错误。

我的 settings.json 包含

"go.gopath": "some/path", 
"go.vetOnSave": "package",
"go.lintOnSave": "package",
"go.testOnSave": true,
"go.buildOnSave": "package",
"go.coverOnSave": true 

我能够运行 go: install/update Tools。所有工具安装成功。

我还能够在 vscode 中运行调试 .go 文件。

最佳答案

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

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

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

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

  • Uninstall go并运行 brew uninstall go
  • Reinstall go
  • 在您的 .bash_profile 或类似文件中设置环境变量。比较 here .
  • 通过运行例如将更改应用于您的个人资料源.bash_profile
  • 重启 VSCode
  • settings.json 中设置 "go.goroot": "/usr/local/go"
  • 运行 go: Toggle workspace trust space 以确保应用对 settings.json 的更改(为此您必须信任您的工作空间)
  • Go:安装/更新工具并全选

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

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

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

关于go - vscode 不检测错误 golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578280/

相关文章:

google-app-engine - 在 Go 中合并独立的 webapp 和 GAE

go - 模板.执行(): invalid memory address or nil pointer dereference

node.js - 可视化代码和 node_modules 中的 typescript

.NET Core 发布 appsettings.json

javascript - 安装后将 Electron 应用程序路径添加到用户环境变量

if-statement - Golang 模板变量 isset

c++ - Go 的多值返回语句是异常的替代方案吗?

google-app-engine - 演示项目中的appengine云存储编译错误

visual-studio-code - VS代码: “~$ code file” opens new window instead tab

debugging - VSCode debug 在调试 Rust 库时,所有断点都显示 "Locations: 0"