我过去在一个小项目(如实验室项目)中使用过MPS,因此我对如何使用MPS有了基本的了解(虽然它是版本2.4或类似的东西)。现在我正在尝试介绍一些基于MPS功能构建的实用软件(理想情况下,IntelliJ插件)。由于MPS没有被广泛使用,我想在这里咨询有经验的人。
我想要做的是将一些关系知识数据库访问(SQL查询)包装到基于MPS的插件中。我希望能够快速启动并为已经存在的jdbc-wrapping库生成代码,并且将来我希望能够通过添加特定于db的功能切换到我的实现。与此同时,我希望保留现有的用户模型,以便他们可以轻松切换到新语言,如果这种新语言出现问题,可以退回。如何实现这种易于切换的功能?我的第一个想法是使用没有生成器的抽象语言,并在Idea中将基于mps的模块中的实现语言添加为依赖项(一个或另一个),但我不确定这是否很容易实现。
答案 0 :(得分:1)
是的,如果我理解正确的话,这应该很容易实现。您不需要在没有生成器的情况下编写语言,但可以使用生成器和所有语言设计语言。然后,如果您只想添加用户将能够使用的新构造以及已定义的构造,您可以使用更具体的语言扩展此语言以用于特定于db的功能(如果您希望具有多个特定的功能)语言)。 或者,如果您希望继续使用相同语言并对其进行更新,MPS会提供迁移脚本,您可以在其中指定如何将使用旧版本语言构建的现有模型升级到较新版本。 有关使用MPS制作Idea插件的起点,请参阅https://confluence.jetbrains.com/display/MPSD30/Using+MPS+inside+IntelliJ+IDEA。