From: Erik H. <eh...@ne...> - 2001-01-22 22:45:00
|
"Slava Pestov" <sp...@gj...> wrote: > I have an idea I might implement in jEdit 3.1 -- mode-specific plugin menus. > Right now, all plugins are simply batched in a 'Plugins' menu. > > How about, only displaying 'global' plugins (eg, Plugin Manager, JDiff, > Console) in the 'Plugins' menu, and only displaying plugins tied to a > specific mode in a menu with that mode's name, only when a buffer with > that mode is being edited? > > Eg, in HTML mode, the HTML plugin might add 'Tags' and 'Tidy' submenus > to the mode-specific menu; the former would contain the prev/next tag, > etc commands, the latter would contain JTidy stuff. > > I haven't thought up of a good API for this yet, though. Any suggestions? > Is this a good idea at all? Why have a "Plugins" or "Mode" menu at all? Perhaps the plugin menu items can just go into various places in the regular menu. For example, "Buffer Tabs" could go into the "View" menu. "Check jEdit Version" could go in the "Help" menu. It's easier to remember to look for "Check jEdit Version" in the "Help" menu than in the "Plugins" menu, unless you remember that feature was created by a plugin. A possible implementation (I haven't looked at the jEdit code yet, BTW): there could be a menus.xml file which describes all the menus and menu items that could possibly exist. A menu item could either belong to jEdit-core or could belong to a plugin. If that plugin isn't installed, then the menu item isn't visible. If a menu is made up completely of plugin-defined items, and none of those plugins are installed, then the entire menu will not show up. When a new plugin is added to Plugin Central, menus.xml gets updated by the development team and downloaded by the user as part of the plugin installation process. If a plugin defines a menu item that isn't in menus.xml, perhaps the item could show up in the "Plugins" menu (this would be good for developing new plugins before menus.xml is updated). Also, perhaps the plugin manager could have a window that shows the user wh ich menu items are associated with each plugin, in case a user can't figure out how to access the plugin. That's just one possible implementation; there are probably better ones. Erik |