基于AST的Eclipse搜索

是否有Eclipse插件可以让您根据项目文件的Java AST(抽象语法树)进行搜索? “Java搜索”function似乎不包括以下情况:

“让我在所有类中声明为’X’类型的所有字段”

我可以想象使用基于AST的搜索可以打开更多的可能性,但我甚至不知道这样的插件是否具有实际性能。

更新 :正如下面Kevin所指出的,Java搜索function确实涵盖了我提到的用例。 我仍然很好奇,不管是否有人编写了一个插件,允许任意类型的AST搜索,例如。 “获取所有字符串连接”(带有+运算符和StringLiteral操作数的InfixExpression)

获取所有类中声明为“X”类型的所有字段

我不知道你还有什么想法,但我相信你可以通过以下方式完成这个特定的搜索:

  • 打开X型(Ctrl-Shift-T)
  • 突出显示class级名称
  • Ctrl-H进行搜索
  • 搜索类型/匹配位置 – >字段类型

有几个Eclipse插件提供面向对象的查询语言,旨在回答这些查询。 他们中有一些:

  • 浏览逐个查询
  • SEA-QL
  • Semmle代码

在Eclipse之外有JArchitect代码查询语言

这并不是你想要的,但是nWire for Java可以为你提供大量来自AST的信息。 它还具有搜索任何类型,方法,字段等的全文搜索。一旦找到您要查找的内容,单击将显示该组件的所有关联。

在这里查看演示。