Languages created with MPS are typically packaged together with their tooling into dedicated IDEs (Integrated Development Environment). These IDEs are then used by the end users - domain experts, who create models using the supplied languages. Since all the language design functionality and unrelated languages have been removed, such IDEs offer less clutter, greater focus and better performance in comparison with using full-blown MPS. Administrator consoles, business rule editors or other similar types of applications are examples of the domains that these dedicated IDEs typically aim at.
This page provides the fundamental knowledge that the users of such single-purpose IDEs need in order to operate the tools efficiently.
Before you start
Other user guides
- User Guide for Language Designers - if you want to learn how to create languages of your own in MPS
- MPS user guide for Java developers (IntelliJ IDEA) - if you are a Java developer and look for ways to seamlessly combine MPS-based languages with Java
- Standalone IDE user guide - covers the topic of using MPS-based standalone IDEs
- Basic notions of MPS: nodes, concepts, and languages
- MPS project structure
- Default keymap reference
Setting things up
In order to program in MPS-based languages you need to start up MPS or a standalone IDE that was built specificaly for these languages. These dedicated IDEs are essentially cut-down variants of MPS itself, which do not distract a DSL user with unrelated languages and language-design capabilities.
MPS-based IDEs are typically standalone Java applications with their own installation procedure. Please follow the instructions provided by the IDE vendor to properly setup the tool and run it.
Just like MPS itself, standalone MPS-based IDEs can be configured and customized using the Settings dialog, which you can invoke through the menu, a toolbar or using a keyboard shortcut (Control + Alt + S / Cmd + ,). Although the actual contents of the dialog may differ among different applications, they typically offer some basic settings for the editor, generator and perhaps VCS. Some may also allow to manage plugins, enable and disable individual languages or integrate third-party tools.
Please refer to the documentation of your particular tool for more details on its configuration.
The clever projectional editor in MPS is slightly different from what you may be used to. Since the editor is the most visible element, which you'll get to know as soon as you start interacting with your code, we prepared a short introductory document - Comanding the editor.
Resolving difficulties, understanding reported errors
The Finding your way out of a problem page should give you a hand whenever you run into a problem.
Being projectional in the world that has been built on text brings about some challenges. Integration with VCS systems is one of them. In order to be able to standard VCS systems, such as Subversion or Git, MPS provides an add-on that hooks into the important VCS events and gives you a projectional way to merge code and resolve conflicts. With this add-on installed your MPS-based IDE will give you the experience you expect from a VCS for your projectional code.
Check out the details at the Version Control page.