This sample contains an implementation for referencing concept implementing a certain interface concept. See MPS Scopes documentation for further investigation. If you clone the project and open in MPS 2019.3.3 you can use the the links to navigate to the nodes. The editor of the node related by the link will be opened.
Language A provides
- the interface concept ISpecificConcept
- a container for references to concepts implementing ISpecificConcept
ISpecificConcept is just a marker interface. It helps identifying concepts of interest.
All used languages in the current models module (TODO: we should only scan the ones for the model) are scanned for concepts implementing the ISpecificConcept and the result is returned as Scope in the ConstraintDeclaration
The Container is a usage example for the specific concepts. It just contains the references to the specific concepts.
Language B is a sample for any language contributing to the specific concepts. It implements SpecificConcept1 SpecificConcept2 SpecificConcept3 and a Container specialization BContainer for convenience.
The model B in the sandbox solution contains the test container.