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

标签 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;
}
对话框的 createcontrol() 中的代码是:
    IEditedResourceProvider resourceProvider=new IEditedResourceProvider() {
        
        @Override
        public XtextResource createResource() {
            try {

                Resource resource = resourceSet.createResource(URI.createURI("C:/Eclipse_Work/workspace/runtime_workspace/apa/ex.mydsl"));
                XtextResource resource2=(XtextResource)resource;
                
                return (XtextResource) resource;
            } catch (Exception e) {
                return null;
            }
        }
    };
    
    MyDslActivator activator = MyDslActivator.getInstance();
    Injector injector = activator
            .getInjector(MyDslActivator.COM_APAMA_STUDIO_QUERY_EXT_MYDSL);
    
    @SuppressWarnings("restriction")
    EmbeddedEditorFactory factory = injector.getInstance(EmbeddedEditorFactory.class);
   EmbeddedEditor handle= factory.newEditor(resourceProvider).withParent(
            composite);
   
   EmbeddedEditorModelAccess partialEditor= handle.createPartialEditor();

   
   handle.getViewer().getControl().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true, 2, 0));  
当我运行项目时,对话框会打开一个编辑器区域,但它没有显示 ex.mydsl 中的代码,编辑器是空的。
请告诉我如何在嵌入式编辑器中显示代码

最佳答案

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

关于eclipse-plugin - 对话框中的 Xtext DSL 嵌入式编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15324481/

相关文章:

eclipse - Eclipse TCP/IP 监视器的独立替代方案

java - 动态调整 SWT 文本字段的大小

java - Eclipse Job从运行Job开始获取NotesSession

eclipse - 从 IEDitorPart (Eclipse) 获取 ITextViewer

android - ADT 需要 'org.eclipse.wst.sse.core 0.0.0' 但找不到

java - 如何在 Eclipse RCP e4 中制作多个窗口

java - Eclipse 和 Xtext - DSL 编辑器在部署时不起作用

java - 我们如何在 XText Grammar 中调用 Java UDF?

java - ClassNotFoundException : junit. framework.TestCase 无法被 org.eclipse.xtext.junit_2.4.3.v201309030823 找到

java - 如何在 eclipse rcp 中编辑 workbench.xml 特定节点的值