在che中增加EMF支持 - Day0:动机和第一步

在2016,eclipse che在2016被发布。作为eclipse生态环境中的基于云的IDE,乍一看它只是在浏览器中运行的一个IDE。

然而,che有一个很有趣的特性:可共享的工作空间。一个工作空间是指一个工程以及他的编译、调试、执行环境。传统意义上,工作空间是一个属于本地的概念,开发者在本地确保源码所需的工具都安装完备。而che使用docker容器来支持工作框架的可执行性。使得一个工作空间可以被多个开发者共享。这就减少了新的开发者加入一个组时,需要的那些配置环境等等的复杂操作。可以通过访问 https://www.eclipse.org/che/ 来了解更多。

毫无疑问,我们对这个新技术很感兴趣,其中一部分需要研究的就是“如何使用它以及和其他eclipse IDE相比它有多强大”。当然,作为技术开发者,我们更关心如何将che中没有的特性和框架加入并延伸至che中。我们是否能够将在eclipse里面创建的技术支持移植在che里面?

因此,我们进行的尝试便是:为che增加一个新的插件。我们的目的是了解和使用这个平台并最后给核心开发团队提供相关的反馈。因此,我们选择了一个我们熟悉的但che还没支持的特性:EMF( Eclipse Modeling Framework)以及生成代码。EMF是一个很实用的生成java中实体类的框架工具,可以自行去了解。

本文开始的一系列博客都将围绕在che中建立EMF支持展开。下图是我们目标的一个简单实例。

将这个实例分为几个部分

  1. 创建模型项目
    首先,我们想能够创建一个“样例项目”——一个由典型的Ecore包。主要包括一个.ecore文件描述模型和一个.genmodel文件进行代码生成。因此,我们需要扩展che使得它可以提供这个模板,让这个模板可以作为sample加载。在一开始,我们可能需要使用一个已有的模板项目,这样使得我们可以进一步实现接下俩的需求。
  2. 编辑Ecore文件和GenModel
    当然,我们也会想要修改这些人工写的包,所以我们需要编辑器能支持.ecore.genmodel文件。
  3. 生成代码
    如题,为了这个目标,我们想找一个方法来将现有的生成器整合到che里面。最后,我们认为可以通过在che里加一个操作按键来触发代码生成。
  4. 编辑器修改
    我们想在编辑器里面方便的编辑和修改Ecore和GenModels,所以需要一个可以支持树形/表单的编辑器。(如前面的图)

好消息是Che所有这一切都是可能的,我们在Che中实现了EMF支持的原型,以满足所有描述的要求。代码在这个仓库。

你可能感兴趣的:(ide)