Un complemento útil para tu archivo AGENTS.md o CLAUDE.md. Si aún no lo tienes, primero pídele a codex o claude code que instalen ast-grep. Es bastante útil para encontrar sistemáticamente patrones generales en el código, algo que podría ser complicado de hacer utilizando la coincidencia de cadenas regular que no tiene en cuenta la sintaxis.
Aquí está el texto plano: ### ast-grep vs ripgrep (guía rápida) **Utilice `ast-grep` cuando la estructura sea importante.** Analiza el código y encuentra coincidencias con los nodos del AST, por lo que los resultados ignoran los comentarios/cadenas, comprenden la sintaxis y pueden **reescribir el código de forma segura**. * Refactorizaciones/modificaciones de código: cambiar el nombre de las API, modificar los formularios de importación, reescribir los puntos de llamada o los tipos de variables. * Comprobaciones de políticas: aplicar patrones en todo un repositorio (`scan` con reglas + `test`). * Editor/automatización: modo LSP; salida `--json` para herramientas. **Utilice `ripgrep` cuando el texto sea suficiente.** Es la forma más rápida de buscar literales/expresiones regulares en varios archivos. * Recon: encontrar cadenas, TODO, líneas de registro, valores de configuración o activos que no sean código. * Prefiltro: reduce la lista de archivos candidatos antes de un análisis preciso. **Regla general** * Se necesita precisión antes que velocidad, o **aplicarás cambios** → comienza con `ast-grep`. * ¿Necesitas velocidad bruta o simplemente estás **buscando texto**? → comienza con `rg`. * A menudo se combinan: `rg` para preseleccionar archivos y luego `ast-grep` para buscar coincidencias o modificarlas con precisión. **Fragmentos** Buscar código estructurado (ignora comentarios/cadenas de texto): ```bash ast-grep run -l TypeScript -p 'import $X from "$P"' ``` Codemod (solo las declaraciones `var` reales se convierten en `let`): ```bash ast-grep run -l JavaScript -p 'var $A = $B' -r 'let $A = $B' -U ``` Búsqueda rápida de texto: ```bash rg -n 'console\.log\(' -t js ``` Combina velocidad y precisión: ```bash rg -l -t ts 'useQuery\(' | xargs ast-grep run -l TypeScript -p 'useQuery($A)' -r 'useSuspenseQuery($A)' -U ``` **Modelo mental** * Unidad de coincidencia: `ast-grep` = nodo; `rg` = línea. * Falsos positivos: `ast-grep` es bajo; `rg` depende de su expresión regular. * Reescrituras: `ast-grep` es de primera clase; `rg` requiere sed/awk ad hoc y conlleva el riesgo de ediciones colaterales.
