(project,lint,hint,autocomplete)
要实现上面几点我们来一步一步的配置。
这一部分是最重要的,如果没有它,每次build的时候出现 too many errors 心里真的是非常难过的。
环境配置:(golint,gooracle,mercurial) 安装mercurial: brew install mercurial这个东西是用来做版本管理的,也是下载代码的工具类似git,貌似google的项目用的挺多的。
安装golint: $ go get github.com/golang/lint $ go install github.com/golang/lint 安装gooracle go get code.google.com/p/go.tools/cmd/oracle 安装goimport go get golang.org/x/tools/cmd/goimports 安装gocode go get -u github.com/nsf/gocode 安装 godef go get -v code.google.com/p/rog-go/exp/cmd/godef go install -v code.google.com/p/rog-go/exp/cmd/godef 安装环境的时候经常会出现下载不下来的问题,大概是我网络不好吧。连接google经常出现问题。解决方案:
golang中国的下载频道中有一个第三方包的下载工具,只要输入地址之后人家会给你提供下载tar包的。 放到gopath中就ok了。
此步骤只能替代go get的步骤,最后还是需要go install
go install 之后会在 $GOPATH/bin/ 中出现各种工具文件
gocode 提供代码补全godef 代码跳转gofmt 自动代码整理golint 代码语法检查goimports 自动整理importsoracle 代码callgraph查询(plugin中还在todolist中,但是不配置一直报错。实在烦。)最后不要忘记复制上面的命令到 $GOROOT/bin/下面
最后的配置结果(安装完之后 Package->Go Plus->Display Go Information)
Cover Tool: /usr/local/go/pkg/tool/darwin_amd64/cover Vet Tool: /usr/local/go/pkg/tool/darwin_amd64/vet Format Tool: /Users/Li-jianying/git/bin/goimports Lint Tool: /usr/local/go/bin/golint Gocode Tool: /Users/Li-jianying/git/bin/gocode Gocode Status: Enabled Oracle Tool: /Users/Li-jianying/git/bin/oracle Git: /usr/bin/git Mercurial: /usr/local/Cellar/mercurial/3.2.1/bin/hg PATH: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin没有红色的行就没有问题了。
这个插件是非常hot的,在atom.io的首页上排名还是非常靠前的。
使用细节: 配合tree view ( cmd - \) 打开关闭project file搜索项目文件 ( cmd -t )输入的时候按照顺序输入关键字,比如说 user模块的controll中的go源代码。搜索的时候可以使用多个快捷键 =》 user controll go,就可以准确的找到源代码了
打开项目列表 ( ctrl-cmd-p )然后就会显示出来一个项目列表回车就可以打开项目。
总结:
感觉这个插件的treeview用途的确不是很大,因为正常项目的项目文件会很多。 不过是快速打开项目(文件夹)是非常方便的,配合快速打开文件还是相当爽的。
按快捷键之后的效果展示:
插件go-plus,autocomplete-plus(dependance),gocode 使用 apm install 安装就可以了。速度还可以。
使用细节 在保存的时候
会自动补上imports会自动整理代码比如说 a:=5 会变成 a := 5
两个空行自动变成一个空格
lint自动检查语法错误(go build 的错误都会显示出来)vet会自动检查语法拼写建议函数,结构体 会提示补上注释。
比如说会提示你函数前面需要加入godoc类型的注释: // functionname
注释的第一行需要使用双斜杠注释+空格+函数名+空格+简短的函数功能说明。
使用细节: 在编辑的时候
go-plus会配合autocomplete-plus会自动补全包名字(tab补全,回车不行,这个真心舒服)包名.之后输入方法名开头几个字母会给出补全建议。安装之后的演示(类似go-plus官方演示)
gocode 插件自动补全演示
这个插件继承自autocomplete,因为年久失修。api用的是老版本,所以一直都会出现api警告。(我是实用主义,视而不见)gocode如果找不到就进入代码找到文件autocomplete-view.coffee 中105行写成绝对路径就肯定没有问题了。绑定快捷键,因为这个插件没有绑定快捷键的文件(keymap)所以需要在keymap.cson下自己手动绑定配置如下: '.active.pane': 'ctrl-;': 'gocode:toggle' 效果演示