Distributing languages as plug-ins for either IntelliJ IDEA, MPS or as your own standalone IDE has become an extremely easy task. The functionality has been packaged into an extension to Build Language, which knows how to build MPS modules and supports all kinds of packaging. You can either write the whole script by hand or rely on the Build Solution Wizard, which helps you start with a new script.
In most cases element containing a reference knows nothing about its scope and best solution is to forward the request upwards. By implementing ScopeProvider you can intercept such requests from your descendants and have full control over their scopes. As from now baseLanguage follows this strategy, so you can restrict visible elements in embedded statements or expressions.
More reliable merge conflict handling with the MPS merge driver: