Eclipse plugin 在Eclipse插件中,如何使标准编辑器变脏?
我试图通过编程使Eclipse编辑器变脏 我知道firePropertyChange(IEditorPart.PROP_DIRTY)可以在我自己的编辑器上实现这一点 但在本例中,我使用的是标准编辑器。 我可以使任何编辑器变脏(如何?)-或者编辑器需要支持这一点吗 我有一个org.eclipse.ui.IPartListener2。 从这里,当我获得partOpened(IWorkbenchPartReference arg0)事件时,我想使编辑器变脏 我试着在这里查看simalar的问题。但是我被卡住了 有什么提示吗?找到了窍门Eclipse plugin 在Eclipse插件中,如何使标准编辑器变脏?,eclipse-plugin,editor,Eclipse Plugin,Editor,我试图通过编程使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和资源事件在工作台中编写内容。