golang 有什么好的代码阅读工具?

2,179 views
Skip to first unread message

soulmachine

unread,
Sep 21, 2012, 8:39:42 AM9/21/12
to golang...@googlegroups.com
C/C++有sourceinsight,java有eclipse,他们都可以超连接到对应的函数,结构体,类的定义。

目前阅读golang源码时,我想要看一个struct或函数的定义,只能在import的引入的几个包里面去grep,不方便。

请问各位是怎么阅读golang源码的?

Leo Jay

unread,
Sep 21, 2012, 8:57:23 AM9/21/12
to golang...@googlegroups.com
2012/9/21 soulmachine <soulm...@gmail.com>:

> C/C++有sourceinsight,java有eclipse,他们都可以超连接到对应的函数,结构体,类的定义。
>
> 目前阅读golang源码时,我想要看一个struct或函数的定义,只能在import的引入的几个包里面去grep,不方便。
>
> 请问各位是怎么阅读golang源码的?
>
> --
> 官网: http://golang-china.org/
> IRC: irc.freenode.net #golang-china
> @golangchina

Intellij Idea有个go的插件,你可以试试。

--
Best Regards,
Leo Jay

软刀

unread,
Sep 21, 2012, 9:56:42 AM9/21/12
to golang...@googlegroups.com
vim +
ctags ( 这个要自己写下~/.ctags文件,添加golang支持,
这个可以让你跳来跳去,他们都可以超连接到对应的函数,结构体,类的定义。)
gotags(github.com/jstemmer/gotags, 让你查看当前文件结构)
gocode (github.com/nsf/gocode ,
结合omni自动补全,可以直接看函数定义,以及那个包有哪些结构,以及结构里面的结构)

bor...@gmail.com

unread,
Sep 21, 2012, 10:09:26 AM9/21/12
to golang...@googlegroups.com
2012/9/21 软刀 <ljy0...@gmail.com>
vim +
ctags ( 这个要自己写下~/.ctags文件,添加golang支持, 这个可以让你跳来跳去,他们都可以超连接到对应的函数,结构体,类的定义。)
gotags(github.com/jstemmer/gotags, 让你查看当前文件结构)
gocode (github.com/nsf/gocode    , 结合omni自动补全,可以直接看函数定义,以及那个包有哪些结构,以及结构里面的结构)

+ Emacs
自己编译一下 https://github.com/lyosha/ctags-go 这个,ctags etags都没有问题。

 
--
Jiang Bian
http://www.wifihack.net/
http://golang-china.org/

bor...@gmail.com

unread,
Sep 21, 2012, 10:12:27 AM9/21/12
to golang...@googlegroups.com


2012/9/21 Leo Jay <python...@gmail.com>
@Leo 昨天试了一下 Idea,一直没找到怎么配置GOPATH? 怎么配置GOPATH。

还有怎么配置拷贝文件夹,比如: 我需要把conf目录下面的所以东西再编译的时候拷贝到go-bin目录下面。

谢谢 

Leo Jay

unread,
Sep 22, 2012, 4:44:41 AM9/22/12
to golang...@googlegroups.com
2012/9/21 bor...@gmail.com <bor...@gmail.com>:
>
> 2012/9/21 Leo Jay <python...@gmail.com>

>>
>> Intellij Idea有个go的插件,你可以试试。
>
> @Leo 昨天试了一下 Idea,一直没找到怎么配置GOPATH? 怎么配置GOPATH。
>

在菜单 File 选 Project Structure,在弹出的对话框里选 SDKs,在对话框中间最上面有个 “+” 图标,点它,选 Go
Sdk,然后选你的go目录就可以了。

> 还有怎么配置拷贝文件夹,比如: 我需要把conf目录下面的所以东西再编译的时候拷贝到go-bin目录下面。
>

这个功能我没用到过,你可以试试Artifacts能不能实现你的要求:
http://www.jetbrains.com/idea/webhelp/artifacts.html

在菜单 File 选 Project Structure,在弹出的对话框里选 Artifacts

> 谢谢

minux

unread,
Sep 23, 2012, 3:03:50 AM9/23/12
to golang...@googlegroups.com

2012/9/21 soulmachine <soulm...@gmail.com>

C/C++有sourceinsight,java有eclipse,他们都可以超连接到对应的函数,结构体,类的定义。

目前阅读golang源码时,我想要看一个struct或函数的定义,只能在import的引入的几个包里面去grep,不方便。

请问各位是怎么阅读golang源码的?
我以前给介绍过,就用godoc足以;


高帆

unread,
Sep 23, 2012, 4:07:29 AM9/23/12
to golang...@googlegroups.com
刚刚装了IntelliJ IDEA,是挺好用的,不过我设置GAE SDK时出错了,设置不了。 

soulmachine

unread,
Sep 23, 2012, 5:48:52 AM9/23/12
to golang...@googlegroups.com
怎么用 godoc来浏览代码?实现代码导航?

杨龙

unread,
Sep 23, 2012, 6:38:49 AM9/23/12
to golang...@googlegroups.com
我一直用http://go.pkgdoc.org/看源码
godoc + eclipse看注释

2012/9/23 soulmachine <soulm...@gmail.com>

yeer

unread,
Sep 23, 2012, 11:53:28 AM9/23/12
to golang...@googlegroups.com
同问godoc怎么用? 楼主不会是想问阅读golang源码吧..

一直觉得go author 官方给的vim插件应该是他们开发时的利器啊,
可是目前只是用到了高亮而已,其他地方好像不怎么用到..

代码阅读无非下面几条
  1. 颜色高亮
  2. 跳转符号到定义
  3. 查出符号的所有调用
  4. 项目内目录树
  5. 文件内大纲树

对于vim用户来说, 
#1 可以通过官方插件解决.
#2 可以通过ctags-go[1]来解决
#3 目前我是用ack来弄的,
     不足之处时经常连注释或其他项目的同名函数也给查出来.
     著名的cscope目前没有对go的支持
     搭车问下用vim的同学有没有比较好的解决方案?
#4 NerdTree插件, (其实项目熟悉后用FuzzyFinder会更快捷)
#5 gotags

杨龙

unread,
Sep 23, 2012, 9:10:45 PM9/23/12
to golang...@googlegroups.com
 我所了解的,godoc看源码最基本的用法分两步:
1,进入~/go/bin  运行godoc -http=:6060
2,用浏览器进入:localhost:6060
2012/9/23 yeer <yeer...@gmail.com>

Yuanliang Wang

unread,
Nov 6, 2022, 8:33:23 PM11/6/22
to Golang-China
求问大家现在是怎么解的这个问题呀?“查出符号的所有调用”
十几年vim + cscope搬砖工,没有cscope这种东西,习惯难戒掉
---------------------------------------------------------------------
代码阅读无非下面几条
  1. 颜色高亮
  2. 跳转符号到定义
  3. 查出符号的所有调用
  4. 项目内目录树
  5. 文件内大纲树

对于vim用户来说, 
#1 可以通过官方插件解决.
#2 可以通过ctags-go[1]来解决
#3 目前我是用ack来弄的,
     不足之处时经常连注释或其他项目的同名函数也给查出来.
     著名的cscope目前没有对go的支持
     搭车问下用vim的同学有没有比较好的解决方案?
#4 NerdTree插件, (其实项目熟悉后用FuzzyFinder会更快捷)
#5 gotags
Reply all
Reply to author
Forward
0 new messages