我需要获取当前的编辑器内容(对于默认编辑器)并将其导出到文件中(对于我的 Eclipse 插件)。
例如,假设程序员打开了 file test.java,它有以下 2 行:
System.out.println("Line 1");
System.out.println("Line 2");
但后来他添加了一行新行,例如 follow,但没有保存它。
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。
IDocument
有一个get
方法来返回文档的文本:
String text = document.get();