zoukankan      html  css  js  c++  java
  • vscode golang配置说明

    一、vscode-go插件安装

    1. go 1.10.2 https://golang.org/dl/ 需要墙
    2. vscode 1.23.1 https://code.visualstudio.com/
    3. vs插件安装

    二、vscode-go 配置

    1. settins.json 基本上不需要配置,用默认值就可以了。如需调整 文件 -->首选项 -->设置 输入go即可查看go相关配置
    {
        "git.ignoreLimitWarning": true,
        //开启自动保存
        "files.autoSave": "onFocusChange",
        "go.buildFlags": [],
        "go.lintFlags": [],
        "go.useCodeSnippetsOnFunctionSuggest": false,
        "[go]": {
            "editor.insertSpaces": false,
            "editor.formatOnSave": true
        },
        "go.formatTool": "goreturns",
        "go.goroot": "C:\Go",
        "go.gopath": "D:\GoPath"
    }
    
    1. launch.json配置,文件 -->打开文件 -->(选择GOPATH文件夹)
    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "Launch",
                "type": "go",
                "request": "launch",
                "mode": "debug",
                "remotePath": "",
                //"port": 2345, 
                //"host": "127.0.0.1",
                "program": "${fileDirname}", //workspaceRoot
                "env": {},
                "args": [],
                "showLog": true
            }
        ]
    }
    

    三、组件&工具安装前期准备工作

    由于要安装的组件大量引用了golang.org官方原生的一些代码(特别是tools/lint),因此引用代码不存在的话会导致第三方的源代码编译不通过,且大量报错
    directory "D:GoPathsrcgolang.orgx oolsgouildutil" is not using a known version control system 等等...
    golang.org官方源码列表 & 对应的github.com映射关系,可视情况安装:

    github.com golang.org 源码大小 是否必须
    git@github.com:golang/lint.git golang.org/x/lint 470kb Y
    git@github.com:golang/tools.git golang.org/x/tools 21.4mb Y
    git@github.com:golang/sys.git golang.org/x/sys 8.74mb Y
    git@github.com:golang/text.git golang.org/x/text 46.9mb -
    git@github.com:golang/net.git golang.org/x/net 12.6mb -
    git@github.com:golang/tour.git golang.org/x/tour 12.6mb -

    Tips:先检查下 %GoPath%srcgolang.orgx 文件夹下的tools/lint等是否是从github获取的最新版本,若文件夹不存在自己创建
    (注意一定要是git clone,而不是下载zip解压),正确如下图所示


    关于golang包管理机制,另一篇文章 window下golang包管理glide使用说明也是解决类似问题。go官方也许会在go2.0的版本解决

    四、正式开始安装组件&工具

    官方文档说明 https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-extension-depends-on
    vscode也可以通过ctrl+shift+p 运行命令一次性安装所有这些工具

    Go: Install/Update Tools
    


    组件安装过程稍微有一点慢,耐心的等待...

    安装的组件 默认安装状态 组件备注 github.com->golang.org
    go get -u -v github.com/nsf/gocode SUCCEEDED 自动补全
    go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs SUCCEEDED 自动补全未导入的包
    go get -u -v github.com/ramya-rao-a/go-outline SUCCEEDED 当前文件中按符号搜索 https://github.com/golang/tools
    go get -u -v github.com/acroca/go-symbols SUCCEEDED 当前workspace中按符号搜索
    go get -u -v golang.org/x/tools/cmd/guru SUCCEEDED 查找所有引用组件
    go get -u -v golang.org/x/tools/cmd/gorename SUCCEEDED 重命名符号
    go get -u -v github.com/fatih/gomodifytags SUCCEEDED 修改结构上的标签
    go get -u -v github.com/haya14busa/goplay/cmd/goplay SUCCEEDED for running current file in the Go playground
    go get -u -v github.com/josharian/impl SUCCEEDED for generating stubs for interfaces
    go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct SUCCEEDED for filling a struct literal with default values
    go get -u -v github.com/rogpeppe/godef SUCCEEDED 转到定义2
    go get -u -v golang.org/x/tools/cmd/godoc SUCCEEDED 鼠标悬停显示文档注释2
    go get -u -v sourcegraph.com/sqs/goreturns SUCCEEDED 格式化代码2
    go get -u -v github.com/golang/lint/golint SUCCEEDED for linting https://github.com/golang/lint
    go get -u -v github.com/cweill/gotests/... SUCCEEDED 生成单元测试
    go get -u -v github.com/derekparker/delve/cmd/dlv SUCCEEDED 调试
    go get -u -v github.com/zmb3/gogetdoc 转到定义2/鼠标悬停显示注释2
    go get -u -v golang.org/x/tools/cmd/goimports 格式化代码2

    经过步骤三的tools和lint的clone后安装正常都应该是SUCCEEDED,且不需要墙,如遇个别安装FAILED 再单独执行go get ...,看还缺少什么在http://github.com/golang 中找到相应的组件按同样的方法clone在golang.org/x文件夹下
    TIPS:go版本和组件全部都重新安装一遍后也能解决vscode 运行go卡的问题,具体原因不详,建议go版本更新后最好都重新安装下组件。
    之前一直嫌弃vscode运行go卡而用liteide。重新开始用vscode主要原因: 1、颜值高 2、vscode已成为了非常流行的IDE

    五、 cannot find package错误


    检查go环境变量配置,新安装的go1.10.2的版本默认会在当前用户新增一个GOPATH导致冲突无法编译,删除即可

    六、 调试/生成

    1. vscode打开main.go直接F5就可以运行&调试
    2. 生成exe,vscode F5运行会在根路径下生成一个debug文件,把debug文件重命名加.exe后缀可以直接当应用程序运行
      另一种方式cmd切换到项目文件夹下用
    go build -o demo.exe main.go 
    

    意思是main.go生成名为demo.exe应用程序,go build生成的exe实际比debug要小

  • 相关阅读:
    HDS推出HUS中端阵列 文件、块和对象统一存储
    Volume Shadow Copy Service(VSS)如何工作
    vmware备份
    vdp介绍
    DFS研究
    重设域管理员密码-window server 2008 R2
    Using LACP with a vSphere Distributed Switch 5.1
    To LACP or not to LACP (on a 5.1 vDS)
    iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redundancy
    Multipathing for Software iSCSI
  • 原文地址:https://www.cnblogs.com/nickchou/p/9038114.html
Copyright © 2011-2022 走看看