URL: https://linuxfr.org/users/swilmet/journaux/gsoc-sur-gtksourceview-gedit Title: GSoC sur GtkSourceView/gedit Authors: Sébastien Wilmet Date: 2013年09月21日T19:53:36+02:00 License: CC By-SA Tags: gnome et gsoc Score: 55 Me voilà arrivé à la fin du [Google Summer of Code](http://www.google-melange.com/gsoc/homepage/google/gsoc2013) chez [GNOME](https://www.gnome.org/). C'est un bon moment pour faire un récapitulatif de [mes aventures GNOMEsques](http://blogs.gnome.org/swilmet/). Tout a commencé un beau\^W jour pluvieux d'été, en 2009, où je voulais me lancer dans un projet de programmation. J'aimais bien GNOME, donc développer une application en [GTK+](http://www.gtk.org/) me paraissait un choix judicieux. Qu'est-ce qu'il me manquait dans GNOME ? Un bon éditeur [LaTeX](http://www.latex-project.org/), pardi ! J'utilisais [Kile](http://kile.sourceforge.net/) à l'époque. Me voilà donc parti pour [LaTeXila](https://projects.gnome.org/latexila/). Ayant aucune expérience dans le développement de logiciel libre, et peu d'expérience en programmation, les premières versions (en langage C) étaient plus ou moins un échec point de vue évolutivité du code. Mais avec un brin de persévérance, beaucoup de temps libre en été, après une réécriture en [langage Vala](https://wiki.gnome.org/Vala), et après avoir appris à [ne pas coder avec les pieds](https://linuxfr.org/users/swilmet/journaux/petitew-longue-critique-du-livre-code-complete), je suis maintenant assez satisfait de LaTeXila (et peut-être que d'autres le sont aussi). Que viennent faire [gedit](https://projects.gnome.org/gedit/) et [GtkSourceView](https://projects.gnome.org/gtksourceview/index.html) dans cette histoire, me direz-vous ? Simple, GtkSourceView est la bibliothèque qui gère l'affichage de code source (ainsi que d'autres fonctionnalités amusantes), qui est justement utilisé pour LaTeXila. gedit, c'est l'éditeur de texte généraliste (oui, comme un médecin) de GNOME, qui utilise aussi GtkSourceView, et qui est développé par les mêmes personnes. Et il se fait que le système de complétion de GtkSourceView était assez buggé. J'ai donc commencé, en 2012, par corriger certains bugs. Ensuite j'ai trouvé sympa d'apprendre à programmer correctement en C pour GNOME (oui, avec le _boilerplate_/code de remplissage GObject, ce n'est pas si horrible que [ça en a l'air](https://git.gnome.org/browse/gtksourceview/tree/gtksourceview/gtksourcesearchcontext.h#n30)), et à apprendre les difficultés de développer une bibliothèque plutôt qu'une simple application (il faut notamment faire attention à l'API). Bref, j'ai pratiquement [réécris](http://blogs.gnome.org/swilmet/2013/03/19/my-work-on-gtksourceview-so-far/) une grande partie du code pour le système de complétion, tout en améliorant la documentation. Pour créer un éditeur de texte spécialisé (par exemple pour le LaTeX), GtkSourceView n'est pas suffisant. C'est là qu'intervient gedit. Un de mes projets à long terme est de rendre le code de gedit réutilisable. C'est d'ailleurs pour cette raison qu'initialement GtkSourceView a été créé, en 2001 (gedit date de 1998, aux débuts de GNOME). Le GSoC consistait, entre autre, à implémenter dans GtkSourceView une API de haut niveau pour la recherche et remplacement. Une implémentation basique existait dans gedit, mais ne permettait pas la recherche par regex, et ne retournait pas le nombre total d'occurrences dans le fichier (ce qui implique de scanner l'entièreté du fichier de manière asynchrone). [Plus](http://blogs.gnome.org/swilmet/2013/07/15/search-and-replace-in-gedit-and-gtksourceview/) de [détails](http://blogs.gnome.org/swilmet/2013/08/19/regex-search-in-gedit-and-gtksourceview-finally/) sur mon blog. Le résultat (la partie visible de l'iceberg):  Pour terminer ce journal, j'encourage d'autres étudiants à se lancer, et à contribuer au libre. On apprend plein de choses, c'est gratifiant, et c'est bien plus utile que de jouer à des jeux-vidéos.