On 13-11-11 02:42 AM, Thomas Martitz wrote:
Am 11.11.2013 10:31, schrieb Matthew Brush:
[snip]
- GtkSourceView completely integrates into our GUI toolkit, using
native (not custom drawn like Scintilla) widgets inside and interacts properly with stuff like scrolling, focus, DnD, key-bindings, etc.
With ScintillaGTK it also interacts properly, doesn't it? It impements GtkWidget and can act as such.
Not really, I mean it is technically a subclass of GtkWidget, but it draws its own text instead of using GtkTextView, it uses its own scrollbars instead of using GtkScrollable/GtkScrolledWindow, it has problems with focus (see related functions in Geany's source), it hijacks keybindings completely outside of GTK+, it provides only a single crazy signal for every possible thing, it hasn't any GTK+ properties or style properties, it hasn't any methods/functions/API but a single weird mandatory function thing (scintilla_send_message) that requires to constantly be doing casts on its parameters since they try to accept every type through long/ulong, it doesn't use any G* types for anything (ex. enums, function parameters, colours, images, etc) and so on.
[snip]
All of these points read like whine. Some of them also apply to GtkSourceView (GSV) and you haven't shown how GSV improves things. I can read that you don't like Scintilla but how is GSV better and what do we gain? Perhaps you could summarize the nice things about GSV? Note that I have done nothing with it and therefore no idea how it works or what APIs it provides. But I also do not know why you would chose it over Scintilla or even convert an existing Scintilla-based project to it.
It's probably easier to list the things that are worse in GSV since there's only one point I can think of where Scintilla beats it hands-down:
* No code folding (promised since forever, not sure when it ever comes).
Anyway, it will be added to any list of big potential changes and we can discuss on the wiki or wherever this might eventually end up if it goes anywhere, I guess this isn't really the thread to be getting as detailed as I did or continue such detailed discussions (ping me on IRC if you want).
Cheers, Matthew Brush