java - 如何在Eclipse插件中以编程方式设置TextEditor的字符串输入?

标签 java eclipse eclipse-plugin eclipse-rcp

我想要什么:我想为我的 Eclipse 编辑器插件编写 JUnit 测试。为此,我想设置一个我的 TextEditor 的实例扩大。然后我想设置这个TextEditor的输入来自字符串,因此字符串的内容是编辑器实例的输入。然后我想运行一些测试并断言编辑器标记错误等等。

我失败的地方:我不知道如何从字符串设置编辑器的输入。编辑器必须执行的唯一功能是 setInput(IEditorInput input) ,但我不知道如何创建 ÌEditorInput以字符串作为内容。

是否有可能这样做,如果没有,是否有其他方法将编辑器的输入设置为给定的字符串?

最佳答案

您可以创建一个(工作区)文件 Greg建议或实现专门的 IEditorInput 并使用此输入打开文本编辑器。

例如:

// uninteresting methods left out for brevity

class StringEditorInput implements IStorageEditorInput {
  @Override
  public boolean exists() {
    return true;
  }

  @Override
  public IStorage getStorage() throws CoreException {
    return new StringStorage();
  }
}

class StringStorage implements IStorage {
  @Override
  public InputStream getContents() throws CoreException {
    return new ByteArrayInputStream( "Hello editor!".getBytes( StandardCharsets.UTF_8 ) );
  }
}

String editorId = "org.eclipse.ui.DefaultTextEditor";
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor = IDE.openEditor( page , new StringEditorInput(), editorId );

关于java - 如何在Eclipse插件中以编程方式设置TextEditor的字符串输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42027933/

相关文章:

java - 如何解决 Maven 依赖项 "Failed to execute goal on project"的问题

java - 捕获 SAXParser 的字节数/偏移量

java - 使用 REST API 在 android 中登录 facebook

java - 为什么用Java下载文件速度这么慢

java - 使用 Spring 为每个操作自定义超时配置

java.lang.NoClassDefFoundError : org/htmlparser/util/ParserException

java - Spring 批处理 :Test case for Tasklet - Key is not appearing in actual class when it is invoked from Test class

java - 将现有类导出到 JAR 后找不到类异常

java - 如何使用 IStructuredSelection 获取多选项目?

eclipse - 在 eclipse "Servers"中查看确切的服务器版本