file ~/.ctags

--langdef=Go
--langmap=Go:.go
--regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/d,func/
--
regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/d,var/
--
regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/d,type/

# --regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/v,var/
# --regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/t,type/

ctags / godeps

godeps:

  • prints the source dependencies of named packages

sending godeps output to ctags, the tags file automatically has tokens from all of my dependent packages.

add to .bashrc.

goctags () {
    godeps ./... \
        | awk -v GOPATH=$GOPATH '{print GOPATH "/src/" $1}' \
        | xargs ctags -R .;
}

https://github.com/jstemmer/gotags

dependency management

cookiecutter https://github.com/lacion/cookiecutter-golang.git

Trace Files

https://golang.org/cmd/trace/

go test -trace trace.out pkg

gorename: golang.org/x/tools/cmd/gorename

gorename -from bytes.Buffer.Len -to Size

eg: like java refaster

eg -t template.go <package> ...
golang.org/x/tools/cmd/eg

go oracle: oracle cmd man

common packages