如何以编程方式调用 Eclipse 重构历史记录?

How can I call eclipse refactoring history programmatically?

如果您在 Eclipse 中转到 Refactor -> History...,您将看到一个对话框,其中包含在您的工作区中完成的所有重构历史记录。

我想知道是否有一种方法可以创建一个插件,它只计算历史上有多少重命名重构。你会怎么做?

IRefactoringHistoryService 接口有访问重构历史的方法。

获取接口:

IRefactoringHistoryService service = RefactoringCore.getHistoryService();

然后您可以使用以下方法获取项目的历史记录:

IProject project = ... project you are interested in

RefactoringHistory history = service.getProjectHistory(project, progressMonitor);

还有其他方法可让您获取工作区历史记录并指定开始和结束时间戳。

历史对象可以return表示重构的对象数组:

RefactoringDescriptorProxy [] proxies = history.getDescriptors();

您可以从代理中获取实际的重构描述符:

RefactoringDescriptor desc = proxy.getDescription();