【问题标题】:How to get unsaved editor input in eclipse?如何在 Eclipse 中获取未保存的编辑器输入?
【发布时间】:2014-12-22 18:49:17
【问题描述】:

我需要获取当前编辑器内容(对于默认编辑器)并将其导出到文件(对于我的 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。

【问题讨论】:

    标签: java eclipse eclipse-plugin


    【解决方案1】:

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

    String text = document.get();
    

    【讨论】:

    • 谢谢。这就是我所需要的。我使用了 BufferedWriter 和 FileWriter 从这个字符串创建了一个文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2011-08-18
    相关资源
    最近更新 更多