【问题标题】:In Eclipse Plugin, how can I make standard editor dirty?在 Eclipse 插件中,如何使标准编辑器变脏?
【发布时间】:2020-12-18 09:27:36
【问题描述】:

我正在尝试以编程方式使 Eclipse 编辑器变脏。

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

但在这种情况下,我使用的是标准编辑器。 我可以让任何编辑器变脏(如何?) - 还是编辑器需要支持这一点?

我有一个 org.eclipse.ui.IPartListener2。 从这里开始,当我收到 partOpened(IWorkbenchPartReference arg0) 事件时,我想让编辑器变脏。

我试图在这里查看类似的问题。但我被困住了。

有什么提示吗?

【问题讨论】:

  • 可能您可以使用EPartService 找到零件的MPart,然后调用setDirty(true),但我不知道这是否可行。这似乎不是你应该做的事情。
  • 谢谢,格雷格。我将看看 EPartService。这种方法的原因是,在某些情况下,我的插件会生成一个包含内容的文件,我想强制用户考虑。我不想过多地改变规则,所以它可能不是最好的解决方案。
  • 如果您正在为已在编辑器中打开的文件生成内容,则编辑器应自行处理 - 只要您使用 IFile API 编写内容并且资源事件可以正常工作穿过工作台。

标签: eclipse-plugin editor


【解决方案1】:

发现了一个窍门。

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();
}

这会使编辑器变脏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-08
    • 2010-11-09
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多