Table of Contents
1. 常用Go插件
插件名称 | 说明 | 备注 |
gocode | Completion Lists 代码自动完成 | |
godef | Quick Info 快速提示信息 | |
go-find-references | Find References 搜索参考引用 | |
go-outline | File outline 文件大纲 | |
go-symbols | Workspace symbol search 工作区符号搜索 | |
gorename | Rename 重命名 | |
go build或go test | Build-on-save 保存构建 | |
goreturns | Format 代码格式化 | |
goimports | Format 代码格式化 | |
gofmt | Format 代码格式化 重新格式化Go源代码 | |
gopkgs | Add Imports 自动完成导入未导入的 packages | |
golint | Linter 静态分析检查 | |
gometalinter | Linter 静态分析检查 | |
delve | Debugging 调试代码 | |
errcheck | ErrorChecking 检查代码中未检查的错误 | |
varcheck | VarChecking 查找未调用的全局变量和常量 | |
deadcode | UnusedCode 查找未调用的代码 | |
goimports | goimports可以自动对代码中的依赖包进行管理,如果有用到,就会自动import,也会对没有用到的包进行自动删除。 | |
go vet | 代码的语法检查 | |
GoReporter | 用于执行静态分析,单元测试,代码审查和生成代码质量报告。 |
2. 安装插件包
go get ... 自动下载代码到$GOPATH/src目录;并在$GOPATH/bin目录下生成可执行文件,例如
go get -u -v github.com/nsf/gocode //
go get -u -v github.com/rogpeppe/godef //
go get -u -v github.com/zmb3/gogetdoc //
go get -u -v github.com/golang/lint/golint // 代码的风格检测
go get -u -v github.com/lukehoban/go-outline //
go get -u -v sourcegraph.com/sqs/goreturns //
go get -u -v golang.org/x/tools/cmd/gorename //
go get -u -v github.com/tpng/gopkgs //
go get -u -v github.com/newhook/go-symbols //
go get -u -v golang.org/x/tools/cmd/guru //
go get -u -v github.com/cweill/gotests/... //
备注:
如果通过go clone 下载的代码包,需要通过进入代码目录执行go install 在$GOPATH/bin目录下生成可执行文件
3. golint插件安装使用
Golint用于检查go代码中不够规范的地方。
3.1 安装
mkdir -p $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/
git clone https://github.com/golang/lint.git
3.2 编译
cd $GOPATH/src/golang.org/x/lint/golint
go install
结果会在$GOPATH/bin目录下生成golint可执行文件
3.3 执行方式
golint 文件名或者目录
例如:
➜ coupon git:(ma-srvpro_1-0-192_BRANCH) ✗ golint obtain.go
obtain.go:20:2: don't use ALL_CAPS in Go names; use CamelCase
obtain.go:21:2: don't use ALL_CAPS in Go names; use CamelCase
obtain.go:24:2: don't use ALL_CAPS in Go names; use CamelCase
obtain.go:25:2: don't use ALL_CAPS in Go names; use CamelCase
obtain.go:28:2: don't use ALL_CAPS in Go names; use CamelCase
obtain.go:30:2: don't use ALL_CAPS in Go names; use CamelCase
obtain.go:31:2: don't use ALL_CAPS in Go names; use CamelCase
4. goimports插件安装使用
goimports可以自动对代码中的依赖包进行管理,如果有用到,就会自动import,也会对没有用到的包进行自动删除。
4.1 安装
cd $GOPATH/src/golang.org/x/
git clone https://github.com/golang/tools.git
4.2 编译
cd $GOPATH/src/golang.org/x/tools/cmd/goimports
go install
结果会在$GOPATH/bin目录下生成goimports可执行文件
4.3 使用
在sublime配置goimports
在sublime安装GoSublime插件,在插件用户配置文件中写入:
{ "fmt_cmd": ["goimports"] }
配置完成后在sublime编写go代码时,每次ctrl+s保存文件或者ctrl+b编译文件时,goimports会自动执行并对go代码进行包依赖的检查,对于用到却未引入的包会进行自动引入,对于引入却未使用的包会进行自动删除。
5. Go tool简单使用
models git:(ma-srvpro_1-0-192_BRANCH) ✗ go tool
addr2line
api
asm
buildid
cgo
compile
cover
dist
doc
fix
link
nm
objdump
pack
pprof
test2json
trace
vet
5.1 go tool vet
vet用于代码的语法检查
使用go tool vet针对单个文件进行代码检查
go tool vet global/init.go
使用go tool vet针对整个项目进行代码检查
go tool vet page
page/authentication/base.go:24: struct field tag `json:signature"` not compatible with reflect.StructTag.Get: bad syntax for struct tag value
6. GoReporter简单使用
6.1 执行格式:
goreporter -p [projectRelativePath] -r [reportPath] -e [exceptPackagesName] -f [json/html] {-t templatePathIfHtml}
6.1.1 参数说明
-p 有效的相对路径
-r 报告保存的地址
-e 例外的包,多个包使用逗号分隔。例如: "linters/aligncheck,linters/cyclo" ).
-f 生成报告的格式
-t 模版路径,不设置会使用默认模版
默认会生出HTML格式的报告