Open amirmv2006 opened 4 years ago
Currently the plugin checks that the mps
build configuration contains an artifact with coordinates com.jetbrains:mps
so using a custom version of MPS won't work unless you publish it under group com.jetbrains
and artifact ID mps
. See code in your fork here. I think we could relax this requirement, but for now your only option is to use additional plugins via pluginLocation
and plugins
as you mentioned.
Yes, it could probably be made to work using the Gradle dependencies mechanism, the only problem I can think of is that MPS wants to know the ID of each plugin when loading it and the ID does not always correspond to its folder name.
Thank you for your reply Sergej, initially I was using the folder name, but then I made some extra changes to actually parse the META-INF/plugin.xml
file and extract plugin id from there.
Looks good but it's probably better to make it lazier, to improve startup time. Currently the initialization code will look into the files every time Gradle is run even if you end up not running the task, correct?
Good point, TBH I'm a bit new to gradle and you're probably right, so I'll look into that 👍. I'll also make some more adjustments to cleanup and get closer to a real-life solution 😅
Hi, I have been trying to automate generating a model using a language I created myself, but it's more complicated than I thought! After some digging I found your useful plugin and now I think I'm very close. I have a couple of questions and a possibly suggested solution!
What is the best practice for using
generate-models
plugin? Is the downloaded MPS supposed to have all the required languages present already (maybe using an internal maven repo hosting the MPS generated from the languages)?If we should use a "clean MPS", then should we use the
pluginLocation
andplugins
to define list of plugins that contain the required languages?If the latter is the way to go, why not define these language plugins through dependencies? (something like this maybe, example usage) if this is approved, I will clean up and create a proper pull request