2009-12-24 61 views
1

我目前正在开发一个Eclipse插件。当被调用时,我的插件将读取活动的(当前打开的)源文件的数据,并将对源代码执行一些格式化,然后它将更新结果到同一个活动的源文件。如何在Eclipse插件中读取文件中的数据?

现在我的问题是:

  1. 如何从活动的源文件中读取数据?我是否需要获取此文件的文件位置并直接从该文件中读取,或者有任何其他方式来执行此操作?
  2. 从上面的第1步获取并处理数据后,如果我将输出更新为活动文档,那么Eclipse会抛出任何IOException? Eclipse会不会锁定源文件? (我认为不是,因为我看到其他编辑更新了源文件,同时它也在Eclipse中打开了,但是为了确切知道,我在这里提出了这个问题。)

回答

4

您应该使用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。它允许您操作当前活动源文件中的文本。