代码生成器doGenerate在示例Xtext项目中不生成代码到txt文件

时间:2019-06-14 03:17:52

标签: dsl xtext xtend

我试图了解代码生成器doGenerate如何调用。我以没有任何自定义更改(仅问候)的Xtext项目为例。默认情况下,代码生成器如下所示:

override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
    fsa.generateFile('greetings.txt', 'People to greet: ' + 
        resource.allContents
            .filter(Greeting)
            .map[name]
            .join(', '))
}

运行生成的Eclipse插件并在/ src中以正确的扩展名(src.MyDsl)创建新的Java项目。并将项目转换为xtext性质,我写了一些问候并保存。但是在src-gen中,我没有看到生成的文件greetings.txt。 因此,解释器可以工作,但不能保存代码。

我在Question: xtext-dogenerate method is not called中发现,要保存代码的文件需要正确的文件扩展名(区分大小写)-(完成),项目-xtext性质-(完成)并构建需要自动启用。

我的问题是如何使它能够自动使用doGenerate Code Generator?这样我就可以在greetings.txt中看到生成的代码

1 个答案:

答案 0 :(得分:0)

您必须确保

  • 您的模型项目具有Xtext性质和构建器(右键单击,配置)-您将被询问是否打开文件
  • 您已自动启用构建
  • 如果模型项目是Java项目,则模型文件应位于源文件夹中
  • 文件扩展名正确(区分大小写)src.MyDsl在这方面可疑