如何在eclipse中获得未保存的编辑器输入?

时间:2014-12-22 10:45:47

标签: java eclipse eclipse-plugin

我需要获取当前的编辑器内容(对于默认编辑器)并将其导出到一个文件(对于我的Eclipse插件)。

例如,假设程序员已打开文件test.java,该文件有以下两行:

System.out.println("Line 1");
System.out.println("Line 2");

但随后他又增加了一条新线,但未保存。

System.out.println("Line 1");
System.out.println("Line 2");
System.out.println("Line 3");

我想将其导出到文件而不保存文档。我该怎么办?

(基本上,我的插件会尝试在开始时计算与原始文件的块差异。但是如果程序员在执行之前开始在编辑器中键入(因为差异计算可能需要花费大量文件的时间),那么监听器一旦程序员停止输入,将暂停程序并重新开始块差计算

我的尝试: 我可以得到编辑器输入如下:

   IDocument document = MyMarkerPlugin.getEditor()
            .getDocumentProvider()
            .getDocument(MyMarkerPlugin.getEditor().getEditorInput());

但我不知道如何将Idocument类型的文档导出到文件中。找不到关于此的任何api。

1 个答案:

答案 0 :(得分:2)

IDocument有一个get方法可以返回文档的文本:

String text = document.get();