Xtext项目ecore文件超过50kb。 工作流生成始终正常。但是当我启动编辑器时它会崩溃。
如果我注释掉一些语法规则,将ecore文件大小减少到50kb以下就可以了。但是,一旦出现异常,它就会超过限制:
!MESSAGE com.sample.mydsl.ui.internal.MyDslActivator - Failed to create injector for com.sample.mydsl.MyDsl
...
Caused by: java.lang.RuntimeException: Missing serialized package: myDsl.ecore
at com.sample.mydsl.myDsl.impl.MyDslPackageImpl.loadPackage(MyDslPackageImpl.java:5897)
at com.sample.mydsl.myDsl.impl.MyDslPackageImpl.init(MyDslPackageImpl.java:1084)
at com.sample.mydsl.myDsl.MyDslPackage.<clinit>(MyDslPackage.java:58)
我很确定这不是规则逻辑本身,因为我还测试了将语法限制为运行条件。然后通过模拟规则扩展它以增加文件大小。无论如何它崩溃了......
我猜这个问题比异常消息显示更深层次。
我的工作流程配置如下:
fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
options = {
classSplitting=true
fieldsPerClass = "500"
methodsPerClass = "500"
}
}
same settings for XtextAntlrUiGeneratorFragment
有没有人收集过这些问题的经验?我会非常感谢你的一些建议。