Separate MPS caches for different MPS distributions based on the same MPS major version

Between MPS major versions, the MPS global caches are nicely separated (e.g. for MPS 2017.1, the cache directory is $HOME/.MPS2017.1 and for MPS 2017.2, the cache directory is $HOME/.MPS2017.2, where $HOME is your home directory, e.g. C:\Users\<yourusername> on Windows or /home/<yourusername> on Linux). Sometimes, there are reasons why you would want to change the cache … Read more

How I make an open source mbeddr developer release

The mbeddr RCP is great, because it gives you a focused MPS-based IDE, including mbeddr.platform, which you can use to write models in the embedded software domain. However, I find it often useful to have the mbeddr.platform plugins (which are generic pieces of functionality useful for any DSL development) available for development as a language … Read more

Language Visualization Plugin for JetBrains MPS

We just finished migrating the language visualization plugin to MPS 2017.3. This extension can visualize the structure of a language graphically, in order to give insight for new people learning a language, and to save effort in creating diagrams of a language. You will need PlantUML to make a picture of the language visualization. The … Read more

How to debug in MPS

The quickest way to start debugging in MPS is the following: We are using com.dslfoundry.plaintextgen as an example. Please be advised that in (possibly earlier) generic distribution versions of MPS, the debugger doesn’t work. You will have to really use one of the dedicated distributions (Mac, Linux, or Windows). Choose your breakpoint by clicking in … Read more

How to write a dump of an MPS model to XML based on its structure

This post has been written using material developed in JetBrains MPS 3.3.5. The example project can be found at DSLFoundry’s MPS example github repository under StructureDumpToXML. It is recommended to have this project opened while going through this howto. Suppose you want to dump a model to some simple XML format without wanting to write … Read more

How to add default to a property in a concept

This post assumes that you have an MPS with mbeddr preloaded. Go to the constraints aspect for the concept you want to add a default to a property: Create a new constraint for this concept: Press Ctrl+L and import the language com.mbeddr.mpsutil.propertydefault: Go to the property constraints and press Enter to make a new one: Choose … Read more

First pre-release of mps-textgen-multilanguage plugin

This plugin enables you to use the standard template mechanism of MPS (node macros, loop macros, property macros, etc.) to generate free text. So if you have some custom text format you want to generate to, you will have a more easy and useful mechanism than the standard MPS textgen. Please see the mps-textgen-multilanguage github … Read more

Where are mbeddr builds located?

Go to the mbeddr build page. Login as guest (username: “guest”, password: “guest”) and then go to Build –> the plugin you want to download (e.g. sl-all) –> branch you want to download from. Then choose Latest successful build –> Artifacts –> Download all (zip) See picture below for the example of the sl-all plugin