vscode golang配置说明
一、vscode-go插件安装
- go 1.10.2 https://golang.org/dl/ 需要墙
- vscode 1.23.1 https://code.visualstudio.com/
- vs插件安装
二、vscode-go 配置
- 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"
}
- 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:\GoPath\src\golang.org\x\tools\go\buildutil" 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%\src\golang.org\x 文件夹下的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导致冲突无法编译,删除即可
六、 调试/生成
- vscode打开main.go直接F5就可以运行&调试
- 生成exe,vscode F5运行会在根路径下生成一个debug文件,把debug文件重命名加.exe后缀可以直接当应用程序运行
另一种方式cmd切换到项目文件夹下用
go build -o demo.exe main.go
意思是main.go生成名为demo.exe应用程序,go build生成的exe实际比debug要小
vscode golang配置说明的更多相关文章
- vscode golang插件下载
此处是windows,linux操作类似 进行如下命令进行目录切换:cd %GOPATH%\src\github.com\golang我这里的GOPATH是在D:\go_project如果src目录下 ...
- #dokcer部署code-server web版vscode+golang
codercom/code-server:latest不支持插件在线安装 codercom/code-server:v2目前为最新版1. #创建 docker rm -f vscode docker ...
- vscode中文配置说明
1.官网下载vscode安装完毕后, 2.在扩展中搜索chinese,选择:“Chinese (Simplified) Language Pack for Visual Studio Code” 3. ...
- 彻底解决go get golang.org/x等包失败与VSCode golang插件安装失败问题
由于某种众所周知的一些原因,https://golang.org/ golang 的官方域名是被墙了的,这也就导致了, 在广大 go 开发者使用 golang 的时候,总会出现 go get 失败的问 ...
- vscode golang 不能自动补全问题
问题描述: 使用vscode编辑go语言时,有时候会莫名其妙的代码不能自动补全,struct的属性值不能自动提示,这时候如果重新启动vscode也没有效果,就可能是gocode插件出了问题或者有了更新 ...
- vscode golang vue配置
{ "files.autoSave": "off", "window.title": "${dirty}${activeEdito ...
- golang之vscode环境配置
go语言开发,选择vscode作为IDE工具也是一个不错的选择,毕竟goland收费,老是破解也挺麻烦,除了这点,不过说实话挺好用的.vscode的话相对来说就毕竟原始,适合初学者. 1.vscode ...
- 在VSCode中成功安装Go相关插件问题:tools failed to install.
一.介绍 目的:本文将主要介绍在windows使用VSCode配置Go语言环境 软件:VSCode 二.安装出现的问题 完整信息如下 Installing tools at D:\GoPath\bin ...
- Podinfo,迷你的 Go 微服务模板
项目介绍 Podinfo 是一个用 Go 制作的小型 web 应用程序,它展示了在 Kubernetes 中运行微服务的最佳实践. 它已实现的技术指标(截选自官方 README.md ): 里面每一 ...
随机推荐
- 【莫队】bzoj4542: [Hnoi2016]大数
挺有意思的,可以仔细体味一下的题:看白了就是莫队板子. Description 小 B 有一个很大的数 S,长度达到了 N 位:这个数可以看成是一个串,它可能有前导 0,例如00009312345.小 ...
- JQuery图片轮播实例
HTML+CSS代码: <!doctype html> <html> <head> <meta charset="utf-8"> & ...
- HTTP-常用配置
前言 这篇主要介绍HTTP服务程序环境 可能有一些介绍不到,博主能力有限,欢迎大神来纠正改进 HTTP协议从http/0.9到如今的http/2.0中间发生了很大的改变,现在主流的事http/1.1 ...
- 【Shiro】调用doGetAuthenticationInfo进行认证成功之后,isAuthenticated是false的问题。
使用@Configuration配置shiro无状态登录时出现的问题,在subject.login之后当前线程重新绑定了一个假定subject,isAuthenticated. 这里自定义的访问拦截器 ...
- 一键生成属于自己的QQ历史报告,看看你对自己的QQ了解程度有多深?
目录 一键生成属于自己的QQ历史报告,看看你对自己的QQ了解程度有多深? 简介 功能截图 如何运行 编写思路 main.py模块 qq_bot模块 tkinter_gui模块 static_data模 ...
- eclipse使用技巧的网站收集——转载(二)
写代码离不开文本编辑器,看代码也离不开,iar和keil编辑和阅读简直一般般了,因此使用eclipse可以看看代码,提高效率.网上有几个博客的文章,这里收集一下,以备忘. 以下文章转载自:http:/ ...
- MIP启发式算法:Variable Neighborhood Decomposition Search
*本文记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文主要简述和VND VNS RINS很相关的vairable neighborhood decomposition search. 目 ...
- Solution: 最近公共祖先·一 [hiho一下 第十三周]
题目1 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在其中 ...
- linux学习-主机的细部权限规划:ACL 的使用
传统的权限仅有三种身份 (owner, group, others) 搭配三种权限 (r,w,x) 而已,并没有办法单纯的针对某一个使用者或某一个群 组来设定特定的权限需求,此时就得要使用 ACL 这 ...
- react技术栈实践(1)
本文来自网易云社区 作者:汪洋 背景 最近开发一个全新AB测试平台,思考了下正好可以使用react技术开发. 实践前技术准备 首先遇到一个概念,redux.这货还真不好理解,大体的理解:Store包含 ...