Xbase与Xtext高级特性解析
1. Xbase基础特性
1.1 导入机制
Xtext在命名空间导入方面提供了支持,而Xbase在此基础上为Java类型导入提供了自动机制,同时为Eclipse编辑器增添了许多UI特性。在使用Xbase的DSL中,只需使用XImportSection规则就能引入这些特性。例如,在Xbase Entities DSL里,可将根规则修改如下:
Model: importSection=XImportSection? entities+=Entity*;添加此规则后,DSL会自动具备与Xtend相同的导入机制。除了标准的Java导入(包括静态导入),还能编写import static extension语句,使静态方法在程序中作为扩展方法使用。此外,Xbase还为DSL编辑器带来了一些出色的UI特性,具体如下:
- 对未使用的导入类型给出警告。
- 提供“Organize Imports”菜单,可通过快捷键Ctrl + Shift + O(Mac上为CMD + Shift + O)调用。
- 自动插入导入语句:当在程序中使用自动补全指定Java类型引用时,会自动添加相应的导入语句。
需要注意的是,运行MWE2工作流后,要合并UI项目中的plugin.xml和plugin.xml_gen