Otto Wyss: > How much different is the API of SinkWorld to Scintilla? I'm inclined to > create a wxScintilla based on SinkWorld but I first want to estimate how > much work is needed. Besides how stable is SinkWorld.
The API for SinkWorld is about as far away from Scintilla as you can get. Scintilla uses a very restrictive calling pattern (two int/pointer arguments with an int/pointer return) and a limited set of types. SinkWorld's API requires high level object oriented communications using classes, inheritance, and exceptions. My original thoughts were to produce a Scintilla style API over SinkWorld and try to make it as compatible as possible with Scintilla but I don't know if this will be feasible, useful or take too much effort. The SinkWorld API is changing reasonably slowly but it is still a long way off being frozen. It may even see some major changes. For Java and C#, garbage collection makes allocation and deallocation simple but for C++ its is mostly handled explicitly with objects owned by other objects and the owners being responsible for deallocation. It is possible that this could change to use reference counting or to cooperate with a garbage collector. > Do you name it now SinkWorld or Tentacle or will you rename it to > Scintilla V.2? IMO the Scintilla name would be best, many already know it. I'd like to call it Scintilla 2 once it is stable but if it doesn't expose a Scintilla style API, it may disappoint current users. Scintilla 1.x will still be used for a long time to come. > I've implemented a class browser for C++ in wyoEditor but it's a rather > hackish solution because Scintilla's API isn't very suited for > identifier detection. Would it be possible to add a better identifier > detection, possibly with an identifier table into SinkWorld? This would > allow for a much easier class browser and including variables, etc as well. Scintilla's lexers do a reasonable job of finding which bits of text are identifiers. In SinkWorld, you could write a lexer that maintained a symbol table that consumed the output of other lexers that worked out where the identifiers are. I wrote a (not published) SinkWorld lexer for the C preprocessor that maintained a symbol table of preprocessor symbols so could grey out code that was not active because of #ifdef or #if. The currently published lexers in SinkWorld only maintain lexical information, not parsing information and this should still be possible. I don't want to say that all SinkWorld lexers have to maintain parse level information and I don't even know what a good interface to that would be. Neil _______________________________________________ Scintilla-interest mailing list [email protected] http://mailman.lyra.org/mailman/listinfo/scintilla-interest
