12

有一种方法可以在 Eclipse 中使用 Search > Java 来搜索类型或方法声明或引用。但是,如何指定一些更高级的搜索条件,例如:

  • 在 A 类的子类中查找 B 类的所有引用。
  • 在实现接口 I 的类和/或名为 com.foo.*.service 的包中查找所有名为 insert* 的方法。

我一直在处理一个非常大的代码库,并且拥有这些类型的查询将有很大帮助。浏览 Eclipse Marketplace,我能找到的最接近的是SEA-QL,但它甚至无法创建工作区中所有项目的索引。

有什么建议么?

4

1 回答 1

3

你所要求的对我来说听起来很棒 - 我不知道有任何内置功能可以轻松满足你的要求。也许有人会建议一个插件。

但是,您是否考虑过以下组合: - “工作集” - 正则表达式 - 已保存的搜索

帮助减轻一些痛苦?

对您的第二个示例的建议:创建一个包含 com.foo.* 包的“工作集” 使用选中的正则表达式选项执行“文件”(不是 Java)搜索,在 *.java 类型的文件中搜索类似的内容:

implements.*I.*\R.*insert

您可以根据“插入”方法的方法签名或多或少地明确正则表达式。

保存搜索将允许您建立(和共享)常用表达式库。

我从另一个 SO 问题和一些博客中破解了这个示例: 用于 Eclipse 搜索的有用正则表达式Eclipse 正则表达式查找和替换等。

您还可以通过复习您的正则表达式技能获得额外的好处(我知道我需要自己做一些事情!)

顺便说一句,您使用的是什么源代码控制平台?您可以将搜索工具(想想 Google)插入到某些源代码控制系统中。例如,我使用这个工具:SVN Query,我相信还有其他的。对于您的要求,这也不是一个干净的解决方案。对不起,我没有一个直接的答案!希望有人有有用的建议!

于 2013-04-24T12:08:28.480 回答