Eclipse插件开发:如何访问在eclipse编辑器中编写的代码

时间:2018-06-06 11:53:17

标签: java eclipse-plugin code-editor

我正在创建一个Eclipse插件,需要访问Eclipse编辑器中编写的代码。我已经按照链接中提到的过程进行了操作。 Accessing Eclipse editor code 但它在消息框中显示文件路径而不是代码。 IEditorEditor 类的 getEditorInput()根据链接没有做它应该做的事情。这是我的代码。请帮我找一下我做错的事。

public Object execute(ExecutionEvent event) throws ExecutionException {
    IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);

    IEditorPart editor = ((IWorkbenchPage) PlatformUI.getWorkbench()
            .getActiveWorkbenchWindow().getActivePage()).getActiveEditor();

    IEditorInput input = (IEditorInput) editor.getEditorInput();     // accessing code from eclipse editor

    String code = input.toString();

    MessageDialog.openInformation(
            window.getShell(),
            "Project",
            code);

    return null;
}

这是输出的快照。 enter image description here

1 个答案:

答案 0 :(得分:3)

你可以通过两种不同的方式做到这一点。无论内容是否由磁盘上的文件支持,这种方式都有效。

此方法从编辑器获取文本IDocument,这是大多数用途存储和访问内容的方式。 StyledText是一个小部件,除非您正在使用小部件和控件执行某些操作,否则它不是正确的方法。为此,您将从编辑器部分通过ITextEditor界面,并且然后使用IDocumentProvider和当前编辑器输入。这是在事先删除您想要执行的instanceof检查,以及如果这是MultiPageEditorPart中的页面,则可能需要执行的任何操作(没有标准方法来处理这些内容)。< / p>

org.eclipse.jface.text.IDocument document = 
    ((org.eclipse.ui.texteditor.ITextEditor)editor).
    getDocumentProvider().
    getDocument(input);

您可以通过IDocument获取和修改内容。