MPS plugin for IntelliJ IDEA
MPS 2.5 can be run as a plugin for IntelliJ IDEA enabling MPS-based DSLs to be used directly in a Java IDE and so interoperate tightly with the Java code. Custom languages can be exported from MPS as IDEA plugins as well. IntelliJ IDEA became another platform for MPS-based DSLs use, besides standalone Java applications and MPS itself.
There are several aspects of integrating MPS into IntelliJ IDEA:
- MPS Facet + settings (model roots/used languages/output path/...)
- Explore .mps files in IDEA project view -> double-click on root to open editor
- Change model properties (imported models/used languages) by calling popup menu on model file
- Generating code by making the project
- navigate to errors in DSL code reported by generator (make)
- see http://confluence.jetbrains.net/display/MPSInt/MPS+Make+In+IDEA
- two modes of generating files: to different source root or to the same folder next to .mps file
- hiding generated code
- Debugger in IDEA plugin: put a breakpoint into DSL code, run java application and stop on this breakpoint & explore stack trace
- VCS integration
- Actions available in the IDEA plugin
- Navigate to model/module/root (Alt+F1) is similar to MPS
- create complete list?
- Two aspects of working with MPS plugins for IDEA:
- deploying your own languages
- using one of languages distributed with MPS
- MPS plugin distribution description (plugins + possibility to switch then on/off)
The Dependencies analyzer can Analyzer can report dependencies among modules or models. It can be called from the main menu or from the popup menu on a set of modules/models::
The lower panel shows usages of items selected in the right panel in the left tree scope selection interactive report, shown in a panel at the bottom, allows the user to view usages of modules by other modules. The panel on the right side displays modules and models dependent on the module selected in the left-hand side list.
Module Dependencies Tool
With this tool it is possible to overview all the module (or set of modules) dependencies and used languages, detect cyclic dependencies as well as see in details paths that lead to the given dependency. The tool can be invoked from the project pane when one or more modules selected there.