收听 Eclipse Editor 事件



我正在为 Eclipse 编写一个插件,我想知道如何侦听任何活动编辑器的编辑器文本更改事件。

基本上,我希望在任何打开的编辑器中修改任何文本时触发侦听器事件。

你想

访问与编辑器关联的 JFace Document 对象并添加一个IDocumentListener,这应该让你开始。

听起来真的很不典型。也非常侵入和危险。你为什么要听任何编辑器中的任何输入?强烈建议不要这样做。这不应该仅限于同一模型(IEditorInput(的一组编辑器吗?

IWorkbenchPage page = PlatformUI.getWorkbench()
            .getActiveWorkbenchWindow().getActivePage();
    IEditorReference[] editorReferences = page.getEditorReferences();

从编辑器引用尝试找出添加侦听器的方法。IEditorReference是一个句柄,并不意味着编辑器被激活。当您打开 eclipse 时,编辑器会延迟激活(当单击它们进行打开时(。因此,激活所有打开的编辑器也会导致性能问题。

最新更新