Eclipse:是否可以根据需要在两个不同的编辑器中打开一个资源?

Eclipse : Is it possible to open one resource in two different editors as per requirement?

在我当前的项目中,有一种情况是我们在项目资源管理器中有一个文件,比方说“File1.cfg”。有一个使用“*.editors”扩展名注册的默认编辑器“Editor 1”。

需求函数:

  1. 当用户双击 File1.cfg 时,默认情况下应始终使用“编辑器 1”打开它。
  2. 工具栏中多了一个选项,用于打开“Editor 2”。此编辑器应使用资源“File1.cfg”并按照 UI.
  3. 显示内容

如何在Eclipse中实现?

插件可以指定打开编辑器时使用的编辑器id。参见 IWorkbenchPage.openEditorIDE.openEditor

通常这些 API 会检查是否有一个编辑器(任何 ID)已经在文件上打开。如果你想强制打开具有给定 id 的编辑器,无论你需要使用 IWorkbenchPage 方法:

IEditorPart openEditor(IEditorInput input, String editorId, boolean activate,
                       int matchFlags)

matchFlags 值设置为:

IWorkbenchPage.MATCH_ID | IWorkbenchPage.MATCH_INPUT

仅匹配具有相同 ID 和输入的现有编辑器。