你正在使用哪个版本的Go( go version
)?
$ go version
1.15.5
gopls : 0.5.5
gopls flags: -rpc.trace
这个问题在最新版本中是否会重现?
- 打开git标签为1.18.6的kubernets文件夹,等待gopls服务器完成。
- 切换到1.19.0版本,此时gopls服务器无法获取函数文档,因此回退到使用getdoc。
- 执行"go:重启语言服务器",没有响应并重试。
- 等待一段时间,vscode go扩展报告
The language server is not able to serve any features. Initialization failed: Error: Connection got disposed..
你正在使用什么操作系统和处理器架构( go env
)?
go env
输出
$ go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\xiaoqing\AppData\Local\go-build
set GOENV=C:\Users\xiaoqing\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\git\kubernetes\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\xiaoqing\AppData\Local\Temp\go-build065131578=/tmp/go-build -gno-record-gcc-switches
你做了什么?
在任务管理器中找到很多go.exe进程。
你期望看到什么?
切换到新分支应该重启gopls服务器。
你看到了什么?
gopls停止工作,点击"go:重启语言服务器"后悬停文本不显示任何内容。我可以通过重新加载窗口来解决这个问题。gopls服务器日志如下:
gopls-stop-work-on-checkout-new-branch.txt
vscode设置:
工作区设置:
{
//"go.buildTags": "linux",
"go.toolsEnvVars": {
"GOFLAGS": "-tags=linux -mod=mod"
},
}
用户设置:
{
"files.eol": "\n",
"go.useCodeSnippetsOnFunctionSuggest": true,
"editor.renderWhitespace": "all",
"editor.renderControlCharacters": true,
"files.autoSave": "afterDelay",
"editor.wordWrap": "on",
"go.toolsEnvVars": {
// "GOFLAGS": "-tags=linux"
},
"go.languageServerFlags": [
"-rpc.trace",
],
"go.languageServerExperimentalFeatures": {
"diagnostics": true,
"documentLink": true
},
"workbench.settings.openDefaultSettings": true,
"editor.minimap.enabled": false,
"go.formatTool": "goimports",
"go.useLanguageServer": true,
}
3条答案
按热度按时间bq9c1y661#
我无法复现这个问题,尽管在切换标签时,我确实看到了无效的错误信息。
/cc @hyangah - 这里是否有可能存在一个bug,即在手动重启崩溃后的Go扩展程序后,语言服务器似乎会崩溃?
fdx2calv2#
我明白了:
我会询问语言客户端库的开发人员关于第二个问题 - 为什么清理不完整。我们可以尝试使用一个完全干净的语言客户端重新启动。但是,如果这表明之前的挂起的gopls仍然存在,那也不是理想的情况。
qyzbxkaa3#
https://golang.org/cl/284937提到了这个问题:
internal/lsp: don't show context cancellation in the progress bar