As an exercise of getting to know MPS, I'm trying to write an editor/ide for the Robot framework's TSV formatted test scripts. I've gotten to the point where I've built one concept - the Test case, and so far the editor's looking good and I'm finally grokking the generation step. Here are some of my questions/comments.
My general idea was to use MPS to come up with a smart IDE for Robot scripts. It should support a context-sensitive, syntax highlighted editor; the ability to generate the TSV files for offline runs via Ant/Hudson/Cruise Control, and the ability to run the test if required from within the IDE itself. Finally, it should be installable as a standalone app so that normal people (read non-developers) can just install and start using it.
So below are a bunch of comments/questions that I had about the general experience of using MPS. Please let me know if each one merits a different thread, and I shall post as such.
- Language Definition: I love the editor interface, but dont understand the need to still define character markers such as "(>" and "[>". Since the editor is a full fledged structural editor, why retain the text markup? Why not use graphical ways of denoting start/end - either using the syntax highlighting or allowing actual glyphs like the long pink braces you have with the templates and macros? This is a nit pick, however. I'm just happy there's a structural editor for code :-)
- Generation: A comment and a question here:
- GText documentation is sorta lacking, and I had to spend quite a bit of time to figure out the right way of using it - still havent got it completely, as my question will show.
- How do I generate tabs in the text output? I've used GText's indentblock and indent in the generation templates, but it seems to output spaces, not tabs as required by the tsv format.
- Deployment: Two issues here:
- I know there's been questions before, but is there any plan to be able to deploy MPS without all the developer support pieces. That is, can I create a language in MPS and deploy a version of MPS that supports that language alone, probably with only core MPS runtime and dependent libraries/languages, but not the whole MPS framework?
- Running MPS on a standard laptop takes ages to load up, and bringing up even Simplest Language hangs my Thinkpad. Is this typical or am I an out-lier? Is there a minimum config required for MPS to work fine?