繁体   English   中英

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

[英]How to get “active editor” in Eclipse plugin?

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

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

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

调试器按钮

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

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

有没有其他路线我可以采取“可见编辑器”?

提前致谢。

艾伦

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

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

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

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

该问题类似于以下链接中发布的问题。 实现此目的的一种方法是通过创建零件侦听器来跟踪先前打开的编辑器。 Eclipse插件 - 如何获得最后一个编辑器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM