Un complément utile à votre fichier AGENTS.md ou CLAUDE.md. Commencez par demander à codex ou claude code d'installer ast-grep si vous ne l'avez pas déjà. C'est très pratique pour trouver systématiquement des modèles généraux dans le code, ce qui pourrait s'avérer difficile avec une simple correspondance de chaînes de caractères qui ne tient pas compte de la syntaxe.
Voici le texte brut : ### ast-grep vs ripgrep (guide rapide) **Utilisez `ast-grep` lorsque la structure est importante.** Il analyse le code et fait correspondre les nœuds AST, de sorte que les résultats ignorent les commentaires/chaînes de caractères, comprennent la syntaxe et peuvent **réécrire le code en toute sécurité**. * Refactorisations/modifications du code : renommer les API, modifier les formulaires d’importation, réécrire les points d’appel ou les types de variables. * Contrôles de politique : appliquer des modèles à l’ensemble d’un dépôt (`scan` avec des règles + `test`). * Éditeur/automatisation : mode LSP ; sortie `--json` pour les outils. **Utilisez `ripgrep` lorsque le texte suffit.** C'est la méthode la plus rapide pour rechercher des chaînes littérales/expressions régulières dans différents fichiers. * Reconnaissance : recherche de chaînes de caractères, de tâches à faire, de lignes de journalisation, de valeurs de configuration ou de ressources non liées au code. * Préfiltrage : réduire la sélection des fichiers candidats avant une passe précise. **Règle générale** * Privilégiez l'exactitude à la vitesse, sinon vous **appliquerez des modifications** → commencez par `ast-grep`. * Besoin de vitesse brute ou vous ne faites que **chasser du texte** → commencez par `rg`. * On combine souvent : `rg` pour sélectionner les fichiers, puis `ast-grep` pour les faire correspondre/modifier avec précision. **Extraits** Recherche de code structuré (ignore les commentaires/chaînes de caractères) : ```bash ast-grep run -l TypeScript -p 'import $X from "$P"' ``` Codemod (seules les véritables déclarations `var` deviennent `let`) : ```bash ast-grep run -l JavaScript -p 'var $A = $B' -r 'let $A = $B' -U ``` Recherche textuelle rapide : ```bash rg -n 'console\.log\(' -t js ``` Alliez vitesse et précision : ```bash rg -l -t ts 'useQuery\(' | xargs ast-grep run -l TypeScript -p 'useQuery($A)' -r 'useSuspenseQuery($A)' -U ``` **Modèle mental** * Unité de correspondance : `ast-grep` = nœud ; `rg` = ligne. * Faux positifs : `ast-grep` faible ; `rg` dépend de votre expression régulière. * Réécritures : `ast-grep` de première classe ; `rg` nécessite sed/awk ad hoc et risque des modifications collatérales.
