java - 在 eclipse 插件中获取两个 IFile 之间的差异

标签 java eclipse eclipse-plugin diff

我正在编写一个 Eclipse 插件,它会在文件移动或重命名时发出通知。在 Eclipse 中,当您选择移动或重命名文件时,可能会发生这种情况。有趣的是,例如,在重命名中,eclipse 将删除旧文件并创建一个全新的文件。

我确实可以访问旧文件和新文件:

//grab each new and deleted file
IFile oldFile = resourceParser.getDeletedFiles().get(i);
IFile newFile = resourceParser.getNewFiles().get(i);

问题在于,在某些情况下(例如重命名包),文件将被移动,并且文件的内容将被更改以适应新的包名称。

所以,我需要获取两个文件之间的差异列表。就像我说的,我可以访问两个 IFile(已删除的一个和新的),但我想看看它们的内容有何不同。是否有某种 java diff 工具可以生成我可以操作的简单更改列表?

最佳答案

Eclipse org.eclipse.compare 提供了一种用于编写 diff 工具和编辑器的通用机制,这在 Eclipse Help 中进行了描述。 .

Eclipse 的 Java 开发工具部分扩展了对 Java 的比较支持,但是代码位于 内部的 org.eclipse.jdt.ui.internal.ui.compare 包中,因此不是 Eclipse API 的一部分,不应使用 Eclipse API Rules of Engagement

关于java - 在 eclipse 插件中获取两个 IFile 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453649/

相关文章:

java - 如何在主类中从另一个类的构造函数初始化数组字段?

java - 我是否需要 fragment 以及如何访问它们?

java - 模拟器 : glClear:466 GL err 0x502

linux - 如何恢复颠覆忽略?

eclipse - 如何在 Eclipse 中将 JavaFX Preloader 与独立应用程序一起使用?

eclipse - 通过Eclipse插件以编程方式更改菜单项

java - 使用 Selenium 接受 Windows 安全警报

eclipse - 编译过程中的不同 jar 版本 - Gradle 项目(IntelliJ 和 Eclipse 中)

java - 安装 Subclipse Eclipse 插件时出现问题,缺少 JavaHL 库

javascript - 在 Eclipse 插件中使用 JavaScript