- Directly embed Xcore into metamodel definitions
- Factorize adapters creation in dedicated factories
- Externalize all AST-completion operations in a IDerivedStateComputer post-processor
- In-the-large
- Metamodels attributes and operations
- Modeltypes attributes and operations
- Aspects weaving
- Weave aspects into a metamodel
- Allow definition of generic aspects (on modeltypes)
- Generic extraction of metamodel fragments from aspect definition
- Subtyping Algorithm
- Take aspects signatures into account
- Ensure termination (check for cycles)
- Manage subpackages (implicit flattening)
- Preserve the subpackages hierarchy in generated code
- Infer root type of modeltypes and automatically compute root elements list whenever needed (eg. transformation invokation)
- Allow inheritance between metamodels (partially)
- Multiple inheritance/subtyping semantics? e.g. w/o aspects, w/o static sem, partial, etc.
- Allow multiple inheritance of metamodels
- Allow the import of multiple Ecore files in a metamodel declaration
- Allow the definition of model types independently of any metamodel
- Register to the EMF notification system (eg. 2-ways list adapters)
- Allow arbitrary return types for transformations
- Create models from scratch using the generated factories, avoiding families mixing
- Support metamodels making use of external references
- Allow import of Ecore for modeltype definition
- Automatically merge different Ecore inherited and/or imported
- Write static semantic constraints on the abstract syntax
- Manage annotations on Ecore file to specify which elements need to be exposed in the interface
- Expose methods signatures in the interface
- Define inheritance / aspects weaving, etc. in terms of metamodels merging (partially)
- Define independently and use modeltypes algebra for any kind of operators
- Support adaptation mechanisms between model types (at least renaming clauses)
- Manage visibilities, both when extracting interfaces and aspects' semantics
- Allow transtyping @runtime between interfaces (ie. extensions/viewpoints) (to be checked)
- Separate serialization of extensions via specialized EMF Resource
- Aspects import
- Aspects' partial metamodels inference
- Aspects' dynamic biding and overloading
- Subtyping algorithm
- Referenced packages
- Subpackages
- Merge
- Inheritance
- Multiple inheritance
- MelangeResource
- MelangeMetadata?
- ModelTypingSpace manager within Eclipse project or workspace
- Disable Xtext services (indexing, scoping, etc.) on EPackages and their subtree (which constitutes the biggest part of the overall AST)
- Alternatively, remove ModelingElement from the AST and use an external hash table to keep track of the associated EPackages
- Keep track of the generated artifacts (Melange/EMF) and regenerate them only when necessary
- exactType should be immutable reference to the EPackages defining the metamodel they are extracted from. No need to copy anything