On Jan 3, 2008 7:43 AM, Oliver <[EMAIL PROTECTED]> wrote: > 4. Configurable menu/toolbar: the problem with many IDE's that > provide extension points is that the UI does not define where the > plugin's UI should go. E.g. I have seen editors/IDE where all > plugin menu items go in one "tools" menu.
Amen, brother. In addition, some IDEs populate the menubar/toolbar with every possible item and just disable the inapplicable items. This is much more cluttered than simply leaving out the items that don't apply to the sort of text file you're editing. Emacs does a good job by dynamically modifying the menu depending on the major mode and is what I tried to duplicate. This was not as easy is I had hoped -- I even tried a constraint solver to allow plugins to define what menu items they came before or after. I don't have a great solution to this currently, as the items insert themselves at some location in one of the menus at a default position, with the idea that there will be a menu location editor at some point where the user can reposition everything at will. > So the goal must be to provide an architecture that > allows developers to combine efforts. Indeed, that's the problem. But it's a big one. A flexible architecture is extremely difficult to write, which is why everyone (myself included) seems to start out writing a flexible architecture but ends up constraining themselves and and making choices that limit the flexibility in order to get something working. > I'll see if I can go over the interface of a few IDE/editors and give > concrete examples of the above, that should show whether any of it > makes sense in practice :) Every discussion seems to mention Eclipse at some point, although it's obviously in Java and if all of us here wanted to do that we wouldn't be here. But I can't help but think that it's something of that magnitude that we really want. I know how complicated these things get -- I thought peppy would have a stable architecture long ago, but the more flexible an architecture you develop, the more it explodes with interactions among components. Maybe a pure message passing scheme would result in less coupling, but I've found message passing systems to be debugging nightmares. Granted, most of my message passing experience is multiprocessing with MPI, but it scars you. :) At any rate, I'd love to see examples and documentation of other architectures and how they've worked in practice. I'd love to point to peppy's documentation for comparison purposes, but through all fault of my own it has lagged far behind the development. Rob
