如何在Eclipse插件中获得“活动编辑器”?

在我的Eclipse插件中,我需要知道屏幕上可见的编辑器何时发生了变化。我目前正在获取活动编辑器,如下所示:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor()

这适用于大多数情况,但按下绿色的“继续”按钮时除外:

Debugger buttons

如果我使用F8快捷方式,则活动编辑器将按预期更新。

在编辑器选项卡获得焦点之前,活动编辑器属性似乎不会更新(按下“继续”按钮时不会发生这种情况)。

我还可以采取其他途径来获得“可见编辑器”吗?

提前致谢。

艾伦


答案 1
  1. 编辑器仅在具有焦点时才处于活动状态,因此您获得的是 API 的正确输出。插件的用户不会在调试模式下运行它,因此最终用户不关心
  2. 或者,要获取所有打开的编辑器,您可以执行以下操作:

PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences()


答案 2

isPartVisible()' 方法,该方法指示指定的部分是否可见。结果不取决于指定的部分当前是否处于活动状态,即是否具有焦点。IWorkbenchPage interface has an

然而,要查找可见但当前不活跃的编辑器,仅仅在活动工作台页面上调用此方法可能还不够。相反,您可能必须遍历所有工作台窗口,并在每个窗口的页面上检查编辑器的可见性。


推荐