0

我过去在一个小项目(如实验室项目)中使用过 MPS,所以我对如何使用 MPS 有基本的了解(尽管它是 2.4 版或类似版本)。现在我正在尝试介绍一些基于 MPS 功能构建的实用软件(最好是 IntelliJ 插件)。由于 MPS 的使用并不广泛,我想在这里咨询有经验的人。

我想要做的是将一些关系知识数据库访问(SQL 查询)包装到基于 MPS 的插件中。我希望能够快速启动并为现有的 jdbc-wrapping 库生成代码,并且将来我希望能够切换到添加了特定于 db 的功能的实现。同时,我想保留现有的用户模型,以便他们可以轻松切换到新语言,并在这种新语言出现问题时回退。如何实现这种易于切换的功能?我的第一个想法是使用没有生成器的抽象语言,并在 Idea 的基于 mps 的模块中添加实现语言作为依赖项(一个或另一个),但我不确定这是否容易实现。

4

1 回答 1

1

是的,如果我理解正确,这应该很容易实现。您不需要制作没有生成器的语言,但可以使用生成器和所有东西来设计您的语言。然后,如果您想简单地添加用户除了已经定义的结构之外还可以使用的新结构,您可以使用更具体的语言扩展该语言以实现特定于 db 的功能(如果您希望拥有多个专业语言)。或者,如果您想继续使用相同的语言并对其进行更新,MPS 提供了迁移脚本,您可以在其中指定如何将使用您的语言的旧版本构建的现有模型升级到新版本。有关使用 MPS 制作 Idea 插件的起点,请参阅https://confluence.jetbrains.com/display/MPSD30/Using+MPS+inside+IntelliJ+IDEA.

于 2016-11-03T19:14:54.853 回答