One of the neat enhancements that has been implemented in MPS 3.1 is the ability of the editor to automatically re-resolve broken or out-of-scope references. Imagine, for example, that you refer to a field from a piece of BaseLanguage code, e.g. from a method body.
Highlighting the field’s usages (Control/Cmd + Shift + F7) confirms that the reference points to the field declaration.
If, at this point, you introduce a parameter to the method with the same name, the field declaration gets moved out of the scope, since the parameter hides it. The reference gets automatically re-resolved to the parameter declaration so that the code remains valid.
If you eventually remove the parameter, the reference will start pointing at the field declaration again.
This capability also enables you to first type in the reference and only then create a definition that the reference should point to.
To enable automatical reference re-resolution, you need to enable the corresponding flag on the Editor page in the Project settings.
We’ve also shot a short video showing this and other scenarios when this capability comes in handy. Check it out.
Develop with pleasure!
-JetBrains MPS Team