Build script error: "Cannot find used language in dependencies"

The Problem To define editors for your language you used plugins from MPS-extensions or mbeddr platform, such as grammar cells, tables, or diagram editors. Now you want to distribute your language to your users as a plugin. You have created a build script and it looks correct, MPS also tells you there are no errors in it. However, when you try to generate the Ant build file from it, you get the following error message:...

Debugging denerators

Sometimes your MPS generator doesn’t generate what you expect. For these cases MPS has tools to help you pinpoint the exact misbehaving rule. The Steps When a generator doesn’t give you the output you expect, here is what you can do: Enable keeping transient models. Rebuild your model. Find the first transient model with the error. In the editor, select the incorrectly generated node. Right-click on the node and choose Language Debug → Show generation traceback in the context menu....

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...

About

Hi! I’m Sergej I help JetBrains MPS developers build high quality domain-specific languages and tooling. Are you evaluating JetBrains MPS? MPS is a platform with unique characteristics and some experience is helpful to properly evaluate its benefits and drawbacks in the context of your organization. I have been involved in multiple projects using MPS and can help you evaluate whether MPS is a good fit for your problem and your environment....

Build Script Notifier End-User License Agreement

End User License Agreement (EULA) for the Build Script Notifier MPS plugin from Sergej Koščejev (“the Author”). Terms and Conditions BY DOWNLOADING, INSTALLING, USING, TRANSMITTING, DISTRIBUTING OR COPYING THIS SOFTWARE (“THE SOFTWARE”), YOU AGREE TO THE TERMS OF THIS AGREEMENT (INCLUDING THE SOFTWARE LICENSE AND DISCLAIMER OF WARRANTY) WITH SERGEJ KOŠČEJEV, THE OWNER OF ALL RIGHTS IN RESPECT OF THE SOFTWARE. PLEASE READ THIS DOCUMENT CAREFULLY BEFORE USING THE SOFTWARE....

Want to receive MPS tips directly in your inbox? Leave your e-mail address below.