获取编辑器的内容

时间:2011-07-12 08:26:21

标签: java eclipse eclipse-plugin

我正在尝试开发一个简单的Eclipse插件来理解它是如何工作的。

我有两个问题:

如何获取活动编辑器的内容?

你有关于生命周期插件和合作的好文档吗?我无法在Google上找到真正好的文档。

3 个答案:

答案 0 :(得分:11)

Tonny Madsen的回答很好,但也许更透明(getAdapter()非常不透明)类似于:

public String getCurrentEditorContent() {
    final IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
        .getActiveEditor();
    if (!(editor instanceof ITextEditor)) return null;
    ITextEditor ite = (ITextEditor)editor;
    IDocument doc = ite.getDocumentProvider().getDocument(ite.getEditorInput());
    return doc.get();
}

答案 1 :(得分:8)

关于当前编辑器的内容,有几种方法可以执行此操作。以下代码未经过测试:

public String getCurrentEditorContent() {
    final IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
            .getActiveEditor();
    if (activeEditor == null)
        return null;
    final IDocument doc = (IDocument) activeEditor.getAdapter(IDocument.class);
    if (doc == null) return null;

    return doc.get();
}

答案 2 :(得分:2)

我假设您已经熟悉将Eclipse用作IDE。

  • 使用New Plug-in Project Wizard创建一个新的插件项目。
  • 在“模板”面板上,选择“带编辑器的插件”
  • 阅读生成的代码

如果您认真编写Eclipse插件,那么Eric Clayberg和Dan Rubel撰写的“Eclipse插件”这本书非常宝贵。在读完这本书之前,我无法理解eclipse.org的写作。