我目前正在开发Eclipse插件。当被调用时,我的插件将读取活动(当前打开)的源文件的数据,并对源代码进行某种格式化,然后将结果更新为相同的活动源文件。
现在我的问题是:
如何从活动的源文件中读取数据?我是否需要获取此文件的文件位置并直接从那里读取,还是有其他方法可以做到?
从上面的步骤1获取并处理数据之后,如果我将输出更新为活动文档,那么Eclipse会抛出IOException吗? Eclipse会锁定源文件吗? (我认为不是,因为我看到其他编辑器也在更新源文件,尽管它也在Eclipse中打开。但是要确定知道这一点,我在这里提问题。)
最佳答案
您应该将Eclipse的基础结构用于编辑器和文档。我认为“在Eclipse的背后”更改文件的内容不是一个好主意。
我不是这方面的专家,但是我可以给您一个代码示例以帮助您入门:
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
IWorkbenchPage activePage = window.getActivePage(); // null check omitted
IEditorPart editorPart = activePage.getActiveEditor(); // null check omitted
ITextEditor textEditor = (ITextEditor) editorPart; // casting check omitted
IDocument currentDocument = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
检出
org.eclipse.jface.text.IDocument
API。它使您可以操作当前活动源文件中的文本。