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