1.7 Go程序的集成开发环境
虽然可以用任何文本编辑工具来编写Go语言的程序,但是纯文本工具编写程序代码的效率非常低,因为缺少语法高亮、代码智能提示以及调试等功能。因此需要找到一款适合自己的Go语言源代码编辑器,通过配置Go语言的开发环境,让源代码编辑器具有代码语法高亮、自动代码补全以及其他程序代码的编辑特性,从而提高程序代码的编写效率。目前支持Go语言的源代码编辑器与集成开发环境(IDE)主要有:
· Visual Studio Code
· GoLand
· LiteIDE
· Sublime text
· Netbeans
· Eclipse with goclipse
· Atom
· Brackets
其中,Visual Studio Code是微软推出的一款开源免费的源代码编辑器,支持多种语言,有大量的插件可以安装,占用资源也较少。因此,这里推荐用Visual Studio Code作为源代码编辑器。
Visual Studio Code可以运行在Mac OS X、Windows和Linux平台上,是一款针用于编写现代Web和云应用的跨平台源代码编辑器。Visual Studio Code对Web开发的支持特别好,同时支持多种主流语言,例如Go、Rust、F#、C#、Java、PHP、C++、JavaScript和TypeScript等。
(1)打开网站https://code.visualstudio.com/download,如图1.14所示。这里需要根据自己的操作系统来下载合适的版本。我们选择Windows平台,并下载64位的安装文件(User Installer 64bit)。
图1.14 Visual Studio Code下载界面
(2)下载的安装文件为VSCodeUserSetup-x64-1.40.1.exe,双击该文件并按照安装向导进行安装即可。安装成功后,再安装Go扩展插件,如图1.15所示。
图1.15 Visual Studio Code Go扩展插件
(3)该Go扩展插件会在C:\GoWork\bin目录下安装如下模块:gocode、gopkgs、go-outline、go-symbols、guru、gorename、gotests、gomodifytags、impl、fillstruct、goplay、godoctor、dlv、gocode-gomod、godef、goreturns和golint。成功安装后,Visual Studio Code即可提供Go语言代码智能提示功能和调试功能(需要安装delve),如图1.16所示。
图1.16 Visual Studio Code Go代码智能提示功能
Visual Studio Code是一款开源的源代码编辑器,由于它的安装简单、插件丰富、界面简洁美观、功能强大而又小巧,因此深受各类开发人员的喜爱。另外,Visual Studio Code可以运行在多种操作系统上,是微软的良心之作。
注意
安装适用于VS Code的中文(简体)语言包可使Visual Studio Code呈现为中文版的界面。
(4)如果无法访问国外官方的Go库镜像网站,那么Visual Studio Code的Go插件联网下载多个工具包时会提示下载失败的信息,如图1.17所示。根据不同版本的Go语言和Visual Studio Code(Go插件),需要下载的库个数和具体的包可能会存在差异。
图1.17 Visual Studio Code的Go插件安装依赖包失败时的界面
(5)为了解决这个问题,这里需要配置GOPROXY国内代理地址来提高下载的速度,防止网络超时导致下载失败。国内代理有:
· 阿里云:GOPROXY=https://mirrors.aliyun.com/goproxy/。
· goproxy.io:GOPROXY=https://goproxy.io/。
· 官方代理:GOPROXY=https://proxy.golang.org。
· 七牛云:GOPROXY=https://goproxy.cn。
在Windows上,打开命令行,执行命令SETX GO111MODULE on,开启Go的MODULE支持,然后配置环境变量GOPROXY值为https://goproxy.cn。代理配置成功后,重启命令行,然后进行安装即可,如图1.18所示。
图1.18 配置goproxy代理后Go插件安装依赖包界面
如果仍然无法下载相关库文件,则可尝试在命令行窗口中执行命令go env -w GOSUMDB = off来关闭sum验证服务,或者执行go env -w GOSUMDB="sum.golang.google.cn"设置成国内的sum验证服务,再下载依赖包。
注意
Visual Studio Code想实现调试功能,必须手动安装delve库,可执行命令go get -u github.com/go-delve/delve/cmd/dlv。
研究Go插件需要安装的几个包就会发现:gocode库用于代码智能提示,delve库用于调试Go源代码,gopkgs库用于对当前文件实现智能的包导入,golint用于在文件保存时检查语法,godef用于跳转到定义包。掌握这些库的基本用法,可以构建自己的Go源代码编辑器环境,实现Go语法智能提示和实现调试功能。
注意
gopls库是官方的语言服务器(Go Language Server),也可以实现Go语言的代码智能提示和跳转到定义包等功能。
(6)安装Go插件后,如果希望Visual Studio Code在Go源代码保存时自动进行格式化或者自动导入包等操作,此时需要在Visual Studio Code中进行设置(Settings)。
通过在项目的.vscode目录中配置settings.json文件来设置其中的Go配置项。settings.json的具体配置可以参考示例程序1-2中所示的JSON。
示例程序1-2 VSCode配置settings.json示例:.vscode\settings.json
另外,JetBrains公司的GoLand工具界面如图1.19所示,是专门针对Go语言开发的一款集成开发环境。虽然用GoLand进行Go语言程序的开发会更加容易一点,但GoLand是一款收费工具,因此建议读者使用开源免费的Visual Studio Code。
图1.19 GoLand的Go代码智能提示界面
在GoLand中,若想实现在保存Go文件时调用gofmt对源代码进行格式化操作,则需要配置一下,依次打开选项“File?Settings”,在设置界面中对File Watchers进行设置,如图1.20所示。
图1.20 GoLand的gofmt格式化工具配置界面