📜 ⬆️ ⬇️

MPS 2018.2: Generator Tests, GitHub Plugin, VCS Aspect, Migration Notifications, and More

Recently a new version of MPS 2018.2 has been released with many long-awaited changes . In short, in this release you are waiting for improvements in migration, new generation plans, GitHub-plugin and more. Details below.

image

Migration notifications

We have implemented migration notifications to better inform you about what is happening: now you will receive a notification if the project depends on a language that cannot be downloaded for any reason, or if the migration is postponed.
')
image

New aspect of VCS

We have added a new aspect of the VCS language. Now, instead of creating annotations for the concept declaration, an aspect of the language is created. An aspect is generated for a specific runtime code. The VCS aspect replaces the MergeHints annotation, migration is provided.

Earlier:

image

Now:

image

GitHub plugin

Implemented GitHub plugin. Now you can log in to GitHub as follows: VCS → Checkout from Version Control → Git → Log in to GitHub ...

image

Generator tests

In addition to the existing family of tests for nodes and the editor, we have implemented a new method for testing generators. The challenge is to confirm that the generator or set of generators really do their job. The IDE supports execution modes both inside and outside the process, as well as execution from MPS Ant build scripts.

image

Branches in generation plans

A new operator appeared in the generation plans: fork with. It forks a sequence of transformations at a given point. The model is transferred to the specified plan in the state in which it was at the branch step, then the transformation is performed as usual. In the example above, the input model is first converted using the crossmodel.entity generator and the state is written, then the crossmodel.property # prop2class generator is used to produce model No. 1. Then the crossmodel.property generator # prop2xml converts the recorded model into the output model # 2. Note that the word “then” here does not indicate a commitment — there is no guarantee that the branches will be processed in any particular order, except that the “main” branch of the original plan will produce the “first and only” output model available through old API (GenerationStatus # getOutputModel) for compatibility / migration.

image

Branches in generation tests

Generator tests support generation plans with the fork operator and compare all output models with the provided source.

image

These and other features of MPS 2018.2 are described in more detail on the What's New page , you can download the new version here .

We try to make MPS even better every day, and your feedback helps us a lot. Always waiting for your comments here or in the tracker .

Your JetBrains MPS Team
The Drive to Develop

Source: https://habr.com/ru/post/420799/


All Articles