扩展第 3 方 Eclipse 插件以在 NewWizard 完成时触发程序

Extending a 3rd party Eclipse plugin to fire procedure on NewWizard finish

当另一个商业第 3 方插件在 Eclipse 中创建新 类 时,我们希望创建一个新的 Eclipse 插件来执行某些任务。

另一个插件是 SAP 的 ABAP Development Tools,不幸的是它没有提供易于扩展的源代码(据我所知)。我不太熟悉 Eclipse 插件开发,也不太熟悉 Java,来自 JS,Delphi,C# 背景,但我有一个我希望与之合作的主要想法。我找不到它的任何文档,所以我不确定它是否可行。

基本上,SAP 插件为不同类型的实体(Class、接口、程序和包)创建了 4 个新向导,我们希望在其中任何一个完成时启动一个新过程。理想情况下,如果参数正确,我想监听 'WizardComplete' 事件和 运行,但我看不到任何此类事件的记录。

另一个明显的解决方案是 'decorate' 这些插件并包装一个新的 'PerformFinish',但我不确定使用商业代码执行此操作的许可影响,我也不热衷于每次 SAP 发布新版本时都必须分发新的包装器。

是否有一种明显的方法可以从完成向导后启动程序?也可能检测到从 IDE 创建新的 'class' 可能是一个选项。

无法检测向导的完成。

您可以使用 IResourceChangeListener see here

监听资源(文件、文件夹、项目)的变化
IWorkspace workspace = ResourcesPlugin.getWorkspace();

workspace.addResourceChangeListener(... your listener ...);

侦听器提供了很多有关更改的详细信息,因此您应该看到 class.

的创建