Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XTend第二个Eclipse应用程序未更新_Eclipse_Ide_Grammar_Xtext_Xtend - Fatal编程技术网

XTend第二个Eclipse应用程序未更新

XTend第二个Eclipse应用程序未更新,eclipse,ide,grammar,xtext,xtend,Eclipse,Ide,Grammar,Xtext,Xtend,我是一名学生,目前正在攻读计算机科学和软件工程学士学位 出于好奇,我开始把空闲时间花在DSL上,并买了Lorenzo Bettini的书《用XText和Xtend实现特定领域的语言》 在这本书中有一个例子,我试图重新实现,以掌握XTend的基本知识。但我遇到了一个问题 这个例子是一个生成的小DSL,然后您必须打开一个新的Eclipse应用程序,并且可以使用这个DSL。 书中提到,如果我以任何方式更改DSL,然后转到XTend生成的以“.mwe2”结尾的文件,并将其作为mwe2工作流运行,则应在第

我是一名学生,目前正在攻读计算机科学和软件工程学士学位

出于好奇,我开始把空闲时间花在DSL上,并买了Lorenzo Bettini的书《用XText和Xtend实现特定领域的语言》

在这本书中有一个例子,我试图重新实现,以掌握XTend的基本知识。但我遇到了一个问题

这个例子是一个生成的小DSL,然后您必须打开一个新的Eclipse应用程序,并且可以使用这个DSL。 书中提到,如果我以任何方式更改DSL,然后转到XTend生成的以“.mwe2”结尾的文件,并将其作为mwe2工作流运行,则应在第二个应用程序中自动更改,其中使用了DSL

但是我的第二个应用程序没有更新。首先,我有一个简单的语法,允许我使用括号之间没有输入的数组,例如Entity[]myEntity; 然后在示例中演示了如何更改语法以获得语法,例如Entity[10]myEntity;。我已经相应地实现了,但是如上所述,第二个IDE没有更新

我还检查了Eclipse是否自动启用了Build

有人知道我的错误是什么吗


(我不确定是否允许我在这里发布这本书的示例。)

使用第二个Eclipse实例测试DSL是一种首选方法。使用Eclipse的调试模式启动第二个Eclipse实例,一些代码更改会自动传播到正在运行的第二个测试实例中

但是,将代码更改传播到正在运行的Eclipse实例中有一些限制:不能传播任何类签名上的任何更改。无法传播新类。无法卸载已删除的类

需要重新生成语言的语法更改将更改类签名并创建/删除类。这意味着您必须在重新生成该语言后重新启动第二个Eclipse实例。即使添加/删除类或方法,也必须重新启动Eclipse应用程序


正如我所记得的,Eclipse将打开一个信息对话框,要求您重新启动第二个Eclipse实例。

您指的是哪一章?您确定在重新运行工作流后重新启动了运行时eclipse(第二个)吗?正是工作流MWE2之后的第2章。我的理解如下。更改语法并运行工作流文件mwe2后,第二个eclipse应用程序将自动更新。然后我就可以使用更新的语法了。当然,如果我关闭第二个应用程序并重新启动它,它会更新。不幸的是,这只是一个误会。不,您需要关闭并重新启动seconf eclipse