私は 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 に存在するコードが表示されず、エディターは空です。
埋め込みエディタでコードを表示する方法を教えてください