安装好vscode后,安装golang插件,可以使用ctrl+shift+p或者f1呼出命令面板,输入extensions,输入关键词Go然后安装
然后将一个文件夹拉入VSCODE中,然后通过文件->首选项->工作区设置来做工作区设置的任务。我们在工作区的配置文件settings.json中,需要设置的是go.gopath
{
"go.gopath": "${workspaceRoot}/../../../../",
"go.buildOnSave": false
}
设置好gopath后,我们的工作区设置就完成了。
go插件依赖很多工具来完成代码提示、lint等工作。有两种选择,在vscode的提示中下载,或者是直接下载好编译好后的二进制包。在git中我已经编译好了各种依赖包,需要注意的是,只有64位环境下才能支持delve调试支持,我们将压缩包解压后,放入gopath/bin目录下,这样依赖的工具就准备好了。
为了快速实现build和install,我们这儿使用tasks来完成这项任务。首先,我们呼出命令面板,输入Tasks: Configure Task Runner,然后我们进入了tasks.json编辑窗口,我们按以下的方式配置一个build的task,配置在tasks数组下面:
{
"taskName": "vscgo_build",
"isBuildCommand": true,
"args": [
"${workspaceRoot}",
"${fileDirname}"
],
"isWatching": false,
"problemMatcher": {
"owner": "go",
"fileLocation": [
"relative",
"${fileDirname}"
],
"pattern": {
"regexp": "^(.*):(\\d+):\\s+(.*)$",
"file":1,
"line": 2,
"message": 3
}
}
}
通过设置isBuildCommand,我们可以通过ctrl+shift+b快捷键快速启动这项任务,而problemMatcher是用正则来匹配错误输出,这样错误的行会用红色波浪线标出。最终启动的是vscgo_build脚本,我这儿只写了windows下的处理,linux下稍微改一下就行:
@rem param1 GOPATH
@rem param2 build path
@SET GOPATH=%1
@CD %2
@go build
@rem succeed or failed
@if %errorlevel%==0 (echo build success) else (echo build failed)
而install也大同小异,只是无法通过快捷键呼出,只能通过呼出命令面板,输入tasks: run task来选择vsc_install来进行。配置的task如下:
{
"taskName": "vscgo_install",
"args": [
"${workspaceRoot}",
"${fileDirname}"
],
"isWatching": false,
"problemMatcher": {
"owner": "go",
"fileLocation": [
"relative",
"${fileDirname}"
],
"pattern": {
"regexp": "^(.*):(\\d+):\\s+(.*)$",
"file":1,
"line": 2,
"message": 3
}
}
}
脚本如下:
@rem param1 GOPATH
@rem param2 build path
@SET GOPATH=%1
@CD %2
@go install
@rem succeed or failed
@if %errorlevel%==0 (echo install success) else (echo install failed)
这样我们大概的配置任务就完成了,这些东西都已经打包在git中。