除了Windows上的C/C++之外,其他语言是否还有CScope样式的源浏览器?
我特别感兴趣的是可以插入Vim的工具,允许除C/C++之外的其他语言(如Java)的CScope样式源浏览(1-2个按键命令来定位函数定义,调用者,全局符号等)和C#(因为Vim和Cscope已经非常适合浏览C/C++)。我对基于IDE的工具不感兴趣,因为我知道Microsoft和其他供应商已经在处理这个空间 - 我更喜欢使用Vim进行编辑和浏览,但不知道C#和/或Java的工具可以让我与CScope相同的功能。除了Windows上的C/C++之外,其他语言是否还有CScope样式的源浏览器?
这个问题的原始答案包括一个指向CSWrapper应用程序的指针,它显然修复了一些用户体验Vim和CScope集成的错误。但是,我的Vim/CScope安装工作正常。我只是试图扩展功能以允许使用Vim编辑其他语言的代码。
CScope可以用于Java。
从http://cscope.sourceforge.net/cscope_vim_tutorial.html:
虽然Cscope是仅适用于C代码的使用,这是 实际上是一个非常灵活的工具,与像C++ 和Java语言的效果很好。您可以将其视为一个通用的'grep'数据库,其中 能够识别某些其他结构,如函数调用 和变量定义。默认情况下,Cscope只分析当前目录中的C,lex和yacc文件(.c,.h,.l,.y)(如果您传递-R标志,则为 子目录),并且目前没有办法 要更改文件扩展名列表(是的,我们应该改变它)。 所以相反,你必须创建一个你想要解析的文件列表,并将其称为'cscope.files'(如果你调用'cscope -i foofile',你可以将它称为 )。一个简单的(和非常灵活的)的方式来 做到这一点是通过可靠的Unix的“查找”命令:
find . -name '*.java' > cscope.files
现在运行“cscope的-b”重建数据库(-b只是建立在不启动Cscope GUI的情况下数据库为 ),您将可以通过 浏览Java文件中的所有符号。显然有 在那里使用Cscope浏览和编辑大量的 文档文件,它显示了Cscope的解析器是多么灵活。
这可能是你在找什么:
http://www.vim.org/scripts/script.php?script_id=1783
您也可以通过使用map各种口味模仿自己的.vimrc文件中的一些Cscope的功能。
声称Cscope支持Java是一个极端的延伸。它看起来像一个函数一样处理方法,所以它不知道A.foo(),A.foo(Object)和B.foo()都是不同的。对于使用许多相同名称的方法的大型代码库(包括第三方库)来说,这是一个很大的问题。 (我没有看过Cscope源代码,但是这是我从Debian不稳定版本中尝试使用最新的Cscope版本15.7a-3.3)。
我在一个大的Java项目上尝试过Cscope,由于这个限制,对我来说都是有用的。很遗憾,我们无法快速回答诸如“谁称这种方法”这样的基本问题,在大型IDE之外使用免费软件,但我们也可以接受它。 (我会喜欢它,如果我错了,我会诉诸黑客评论的方法和重新编译。)
我同意安德鲁 - 试图获得一个方法的调用层次结构返回相同名称的所有调用,即使他们来自不同的班级。
您可以使用Eclim堵塞Eclipse转换VIM
这supportrs调用层次
有点晚了这里的聚会,但我https://github.com/eapache/starscope/项目提供了一个很好为更多语言生成cscope数据库的框架。目前它支持Ruby和Go,并且Javascript正在进行中。添加Java/C#应该不是那么困难。
编辑:现在完全支持Javascript。
谢谢,请看看! – 2015-10-16 16:01:43
对于python:http://stackoverflow.com/questions/3718868/using-cscope-to-browse-python-code-with-vim – idbrii 2012-07-28 17:03:42