文章目录
我的情况
操作系统:windows10
vscode:自动更新(一直保持最新版本)
关于vscode
这个编译器就不用过多介绍了,毕竟只是一个编译器而已。可能是我用习惯了,所以一直在折腾。
关键的存储路径
C:\Users\你电脑的用户名\.vscode\extensions
这个目录是存储这vscode插件的。C:\Users\你电脑的用户名\AppData\Roaming\Code\User
这个目录是存储着vscode配置的。
关于配置
在我的go开发环境中有介绍,但是这里还是再次把我怎么配置的思路说一下。
- 安装好vscode之后,先安装中文插件,然后安装go的开发插件(搜索一个go关键字就行)如图:
- 搞好了就直接打开配置(打开方法:
文件👉首选项👉设置👉界面右上角(打开设置(json)),[或者快捷方式:ctrl+逗号]
如图: - 附上我自己研究过的配置内容:
{
// 应用程序路径配置
"go.gopath":"C:/Users/你电脑的用户名/go", // 其实gopath随意,自己定义一个纯字母的路径和文件夹就行。
"go.goroot":"D:/Go",
"git.path": "D:/Program Files/Git/bin/git.exe",
"terminal.integrated.shell.windows": "C:/Windows/System32/cmd.exe",
// 不知道是什么的配置
"window.zoomLevel": 0,
"workbench.statusBar.visible": true,
"workbench.iconTheme": "vscode-icons",
"editor.multiCursorModifier": "alt",
"editor.columnSelection": false,
// go插件配置项
"go.formatTool": "goimports",
"go.useLanguageServer": true, //这个是开启gopls工具的 *重点
"go.docsTool": "gogetdoc", // 这个是代码提示的 *重点
"editor.wordWrap": "on",
"editor.minimap.renderCharacters": false,
"editor.minimap.enabled": false,
"terminal.external.osxExec": "iTerm.app",
"go.testFlags": ["-v","-count=1"],
"go.buildTags": "",
"go.lintFlags": [],
"go.vetFlags": [],
"go.coverOnSave": false,
"go.useCodeSnippetsOnFunctionSuggest": false,
"go.autocompleteUnimportedPackages": true,
"go.formatOnSave": true,
"debug.console.fontSize": 16,
"debug.console.lineHeight": 30,
"explorer.confirmDelete": false,
"[go]": {},
"files.autoSave": "off"
}
go语言环境配置的来历
上面的配置,都是有依据的。先打开插件的扩展设置,看图:
然后看里面的内容,如图:
蓝蓝的地方说明是有更改,并不是默认配置,那么它的配置在哪里呢?我们随意选择一个配置项,点解将设置复制为json文本
找个记事本黏贴出来。"go.docsTool": "gogetdoc"
这里我的设置是gogetdoc。然后再点击在settings.json中编辑
按钮,如图:
打开的配置就是我们刚刚看到的vscode的全局配置文件了。再找我们刚刚复制出来的配置对比一下。 此时你再将值从gogetdoc改成别的。再看vscode的全局配置,是否已经改变。
配置的重点
这里说一下的是,如果配置没有那就说明该插件并不会下载对应的go工具。
例子
拿刚刚的Docs Tool设置来做例子吧,里面选项支持三个,默认的是:godoc
、扩展的有:gogetdoc
、guru
,一共就是三个工具。如果你不选的话默认会给你下载godoc这个工具,下载并编译放在gopath的bin目录下。如果你选择gogetdoc就会下载这个工具。
有些配置并不提供默认选项,那就说明vscode不会下载。你要看看这里有什么配置,都是干嘛的,再设置。当然直接黏贴我的配置也就可以了。
vscode的问题
代码提醒问题总结。
- go插件配置存在问题。
- mod包管理问题。
- 插件安装的工具gopls4.0版本问题(在cmd下gopls version可以看该工具版本)。
不需要重装vscode的解决方法:
第一,把全局配置按照我上面给出的粘贴进去。
第二,然后打开工作区的配置,
刷上(“go.docsTool”: “gogetdoc”, “go.useLanguageServer”: true,两个配置。【其实不配置也行,让它空着默认应该也是可以的。】),如图:
第三,把第三方的包,添加到工作区中。重点
举个例子:
我在C盘新建一个test项目,文件夹里面有main.go和go.mod两个文件。
那么我添加到工作区去的话只能直接添加这个test文件夹,而不能添加test上层的文件夹。
不然会出现代码无法提示或者某些项目可以提示,某些不行的情况。这个我问了gopls开发者,给我的答复。
作者说会在5.0版本尽量修复这个问题。
重装的解决办法:
如果你选择一次性解决,想重装vscode的话,建议把所有相关的配置记录全部都删除干净,再重新安装并重新部署。
了解完原理后,和经过我的测试后,其实不重装也可以解决这个问题。
- 先安装vscode。
- 安装中文插件。
- 安装go插件。
- 调试设置。(用户和工作区)
- 写一下代码让vscode提醒下载go的工具。
- 真正项目都添加到工作区来进行开发。
下图是我之前遇到的问题,估计就是没有把项目直接作为顶层文件夹添加到工作区中出现的问题。也就是gopls这个工具的bug吧。
mod模式问题
在此提醒一下,如果使用vscode进行go语言开发,必须要百分百满足go的规范,不然就会不进行代码提醒等等工作。
请注意我的开发项目,mytest的目录结构:
满足要求:
- main.go在vscode工作区中,必须是首目录导入。
- 在main的mod文件中,必须导入所有模块。
不满足的话,不会提醒,且不会报错。
我猜测,goland为什么比vscode好的原因是,go工程都自动化完成了,不需要你了解。所以有人会觉得vscode并不好用