Kur*_*eek 18 go golint visual-studio-code
我已经在 MacOS 上的 Visual Studio Code 中安装了 Go 扩展(版本 0.11.4):
但是,我发现 linter 不会“拾取”在同一个包中定义的函数,而是在不同的文件中。例如,如果我在同一个目录中的文件创建foo.go
与
package foobar
import "fmt"
func main() {
fmt.Println(SayHello())
}
Run Code Online (Sandbox Code Playgroud)
和文件bar.go
与
package foobar
func SayHello() string {
return "Hello, world!"
}
Run Code Online (Sandbox Code Playgroud)
然后在foo.go
我收到一个 linter 错误SayHello
是undeclared name
:
我在这里(https://github.com/golang/lint/issues/57)读到了一个类似的问题,但由于这个问题已经五年了,我认为它现在可能已经解决了?或者golint
根本不能跨多个文件工作?
Sat*_*ani 34
我遇到了同样的问题。我发现在启用实验性功能“Go 语言服务器”后遇到了这个问题。我在 VS code settings->Go Configuration 中禁用了它,之后问题就消失了。
小智 19
更新 VS Code Go Tool 可能会有所帮助。
Command + Shift + P
->Go: Install/update tools
安装所有工具并重新启动 VS Code。
Han*_*ana 11
自 2019 年以来,该插件发生了很大变化。
gopls
默认用作语言服务器。请注意,2019 年有两种不同的语言服务器,且gopls
仍处于实验模式。golint
已被弃用。如果您仍然遇到类似的问题,则您可能会遇到不同的问题。
请检查以下内容:
go.mod
?否则,初始化您的工作模块并重新启动语言服务器或重新加载窗口。go.mod
文件是否位于您的工作空间的根目录中?有关复杂设置,请参阅gopls
工作区设置指南。"go.buildTags"
或"go.buildFlags"
。staticcheck
、golangci-lint
、 ... 之类的 lint 错误,请检查"go.lintOnSave"
是否设置为正确的范围。如果您发现重新启动语言服务器(“Go:重新启动语言服务器”命令)可以解决您的问题,那么这是一个 gopls 错误。请考虑按照故障排除指南在 github.com/golang/vscode-go 中提交问题。
单个项目 VS 代码
**
避免 VS Code 中的多个项目
**