我正在为 Eclipse 中的 Java 代码开发增量构建器。 Eclipse 提供了一个 ResourceDelta,它告诉我自上次构建以来哪些资源发生了变化。但是,我想获得更详细的信息,例如哪些方法或哪些字段定义发生了变化。在“比较 -> 彼此” View 中似乎有类似于我想要的功能。然而,这段代码与构建引擎完全脱节,似乎与 ResourceDeltas 不兼容。弄清楚我想要什么的好方法是什么?我能看到的最佳解决方案是比较两个 AST,但我也找不到对此的任何内置支持。
最佳答案
JavaCore
确实通过 IElementChangedListener
和 IJavaElementDelta
接口(interface)提供此信息。这是一个快速入门的代码示例:
JavaCore.addElementChangedListener(new MyJavaElementChangeReporter(), ElementChangedEvent.POST_RECONCILE);
更多详细信息,请参阅 Manipulating Java code来自 JDT 插件开发人员指南。
关于java - Eclipse中两种AST的结构比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1243397/