在che中增長EMF支持 - Day0:動機和第一步

在2016,eclipse che在2016被髮布。做爲eclipse生態環境中的基於雲的IDE,乍一看它只是在瀏覽器中運行的一個IDE。java

clipboard.png

然而,che有一個頗有趣的特性:可共享的工做空間。一個工做空間是指一個工程以及他的編譯、調試、執行環境。傳統意義上,工做空間是一個屬於本地的概念,開發者在本地確保源碼所需的工具都安裝完備。而che使用docker容器來支持工做框架的可執行性。使得一個工做空間能夠被多個開發者共享。這就減小了新的開發者加入一個組時,須要的那些配置環境等等的複雜操做。能夠經過訪問 https://www.eclipse.org/che/ 來了解更多。git

毫無疑問,咱們對這個新技術很感興趣,其中一部分須要研究的就是「如何使用它以及和其餘eclipse IDE相比它有多強大」。固然,做爲技術開發者,咱們更關心如何將che中沒有的特性和框架加入並延伸至che中。咱們是否可以將在eclipse裏面建立的技術支持移植在che裏面?github

所以,咱們進行的嘗試即是:爲che增長一個新的插件。咱們的目的是瞭解和使用這個平臺並最後給核心開發團隊提供相關的反饋。所以,咱們選擇了一個咱們熟悉的但che還沒支持的特性:EMF( Eclipse Modeling Framework)以及生成代碼。EMF是一個很實用的生成java中實體類的框架工具,能夠自行去了解。docker

本文開始的一系列博客都將圍繞在che中創建EMF支持展開。下圖是咱們目標的一個簡單實例。瀏覽器

clipboard.png

將這個實例分爲幾個部分框架

  1. 建立模型項目
    首先,咱們想可以建立一個「樣例項目」——一個由典型的Ecore包。主要包括一個.ecore文件描述模型和一個.genmodel文件進行代碼生成。所以,咱們須要擴展che使得它能夠提供這個模板,讓這個模板能夠做爲sample加載。在一開始,咱們可能須要使用一個已有的模板項目,這樣使得咱們能夠進一步實現接下倆的需求。
  2. 編輯Ecore文件和GenModel
    固然,咱們也會想要修改這些人工寫的包,因此咱們須要編輯器能支持.ecore.genmodel文件。
  3. 生成代碼
    如題,爲了這個目標,咱們想找一個方法來將現有的生成器整合到che裏面。最後,咱們認爲能夠經過在che里加一個操做按鍵來觸發代碼生成。
  4. 編輯器修改
    咱們想在編輯器裏面方便的編輯和修改Ecore和GenModels,因此須要一個能夠支持樹形/表單的編輯器。(如前面的圖)

好消息是Che全部這一切都是可能的,咱們在Che中實現了EMF支持的原型,以知足全部描述的要求。代碼在這個倉庫eclipse

相關文章
相關標籤/搜索