检查是否安装了所有依赖的Go工具。执行
Go: Install/Update Tools
命令。如果希望只是安装指定的工具,查看插件依赖的Go工具,然后手动安装需要的工具。
git pull --ff-only
错误?有可能时因为正在安装的工具库被强制push,删除相关工具在
$GOPATH/src
(如果设置了go.toolsGopath
,相应的路径也需要检查)中的文件夹然后重新安装。
默认情况下,扩展程序会格式化代码并重新组织每个文件中导入的包(添加缺失的包、删除未用的包、重新排序导入包)。可以通过下面的设置来关闭整个功能。
如果没有使用gopls
语言服务器,可以添加"go.formatTools": "gofmt
到设置中来选择一个格式化工具或者禁用导入时格式化功能:
"[go]": {
"editor.formatOnSave": false
}
如果使用gopls
语言服务器,那么重新组织导入的功能在格式化进程之外执行。要在这种情况下禁用整个功能,添加如下的设置:
"[go]": {
"editor.codeActionsOnSave": {
"source.organizeImports": false
}
}
因为此扩展程序使用的格式化工具
goreturns
,goimports
或gofmt
都遵循使用制表符而不是空格的规则。
在VSCode中制表符的默认大小是4,要在每个Go文件中将制表符大小修改为8,那么添加如下配置:
"[go]": {
"editor.tabSize": 8
}
GOPATH
?查看扩展程序中设置GOPATH。
查看VSCode支持Go-Models。
查看VSCode支持Go-Models。
查看VSCode中使用Go语言服务器。
使用快捷键
Ctrl+F5
或者执行Debug: Start without Debugging
命令。
在这种场景下,我们使用go run
指定一个文件路径。因此:
launch.json
文件,请将其更新为使用${file}
而不是${fileDirname}
如果程序属性中没有指定文件路径,那么Start without Debugging
命令将会恢复到正常的调试。
GOPATH
没有被插件使用?为什么程序没有获取在终端中设置的环境变量?扩展程序运行在一个独立的进程中而不是在终端或者VSCode窗口的其他部分。因此在终端中设置的环境变量对于扩展程序时不可见的。
在
View
菜单中选择Output
,将显示输出面板。在此面板的右上角,从下拉列表中选择Log(Extension Host)
。提示:如果在执行特定操作后查找日志,请先清除日志并再次尝试以降低其他日志的干扰。
首先检查日志中的错误。
如果正在使用Go语言服务器,那么上一步中的输出窗口面板的下拉带单中有与一个关于语言服务器的条目,选择并查看它的输出。
如果没有没有使用Go语言服务器,
Go: Build Current Package
命令,这样将会安装所有的依赖,后者手动安装所有的依赖通过命令go install
。gocode close
或者gocode exit
然后再试一次。如果使用Go Modules
,那么使用gocode-gomod
而不是gocode
。Go: Install/Updata Tools
,选择gocode
来更新这些工具。如果使用Go Modules
,那么使用gocode-gomod
而不是gocode
。gocode -s -debug
后立即执行gocode close
或者gocode exit
然后再试一次。gocode
的结果将输出再终端中。如果使用Go Modules
,那么使用gocode-gomod
而不是gocode
。issue
。如果使用Go Modules
在这里中开一个issue
。查看日志(操作见问题12),具体的消息如
"Formatting took too long"
或者Format On Save feature could be aborted
。如果看到此类消息,很大概率因为格式化花太长时间而被中止,这影响到了保存体验。可以设置editor.formatOnSaveTimeout
来控制超时参数。
这些是构建错误,点击
View
->Output
->从面板右上角的下拉菜单中选择go
。然后就可以看到go build
的输出(或者是go test
的输出,如果当前文件时测试文件)。将go build
命令和参数一起拷贝后尝试在终端中运行。如果仍然看到相同的错误,那么问题在于GOPATH
的设置。如果它运行正常,那么提交一个issue
。
查看安装测试版本