Problems creating a standalone IDE

I am trying to create a build script to my language. I keep getting this error and I don't know how to solve. I have already read the Getting the dependencies right, but I am sure it's not a bootstrap dependency.

Could anyone give some tip?

9 comments
Comment actions Permalink

"dependency on a module not visible from current build project" means you need to add the build script of that other project to your build script's dependencies:

0
Comment actions Permalink

Thanks for the help! Solved this problem, but couldn't solve other problems that came after that. :S

Now, this is the error I am receiving:

I have tried to write these dependencies on the field bellow where it is named dependencies inside idea plugin.

I also tried to write these dependencies on the field naned dependency on the top of the script.

Couldn't solve either.Finally, I also tried to add these dependecies through ctrl+R.

 

 

I also think is helpful to print here what I've done to solve the previous error. I have installed the mbeddr and IETS3 things as Markus Voelter teaches in his tutorial on YouTube.

I also keep receiving errors when I try to rebuild the build model. I wrote a java library to assist my language and I imported it as a solution model the way  Fabien Campagne suggests in his book (I create a solution, extend JDK, add the library on the Java aspect and then add a model root and the set the .jar as a source). When I try to rebuild the build model, it says it can't find the .jar, even though it works perfectly fine on my sandbox.

I also created a DevKit with some languages and it's the only dependency my sandbox model depends. Should I add the DevKit to build script? What the tutorial suggests is to just not add the sandbox solution.

 

0
Comment actions Permalink

Hi Matheus,

regarding unsatisfied dependencies: the message lists modules but you need to find out which plugins include those modules and add dependencies on those plugins. I wrote a blog post with more details on how to figure out which plugins to add.

The .jar problem is solved by adding the JAR to the build script under the plugin. Federico Tomassetti's article on adding JARs covers this in the last section.

You should add the devkit to the build script since you probably intend to distribute it to the users of your language. You don't need to add the sandbox solution unless you want it built as part of the overall build.

0
Comment actions Permalink

I am still with troubles, different ones, but trouble.

Now my build script has no type system errors, :). But the generator still not generates.

I have a runtime solution that is a .jar that I have set the way Federico Tomasseti teaches in his article. I am receiving the same error of his:

Obviously, I have tried Tomasseti's solution:

 

But the things seem different when I am running a Standalone IDE plugin:

 

 

I added to the default folder children that were generated by the wizard a zip, just the way Tomasseti teaches. But I keep receiving this error when I try to rebuild the solution and the "preview generated text" does not work.

I think it is something specific to Standalone IDE's build scripts because when I tried to create a build script for an MPS Plugin it worked with Tomasseti's suggestion.

Any advise?

0
Comment actions Permalink

I don't know if the [CENSORED] plugin in the [CENSORED].zip is the same as the [CENSORED] plugin in the plugins folder but if it is, then there are two things I'd try:

1. You probably need to add the resources_project.jar to that plugin as well.

2. I vaguely remember that the build language generator may get confused if you have the same plugin twice in the layout like you do. Try only adding it there once.

0
Comment actions Permalink

The first suggestion of Sergej Koščejev worked. I think MPS developers should add a type system rule into Build Language to advise it.

Surprisingly,  the output of Build and BuildDistribution ran at first. But, when I opened the Win distribution of my IDE, the MyLanguage.bat didn't work.

I read in the documentation that:

"There is no windows-specific distribution generated by the builds scripts. To run the generated standalone IDE on windows, you need to use the generated generic zip file, copy the contents of the win directory into the bin directory and use the mps.bat file to start the IDE."

What I've done? I went to the Generic distribution that I downloaded from the site and copied everything there to the bin of mine windows distribution. When I copied, I had to replace 12 or 13 files. Then my IDE opened. But when it opens, despite having MyLanguage as title and not allowing to create languages. But my language is not there!

Just to compare, some weeks ago, to prepare for this journey, I have created a Standalone IDE for Shapes. I think it could be better, but I was able to change the loading screen to a pudding and allowing to create amazing shapes with the IDE. Here the prints:

 

Why does it allow to us use other languages than Shapes? I don't know, but I think I could teach my domain expert to live with it.

I was expecting a similar behavior with MyLanguage. It is opening a Standalone IDE when I click on mps.bat on the bin of MyLanguage/bin (I am happy about that). But live is not always easy and what I got was this error, that not allows me to choose MyLanguage when creating a model:

java.lang.Throwable: Assertion failed: /plugins/list/
at com.intellij.openapi.diagnostic.Logger.assertTrue(Logger.java:180)
at com.intellij.util.Urls.newFromEncoded(Urls.kt:71)
at com.intellij.ide.plugins.RepositoryHelper.loadPlugins(RepositoryHelper.java:106)
at com.intellij.ide.plugins.RepositoryHelper.loadPlugins(RepositoryHelper.java:94)
at com.intellij.ide.plugins.RepositoryHelper.loadPlugins(RepositoryHelper.java:85)
at com.intellij.ide.plugins.PluginManagerConfigurableNew.loadPluginRepositories(PluginManagerConfigurableNew.java:1389)
at com.intellij.ide.plugins.PluginManagerConfigurableNew.lambda$createTrendingPanel$13(PluginManagerConfigurableNew.java:778)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:311)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

At the plugin list of MyLanguage Standalone IDE, there is a very promising error:

 

What happens when I click enable? Nothing.

I have to say my build script has a dependency on this plugin. It's exactly the same plugin Serjej explained to add in his blog post!

I have already tried the workaround of adding the child import org.iets3.core.os to the plugin folder. I got a similar error:

What is MPS expecting of me?

0
Comment actions Permalink

Looks like you only included the iets3.core.os plugin in your RCP but it needs lots of mbeddr/MPS-extensions plugins. You have to include those as well.

0
Comment actions Permalink

I am writing these plugins, but it feels so wrong.

Now I need to import another artifact, de.itemis.mps.extensions.build. Also, all of them appear at the plugin page at my standalone IDE. What will prevent my domain expert to import these languages?

0
Comment actions Permalink

The usual solution is to create a devkit with just the languages you want them to use and tell them to use that devkit in their models. Unfortunately, MPS doesn't provide an out-of-the-box way to restrict the RCP like you want.

0

Please sign in to leave a comment.