L'auteur présente Go-PHP-Parser, un outil permettant de parser du code PHP en Go sans dépendre de l’installation de PHP, dans le cadre de son projet AstMetrics (analyse de code via l’AST). Après avoir abandonné l’idée d’écrire un parser maison (trop complexe à maintenir face à l’évolution de PHP), il a opté pour l’intégration du moteur PHP officiel via la SAPI Embed et l’extension ext-ast, qui expose l’AST de manière stable et toujours à jour. Grâce à un bridge C/Go et à des binaires précompilés (via static-php-cli), l’outil est simple à utiliser et performant (4 000 à 8 000 fichiers/s). L’approche évite la maintenance d’une grammaire manuelle et ouvre la porte à des analyses avancées (métriques, refactoring, CI/CD, etc.). Le projet est open source et disponible sur GitHub.
Un projet astucieux pour qui veut analyser du PHP depuis Go sans dépendances externes !
L'article explique comment créer un plugin ESLint personnalisé en utilisant TypeScript et la nouvelle configuration "flat config" d'ESLint. Il se concentre sur le développement d'une règle spécifique qui décourage l'utilisation de la propriété style
dans les composants React, favorisant ainsi des pratiques de codage plus cohérentes et maintenables. Le guide fournit des instructions détaillées sur la configuration du projet, l'implémentation de la règle - en utilisant https://astexplorer.net/ pour comprendre la structure de l'AST, et l'intégration avec ESLint, tout en offrant des exemples pratiques et des conseils pour étendre les fonctionnalités du plugin. Enfin, il souligne l'importance des tests et de la publication du plugin pour une utilisation dans des projets réels.
Les Arbres Syntaxiques Abstraits (AST) sont essentiels pour les développeurs, servant de base à des outils comme les compilateurs et les linters. Ils transforment le code source en une structure arborescente, facilitant l'analyse et la manipulation du code. Par exemple, un AST peut clarifier les priorités d'opération dans une expression arithmétique. Le processus de parsing, incluant l'analyse lexicale et syntaxique, convertit le code en AST, permettant des applications variées comme le linting, la transpilation et le refactoring automatique. Des outils comme AST Explorer aident à visualiser et comprendre ces structures, rendant les AST indispensables pour l'analyse et la transformation du code.
Tree-sitter est un outil de génération de parsers et une bibliothèque d'analyse progressive. Il peut construire un arbre de syntaxe pour un fichier source et le mettre à jour efficacement lors de l'édition du fichier.
L'auteur montre comment l'intégrer à Neovim