If the plan is to do a complete rewrite and not use the existing CE code, then I think using Scintilla http://www.scintilla.org/
might make a lot of sense.
- Scintilla has a very flexible license which is absolutely GPL compatible.
- Scintilla is intended to be used as code editing component in a text editor.
- Scintilla has already implemented a good number of impressive features (just copying and pasting from sourceforge project page): syntax styling, error indicators, code completion, folding, breakpoints.
Take a look at the wikipedia page which describes it a little more.
- Scintilla is one of the biggest sourceforge projects http://sourceforge.net/projects/scintilla/. There are a lot of developers working on it (including developers working on other text editors which use Scintilla).
If you take a look at the wikipedia page for Scintilla, it lists some editors in which Scintilla is used. They are some of the most popular open source editors. There are a lot of developers on these projects. Developers whose work we can leverage.
By using Scintilla, we can quickly implement the basic, necessary features of a text editor and focus on the features which define a "CE-esque" experience.
- Syntax files: A major benefit of using Scintilla is that there are a lot of lexers for many languages already available. The fact that Scintilla based editors are so popular means that there will always be lexers available and they will be updated frequently with language changes and when new languages appear. This is also a phenomenal benefit.
- Provides part of a working framework. On a distributed project like this, having a well-defined API/framework is valuable. It means that several people can work on various components, all while interacting with at least some well defined interfaces.
If I were writing a feature which does a dictionary lookup on a highlighted word, I don't need to wait for someone to design a "highlighted word" method call and then document it. Instead, I can use Scintilla's well defined APIs and find out which word is highlighted.
Or maybe I want to create a dialog to change how syntax highlighting appears. I don't have to wait for someone to design a syntax highlighting framework. There is already a well defined syntax highlighting framework in Scintilla.
- Having this type of large "jointly accepted" framework makes development much easier. More importantly, it allows multiple people to work on the project simultaneously (and immediately). I'm sure that we will develop some of our own internal interfaces eventually. But, having one large common interface from the beginning is invaluable as it means everyone can get started immediately.
Using Scintilla, EE has a much smaller hill to climb in order to achieve wide popularity and to produce a polished product. People don't have to worry if EE supports all of their languages: it does, because there are so many lexers already available! And as I noted above, development time (and future maintenance) is significantly reduced because of all of the strengths the Scintilla community brings to the table.
I've rattled off a long list of reasons why I think Scintilla makes sense. I personally love CE, and EE is a great concept which I'm sure can be better realized using the strengths of good tools which already exist. I hope the project leaders agree with me and we follow this path.