ManifestEditor 如何获取插件的扩展列表?

How does the ManifestEditor get the list of extensions of a plugin?

我目前正在开发一个插件,它将获取任何给定插件的每个扩展的列表。

我的问题是这些信息在 plugin.xml 中,我不知道如何在不解析文件的情况下获取它们。

我一直在查看 Eclipse 的清单编辑器,但找不到它如何获取扩展列表。

简而言之,这里是选择了扩展选项卡的清单编辑器示例:

我想要一个 List<String> 来保存这些扩展点的名称。

您可以使用以下方式从扩展注册表中获取插件使用的扩展:

IExtensionRegistry reg = Platform.getExtensionRegistry();

Bundle bundle = Platform.getBundle("plugin id");

String id = Long.toString(bundle.getBundleId());
String name = bundle.getSymbolicName();

IContributor contributor = new RegistryContributor(id, name, null, null);

IExtension [] extensions = reg.getExtensions(contributor);