VSCODE开发GO指北 - 附带个人settings.json

3,197 阅读4分钟

文章主要介绍如何配置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的校验规则以及开关,可根据需要进行关闭

原创-首发公司内网

下期预告 - 定制适合自己的快捷键