Eclipse plugin 在Eclipse插件中,如何使标准编辑器变脏?

Eclipse plugin 在Eclipse插件中,如何使标准编辑器变脏?,eclipse-plugin,editor,Eclipse Plugin,Editor,我试图通过编程使Eclipse编辑器变脏 我知道firePropertyChange(IEditorPart.PROP_DIRTY)可以在我自己的编辑器上实现这一点 但在本例中,我使用的是标准编辑器。 我可以使任何编辑器变脏(如何?)-或者编辑器需要支持这一点吗 我有一个org.eclipse.ui.IPartListener2。 从这里,当我获得partOpened(IWorkbenchPartReference arg0)事件时,我想使编辑器变脏 我试着在这里查看simalar的问题。但是我

我试图通过编程使Eclipse编辑器变脏

我知道firePropertyChange(IEditorPart.PROP_DIRTY)可以在我自己的编辑器上实现这一点

但在本例中,我使用的是标准编辑器。 我可以使任何编辑器变脏(如何?)-或者编辑器需要支持这一点吗

我有一个org.eclipse.ui.IPartListener2。 从这里,当我获得partOpened(IWorkbenchPartReference arg0)事件时,我想使编辑器变脏

我试着在这里查看simalar的问题。但是我被卡住了

有什么提示吗?

找到了窍门

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
try {
    EditorPart ep = (EditorPart) IDE.openEditor( page, iFile );
    IEditorInput input = ep.getEditorInput();
    IDocument doc = ((ITextEditor) ep).getDocumentProvider().getDocument(input);
    doc.set(doc.get());
} catch ( Exception e ) {
    //Put your exception handler here if you wish to
    e.printStackTrace();
}

这将使编辑器变脏。

您可能可以使用
EPartService
找到零件的
MPart
,然后调用
setDirty(true)
,但我不知道这是否有效。这似乎不是你应该做的。谢谢,格雷格。我来看看EPartService。这种方法的原因是,在某些情况下,我的插件生成一个具有内容的文件,这是我想强迫用户考虑的。我不想太多地改变规则,因此这可能不是最好的解决方案。如果您正在为已经在编辑器中打开的文件生成内容,那么编辑器应该自己处理——只要您使用IFile API和资源事件在工作台中编写内容。