对话框中的 Xtext DSL 嵌入式编辑器

use*_*666 5 eclipse-plugin eclipse-rcp xtext

我是 xtext 的新手,我使用 xtext 创建了一个 DSL,并生成了工件,它生成了具有许多功能的编辑器,例如内容辅助和语法着色,现在问题是我想将编辑器嵌入到对话框中。

为了使用 EmbeddedEditor 实现这一点,我能够获取嵌入式编辑器并将其放置在对话框中,但嵌入式编辑器不显示文件的内容。

文件 C:/Eclipse_Work/workspace/runtime_workspace/apa/ex.mydsl 包含:

import com.ex.test;
entity{
 element a;
}
Run Code Online (Sandbox Code Playgroud)

对话框的 createcontrol() 中的代码是:

import com.ex.test;
entity{
 element a;
}
Run Code Online (Sandbox Code Playgroud)

当我运行项目时,对话框会打开一个编辑器区域,但它没有显示 ex.mydsl 中的代码,编辑器是空的。

请告诉我如何在嵌入式编辑器中显示代码

thS*_*oft 2

您必须将编辑器的初始内容指定为editablePart的参数createPartialEditor(String prefix, String editablePart, String suffix, boolean insertLineBreaks)。要将XtextResource的内容作为文本获取,请将其保存ByteArrayOutputStream到 a ,然后使用将其转换为字符串toString.