【发布时间】:2012-05-19 03:34:19
【问题描述】:
我正在为 Eclipse 编写一个插件,我想知道如何监听任何活动编辑器的编辑器文本更改事件。
基本上,我希望在任何打开的编辑器中修改任何文本时触发侦听器事件。
【问题讨论】:
标签: eclipse events eclipse-plugin
我正在为 Eclipse 编写一个插件,我想知道如何监听任何活动编辑器的编辑器文本更改事件。
基本上,我希望在任何打开的编辑器中修改任何文本时触发侦听器事件。
【问题讨论】:
标签: eclipse events eclipse-plugin
您想访问与编辑器关联的 JFace Document 对象并添加一个 IDocumentListener,这应该可以帮助您入门。
【讨论】:
IPartListener。这也会让您知道部件何时被激活。您可以查看该部件是否为编辑器,因为它是EditorPart 的子类(或者可能实现了某些接口)。
听起来很不典型。也非常具有侵入性和危险性。你为什么要听任何编辑器的任何输入?强烈建议不要这样做。那不应该仅限于同一模型的一堆编辑器(IEditorInput)吗?
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IEditorReference[] editorReferences = page.getEditorReferences();
从 editorReferences 尝试找出添加监听器的方法。 IEditorReference 是一个句柄,并不意味着编辑器被激活。当你打开 Eclipse 时,编辑器会被延迟激活(当它们被点击打开时)。因此激活所有打开的编辑器也会导致性能问题。
【讨论】: