I really like the idea of this project. I would be willing put out some lines of code for this.
That's about enough for me to get started. =) I *really* don't have time for this, I don't know what I'm thinking, but I don't want to waste the rest of my life using an almost good enough editor either. :-D I haven't been able to get ahold of xerxes2 yet. I've downloaded lazy-edit from http://xerxes2.1go.dk/lazy-edit-0.24.tar.gz but I can't figure out how to install it to a source directory -- by default, setup.py installs to /usr with items in /usr/bin, /usr/share, etc. Does anybody know if there's a setup.py option to install a 'source' tree or some such instead? I'm not even sure what license xerxes2 has on lazy-edit, so maybe we can't use it. I've been thinking about basic ideas for what is needed to make an editor fully extensible. I think the core needs to provide a mechanism for arbitrary modules to register actions. An action is comprised of the name of the module, the name of the action, and a callback when that action is executed. In addition, the core needs to allow arbitrary modules to register events. Events can be generated by modules, by the core, or by user input (each character entered needs to generate an event, for example, so that modules can provide such cool things as auto-completion. Also, the core needs to provide some mechanism to allow arbitrary modules to be registered with it. The core also needs to provide access to the GUI. I'm thinking an extension of JEdit's 'docking' feature would be cool. Since Python is a scripting language, I thought the easiest (for a python programmer) way to do this is to allow modules to create GTK components that can be added to a window. Then the user can actually edit an interface script to place these components where they are wanted. Finally, the modules need to be able to access many of the variables used by the core, such as the buffer, the filename, etc. Now, the problem is, I really need to be working on a research project instead of a text editor right now. I'd rather use JEdit for this than start using a not yet full featured editor, but I think I will try to use the editor and maybe add or refactor features as I go... Dusty