5

私は 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 に存在するコードが表示されず、エディターは空です。

埋め込みエディタでコードを表示する方法を教えてください

4

1 に答える 1