Hi everyone, I am not about to say "don't write a text editor.". I think go for it. Make it the most featured thing ever. But...
Please allow it to be usable as a text editing component by other applications, other UI toolkits, other programming languages. This will put your editor in an elite group. How would you achieve this? 1. Provide a complete remote procedure protocol. Allow anything that the editor can do to be called remotely: goto a line, get the selected text, open a new file, get a set of possible completions, autohint etc... 2. Provide some external hooks for events occurring in the editor. Cursor-moved, file changed, completion populated etc... 3. Provide a way of embedding the UI. You can, using most toolkits, tell a window to appear inside another window, both on X, and Win32, and I am not sure about OSX, but it must be possible. I should note, because it is very important, that if these were all provided in a consistent way, plugins could be shared among applications, since the author of an editor component implementing these things would probably use them for the additional work they did on that editing component. Work that would turn it into a fully-fledged IDE or editor. Now I have embedded 3 or 4 editors and I have a pretty good idea of the interfaces required for these components. Would anyone be interested to discuss these interfaces and working on a generic communication library for these things? We could perhaps gradually make a few editors provide this interface; either new ones or existing ones. We would have made a significant step towards Pyxides 1.0 (imo). Ali
