intellij depdendency tree以编程方式

时间:2018-06-06 11:57:35

标签: java intellij-idea

我想创建一些代码分析。在我的项目中,我使用callExternalService(Service service, Object request)调用外部服务。我希望获得此方法的所有调用者,并将其跟踪到所有使用spring RequestMapping注释注释的方法。基本上创建ES的一些映射 - > RestControllers。 我知道在IntelliJ中我可以创建调用层次结构树,但是我想以编程的方式创建这个映射,以便每当有人想要它时(例如我忘记创建文档)。

有人可以向我指出一些代码或文档,我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:0)

  • 首先,您需要创建一个插件。有关详细信息,请参阅https://www.jetbrains.org/intellij/sdk/docs/basics.html
  • 然后,
    • 查找所选方法的所有用法(您可以使用com.intellij.psi.search.searches.ReferencesSearch),
    • 将它们组织在树上
    • 向用户显示。

要显示树,您可以使用旧的JTree,也可以插入IDEA层次结构浏览器子系统。 要执行后者,请实现com.intellij.ide.hierarchy.HierarchyProvider,在plugin.xml中注册它,您将在新工具窗口中获得自己的层次结构浏览器。 有关如何执行此操作的示例,请参阅com.intellij.ide.hierarchy.call.JavaCallHierarchyProvider。