Building MPS Projects Using Maven - A Sample

In case you are trying to figure out how to build MPS projects with Maven, I published a sample project showing how to configure Maven and MPS 2019.2 to work together. Get it on GitHub. ...

Build Script Error: Unsatisfied Dependency

The Problem You want to package your language as a plugin for distribution. You have sorted out the build script dependencies and created an idea plugin in the project structure section of the build script with your languages as the content. Now MPS reports an error for the contents, showing you a long list of “unsatisfied dependencies”: Now when you go and try to add these dependencies to the idea plugin’s dependency section, you find that they are not listed in the completion menu....

Build Script Error: Dependency On A Module Not Visible From Current Build Project

The Problem You have created a language based on mbeddr Platform, MPS Extensions, or KernelF (or all of the above). Now the time has come to create a build script for your language to package it for delivery to the users. However, after creating the build script you get an error message saying Error: dependency on a module not visible from current build project: What Is Going On Here? The solution jetbrains....

The Simplest Way To Use MPS Open API

MPS enables language developers to modify models programmatically via its Open API. The API is quite straightforward and clear. What’s not so clear and where newcomers to MPS often get lost is where to put the code and how to get MPS to execute it. Oh, and how to get the project reference, since this is often the first step to be able to actually write some Open API code....

Create A MPS Concept Declaration Programmatically

MPS offers the API to create concept declarations programmatically. This may come in handy when writing an importer or a converter, for example. However, it may not always be clear what API to use. Here is how you create a concept from code: public class AddConcept { public static node<ConceptDeclaration> addConcept(SRepository repo, model-ptr structureModel, string conceptName) { node<ConceptDeclaration> decl = new initialized node<ConceptDeclaration>(); decl.name = conceptName; node<PropertyDeclaration> prop = decl.propertyDeclaration.add new initialized(<default>); prop....

Fixing The 'Plugin Incompatible With The Current [CUSTOM RCP] Version' Error

You used the MPS built-in wizard to create a RCP build and you built your RCP on it. Now you are testing whether it works and find the RCP complaining about a plugin being incompatible (“MPS Testing: Incompatible with the current [CUSTOM RCP] version”): Looking carefully through the IDE logs, you may stumble upon a message similar to this: 2019-06-01 13:36:15,795 [ 2136] INFO - #com.intellij.ide.plugins.PluginManager - Plugin 'MPS Testing' can't be loaded because: Plugin since-build or until-build don't match this product's build number...