我正在为 Eclipse 编写一个插件,我想知道如何侦听任何活动编辑器的编辑器文本更改事件。
基本上,我希望在任何打开的编辑器中修改任何文本时触发侦听器事件。
访问与编辑器关联的 JFace Document
对象并添加一个IDocumentListener
,这应该让你开始。
听起来真的很不典型。也非常侵入和危险。你为什么要听任何编辑器中的任何输入?强烈建议不要这样做。这不应该仅限于同一模型(IEditorInput(的一组编辑器吗?
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IEditorReference[] editorReferences = page.getEditorReferences();
从编辑器引用尝试找出添加侦听器的方法。IEditorReference是一个句柄,并不意味着编辑器被激活。当您打开 eclipse 时,编辑器会延迟激活(当单击它们进行打开时(。因此,激活所有打开的编辑器也会导致性能问题。