Mmrnmhrm Developer Notes

Thesis document for the Mmrnmrhm project: http://web.ist.utl.pt/bruno.d.o.medeiros/thesisdoc-v4final.pdf
The info available there is:

  • Chapter 2: Very basic overview of the Eclipse Platform, and the extension capabalities for an IDE. Noting new for Eclipse plug-in developers, and also not much use for newbies.
  • Chapter 3: General topics for the creation of feature-rich IDEs, Eclipse based or not, but heavily inspired on JDT. Has some use useful info.
  • Chapter 4: Details the implementation of Mmrnmhrm. Useful to get an overview of the internals of Mmrnmhrm.

Development Tasks on the TODO list:

  • Further integration with DLTK
    • Code Templates - shouldn't take too long
    • Call Hierarchy - shouldn't not be too complicated, but also I don't see as very useful.
  • Semantic engine improvements
    • Better find-ref - leave it for me (BrunoM)
    • Test cases - easy for anyone to contribute
  • Descent integration
    • Big question: should the development of the Mmrnmhrm custom semantic engine (aka dtool) be continued, or should DMD engine be used? (Descent's approach) Still unclear. A nice implementation of code completion using DMD's engine is necessary (for me at least) to prove DMD's engine worthiness.
  • Code formatter (problem: uses Descent code formatter uses Public AST and not DMD AST -> yet another AST to maintain, and also a potential performance issue)
  • Debugging and Descent's debugger
    • Some improvements could be made here, but I have to look into the capabilites of Descent's debugger further.
    • DLTK has some stuff to offer here, but is worth (haven't looked much into it).
  • Builder improvements: Interesting thing to have:
    • Support for _extended_ build folder
    • Module Dependency analysis, timestamp verification (for conditional compilation instead of full). Interesting but rebuild should handle the job now.
  • Parser error recovery improvements (useful for better code completion)
    • Given the ported nature of the parser, extensively adapting it is job adequate only for hardcore developer or Walter itself :/.
    • But some error recovery using wrappers should be possible already.