文章主要介绍如何配置vscode开发Go
前言:
Go作为一门新贵语言,最好的开发工具无疑是JB公司的Goland,但是随着新版本的认证校验不断升级,在需要激活时的时间成本越来越高,同时和我使用WSL作为开发环境的匹配度比较低。
综合考虑选择了vscode作为主要开发工具。vscode能作为Go的开发工具它的基本是使用vscode提供的一项名为language server的统一API,go官方为此开发了专用的插件,实现了代码提示,以及json tag、自动导包、代码提示等常用功能。功能大部分需要使用快捷键完成,但是并不影响使用。
切换开发工具需要时间成本适应。我在适应之后的开发效率并没有受到影响,而且配置可以上传云端,可以做到一次配置, 到处使用,下面开始进行如何配置
1、首先下载Vscode:
https://az764295.vo.msecnd.net/stable/dfd34e8260c270da74b5c2d86d61aee4b6d56977/VSCodeUserSetup-x64-1.66.2.exe
版本可能已经不是最新的,可自行去官网下载,
如果下载速度缓慢,可以替换下载链接的前缀为上面链接中的前缀,
下载后自行进行安装
2、安装Golang
vscode相关的Go插件需要安装Golang,且Golang版本要高于1.14,推荐1.17
3、设置GOPROXY
设置这个环境变量可以帮助我们快速拉取一些需要代理的包
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
4、安装Go插件
安装搜索出来的第一个插件,注意开发者是Go Team at Google
插件Go和 Go Nightly 都是官方维护的, Go Nightly为预览版
5、安装插件支持
有两种方式:
1、安装插件后,vscode会提示安装插件支持
2、ctrl + shift + p 打开快速操作面板,输入 Go:install/update tool
选择全部插件进行安装,此时会弹出一个终端框,等待安装完成
Tips:
如果是在wsl中安装,dlv插件会提示缺少gcc,按照提示我们需要安装gcc工具包,安装后再次进行
Go:intall操作,选中进行安装即可,可以每次都选中全部插件进行安装,不会对环境有影响,
安装的都是二进制包,安装路径在gopath路径下
到此插件安装完毕,如果是从Goland转过来,vscode还提供了idea的keymap
同时建议安装中文扩展、Gitlens
下面附上我额外配置的setting配置:
{
// JetBrains Mono是JB提供的免费字体,可以做到和Goland字体一致,需要下载安装
"editor.fontFamily": "'JetBrains Mono', Consolas, 'Courier New', monospace",
"go.formatTool": "gofmt", // go格式化工具
"go.lintFlags": [ // 提示等级
"-min_confidence=.8"
],
// 检查工具,默认staticcheck
"go.lintTool": "staticcheck",
// go language service设置
"gopls": {
// 点击import添跳转到目录,默认是跳转到浏览器中去打开pkg.go.dev中的官方文档
"ui.navigation.importShortcut": "Definition",
// 关闭鼠标悬浮在方法上面出现的pkg.go.dev的链接跳转提示
"ui.documentation.linksInHover": false
},
// 输入提示上下文
// https://github.com/golang/vscode-go/blob/master/docs/settings.md#uidiagnosticanalyses
"go.editorContextMenuCommands": {
"toggleTestFile": true,
"addTags": true,
"removeTags": false,
"fillStruct": true,
"testAtCursor": true,
"testFile": false,
"testPackage": false,
"generateTestForFunction": true,
"generateTestForFile": false,
"generateTestForPackage": false,
"addImport": true,
"testCoverage": true,
"playground": true,
"debugTestAtCursor": true,
"benchmarkAtCursor": false
},
// go结构体tag设置,
"go.addTags": {
"tags": "json",
"options": "", // 项目中不需要omitempty属性可以设置为空 default "json=omitempty"
"promptForTags": false,
"transform": "camelcase", // Options: snakecase, camelcase, lispcase, pascalcase, keep
"template": ""
},
// git设置,vscode中设置中文后,鼠标悬浮会有中文提示
"git.untrackedChanges": "separate",
"git.alwaysShowStagedChangesResourceGroup": true,
// 工作区颜色设置,可自定义主题,此处的配置优先级为最高,切换主题不会改变这里的配置
"workbench.colorCustomizations": {
// "statusBar.background": "#909399",
// "panel.background": "#909399",
// "sideBar.background": "#444444",
// "editor.background": "#444444",
// "activityBar.background": "#EBEEF5",
// "menu.background": "#504f4f",
// "editor.selectionHighlightBackground": "#CD5C5C"
// 鼠标选择的文字的颜色
"editor.selectionHighlightBackground": "#f49687",
// ctrl + f 时的搜索时选中的文字颜色
"editor.findMatchBackground": "#f49687"
},
}
Q:为什么代码在Goland不警告,vscode反而警告
A:vscode-go/settings.md at master · golang/vscode-go (github.com)
vscode和goland的校验严格度实际的区别在这里,goland不会报错的代码,部分会在vscode
中提示警告,此处的表格介绍了vscode的校验规则以及开关,可根据需要进行关闭
原创-首发公司内网
下期预告 - 定制适合自己的快捷键