Eclipse plugin 如何检索在Eclipse中为特定文件扩展名注册的编辑器?

Eclipse plugin 如何检索在Eclipse中为特定文件扩展名注册的编辑器?,eclipse-plugin,eclipse-rcp,Eclipse Plugin,Eclipse Rcp,我有两个为一个文件扩展名注册的编辑器,并且在其中一个编辑器中打开一个具有该扩展名的文件。现在,我也想在另一个编辑器中以编程方式打开此文件,但不必知道其id。是否可以检索为一个文件扩展名注册的编辑器列表,或者有更好的方法来执行此操作?您可以使用编辑器注册表来执行此操作。使用以下命令获取注册表: IEditorRegistry registry=PlatformUI.getWorkbench().getEditorRegistry(); 注册表有许多查找编辑器的方法,例如: IEditorDesc

我有两个为一个文件扩展名注册的编辑器,并且在其中一个编辑器中打开一个具有该扩展名的文件。现在,我也想在另一个编辑器中以编程方式打开此文件,但不必知道其id。是否可以检索为一个文件扩展名注册的编辑器列表,或者有更好的方法来执行此操作?

您可以使用编辑器注册表来执行此操作。使用以下命令获取注册表:

IEditorRegistry registry=PlatformUI.getWorkbench().getEditorRegistry();
注册表有许多查找编辑器的方法,例如:

IEditorDescriptor[]desc=registry.getEditors(“文件名”);
返回将处理文件名的编辑器。还有一些方法可以获取默认编辑器以及与文件内容类型关联的编辑器

IEditorDescriptor
包含编辑器id,您可以通过该id打开
IWorkbenchPage
openEditor
方法

更新:

如果要同时在两个编辑器中打开同一文件,则必须使用具有“匹配标志”选项的
IWorkbenchPage
openEditor
调用版本:

公共IEditorPart openEditor(最终IEditorInput输入,
最终字符串编辑器、最终布尔激活、最终整型匹配标志)

指定
IWorkbenchPage.MATCH_NONE
作为
matchFlags
停止搜索现有的打开编辑器。

右键单击要编辑的文件。其中一个选项是“打开…”。将鼠标悬停在该选项上,您将看到为该扩展名注册的编辑器列表。对不起,我是想以编程方式打开该文件:)如果之前关闭了editor1,则只能在editor2中打开该文件。否则,当我尝试在editor2中打开文件时,不会发生任何事情。添加了要使用的匹配标志选项。注意:Eclipse不会协调在这两个编辑器中所做的更改。