在eclipse插件中获取两个IFiles之间的差异

时间:2014-08-22 18:44:46

标签: 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);

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

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

1 个答案:

答案 0 :(得分:1)

Eclipse org.eclipse.compare提供了编写diff工具和编辑器的一般机制,这在Eclipse Help中有描述。

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