Let's say I have a super-wonderful new programming language, and I want there to be an IDE for it. What IDE platform/framework could I use to get this done efficiently? I mean things like:
- Collection of files in a project, searching them, tabbed/split editors etc. — the basics.
- Syntax highlighting and auto-indent/reformatting.
- Providing the user interface for code completion — hit tab, get a list (I'll have to implement the necessary partial evaluation myself (it's a dynamic language)). This is the feature I'm most wishing for.
- Built-in parser framework which is good at recovering from the sort of syntax errors occurring in code that is in the middle of being edited would be helpful.
- In-editor annotation of syntax/runtime error locations fed back from the language runtime.
- REPL (interactive evaluator) interaction with the same completion as in the editor.
This system should be Linux/Mac/Windows cross-platform (in that priority order). Being implemented in Java (or rather, accepting language plugins written in Java) is possibly useful, but anything else is worth a try too.
Please include some information about what it's like to add language support for your suggestion: what the APIs are like, how much code needs to be written to add support for the features I've mentioned above, what generic facilities (e.g. parser) it provides, and so on. I already know vaguely that Eclipse, IntelliJ, Emacs, etc. exist; tell me how good they are for this purpose!