JsValidator, ScratchTab et gestion des événements

Evolutions des plugins Gedit JsValidator et ScratchTab, substantielles pour le premier, plus légères pour le second, et principalement axées sur la gestion des événements. Par un gars qui code en python tous les 36 du mois.

JsValidator d'abord. Outre les classiques nettoyage de code et écriture de commentaires, j'ai implémenté un pseudo-système d'internationalisation pour les quelques messages que le plugin génère / utilise. Le script contient un dictionnaire dont chaque item est identifié par un code langue. Le plugin utilisera les messages correspondant au language système ; s'ils n'existent pas, l'anglais est sélectionné par défaut.

Vient ensuite le plus gros morceau : la gestion des événements. Je suis encore loin de maîtriser l'API de Gedit et il n'est pas toujours évident de juger où et comment écouter certains événements, au chargement d'un document ou au chargement de l'onglet qui le porte par exemple. Bref, tout un mic-mac pour implémenter quelque chose de très simple finalement : la désactivation du panneau de JsValidator lorsque le document courant n'est pas un fichier javascript.

J'ai découvert à cette occasion une notion intéressante : le blocage des écouteurs. Avec le DOM, si l'on veut arrêter temporairement l'écoute d'un événement sur un élément (le click sur un lien par exemple), on doit détacher (supprimer) l'écouteur associé pour ensuite le rattacher. Les objets GTK possèdent eux des méthodes dédiés de blocage (handler_block) et de déblocage (handler_unblock).

Enfin, les évolutions de JsValidator ont profité à ScratchTab.

title
Gedit : ScratchTab
Auteur
Rui NIBAU
Editeur
Omacronides
date

projet.gedit-jsvalidator