GritQL - Le langage de requête pour manipuler du code source

par Korben -

Aujourd’hui, je vous présente GritQL qui va vous permettre de fouiller et triturer du code source, sans avoir besoin d’être un crack en AST ou en parsing. Le truc génial avec ce langage de requête pour la recherche, l’évaluation et la modification du code, c’est que n’importe quel bout de code est une requête valide. Vous mettez un extrait de code entre guillemets simples, et hop, GritQL vous trouve tous les endroits où ce pattern apparaît !

Bon OK, vous allez me dire : “Mouais, mon grep il sait faire ça aussi…” sauf que GritQL est boosté aux stéroïdes notamment grâce à son moteur en Rust capable d’analyser des repos de 10 millions de lignes en un clin d’œil. Votre vieux grep, il peut aller se rhabiller ! 😜

Vous pouvez même utiliser des variables ($comme_ça) dans vos patterns pour identifier des bouts de code puis appliquer des transformations en mode “rechercher/remplacer” pour refactoriser à la volée.

Pour l’installer :

curl -fsSL https://docs.grit.io/install | bash

Et si par exemple, vous voulez remplacer tous vos console.log par des winston.log, c’est facile :

grit console.log($msg)=>winston.log($msg)'

Et bim, votre code est mis à jour !

GritQL dispose également d’une bibliothèque standard avec plus de 200 patterns réutilisables, comme ça, plus besoin de réinventer la roue pour les tâches courantes. Et si vous avez des patterns spécifiques, vous pouvez même les partager avec la communauté.

Autre point fort : une fois que vous maîtrisez GritQL, vous pouvez l’utiliser avec tout un tas de langages. Que vous codiez en JavaScript, Python, Java, Go, Rust ou même en SQL, plus besoin d’apprendre 15 outils différents, un seul suffit !

Et cerise sur le gâteau, il permet d’inclure facilement des règles de “auto-fix” dans vos patterns. Comme ça, vous pouvez corriger et nettoyer votre code en même temps que vous le cherchez. Pratique pour maintenir la qualité sans se prendre la tête ! 👌

Bref, je vous conseille vraiment d’aller jeter un œil à GritQL sur GitHub.

Happy hacking !