收听Eclipse Editor Events

时间:2012-05-19 03:34:20

标签: eclipse events eclipse-plugin

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

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

2 个答案:

答案 0 :(得分:2)

您想要访问与编辑器关联的JFace Document对象并添加IDocumentListener,这应该可以帮助您入门。

答案 1 :(得分:0)

听起来很不典型。也非常具有侵入性和危险性。你为什么要听任何编辑器中的任何打字?强烈建议不要这样做。不应该限于同一模型的一堆编辑器(IEditorInput)?

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

从editorReferences尝试找出添加侦听器的方法。 IEditorReference是一个句柄,它并不意味着编辑器被激活。当你打开eclipse时,编辑器会被懒惰地激活(当它们被点击打开时)。因此,激活所有打开的编辑器也会导致性能问题。