• [^] # Re: Scintilla

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Campagne de financement pour GtkSourceView. Évalué à 4.

    Scintilla se situe au niveau de GtkTextView + GtkSourceView, mais il y a des différences dans les fonctionnalités fournies. Je pense que GtkTextView est meilleur pour l'internationalisation (bon support d'Unicode, texte de droite à gauche etc, grâce à Pango). Je pense que GtkSourceView a une meilleure recherche et remplacement (incluant la recherche par regex, c'était mon sujet de GSoC). Scintilla a le code folding, ...

    Pour écrire une appli en GTK, l'API de GtkSourceView sera plus familière au développeur pcq ce sont des classes GObject comme tous les widgets GTK. Scintilla a une API un peu étrange je trouve, mais c'est peut-être pcq je ne suis pas habitué. Je trouve la documentation de Scintilla assez horrible, en comparaison GtkSourceView est documenté avec gtk-doc ce qui permet de l'ouvrir avec Devhelp. Enfin bon, je suis évidemment biaisé.

    Scintilla a des backends pour différents toolkits : GTK+, Qt, pour Windows, etc. Et GTK+ lui-même (ou plutôt GDK pour être plus précis) a lui aussi des backends pour différentes plateformes : Wayland, X11, Windows, Mac, etc. GtkSourceView utilise directement GTK+, donc il n'y a qu'une seule couche de backend.

    Mais là où ça devient intéressant du côté de GtkSourceView est le framework dans Tepl, qui fournit des APIs de plus haut niveau (ça utilise par exemple GtkApplication, GtkApplicationWindow, GtkNotebook), ce que Scintilla ne sait pas faire. J'ai bon espoir qu'en 1000 lignes de code il soit possible d'écrire un éditeur de texte basique comme gedit (sans les plugins), tandis qu'avec Scintilla ça demande je pense beaucoup plus de boulot (comme c'est le cas actuellement si on utilise seulement GtkSourceView). Mais bon il y a encore du boulot dans Tepl, mais à ce stade-ci je pense que le reste qu'il y a à faire est entièrement faisable (1% inspiration, 99% transpiration, là je pense être à 50% de transpiration ;-).