search_files
La herramienta search_files realiza búsquedas con expresiones regulares en múltiples archivos de tu proyecto. Ayuda a AI Cockpit Reasoning a localizar patrones de código específicos, texto u otro contenido en toda tu base de código con resultados contextuales.
Parámetros
La herramienta acepta estos parámetros:
path(requerido): La ruta del directorio en el que buscar, relativa al directorio de trabajo actualregex(requerido): El patrón de expresión regular a buscar (usa sintaxis de regex de Rust)file_pattern(opcional): Patrón glob para filtrar archivos (p. ej., '*.ts' para archivos TypeScript)
Qué Hace
Esta herramienta busca en los archivos de un directorio especificado usando expresiones regulares, mostrando cada coincidencia con el contexto circundante. Es como tener una potente función de "Buscar en Archivos" que funciona en toda la estructura del proyecto.
¿Cuándo se usa?
- Cuando AI Cockpit Reasoning necesita encontrar dónde se usan funciones o variables específicas
- Cuando AI Cockpit Reasoning ayuda con la refactorización y necesita comprender los patrones de uso
- Cuando AI Cockpit Reasoning necesita localizar todas las instancias de un patrón de código particular
- Cuando AI Cockpit Reasoning busca texto en múltiples archivos con capacidades de filtrado
Características Principales
- Busca en múltiples archivos en una sola operación usando Ripgrep de alto rendimiento
- Muestra el contexto alrededor de cada coincidencia (1 línea antes y después)
- Filtra archivos por tipo usando patrones glob (p. ej., solo archivos TypeScript)
- Proporciona números de línea para facilitar la referencia
- Usa patrones de regex potentes para búsquedas precisas
- Limita automáticamente la salida a 300 resultados con notificación
- Trunca líneas de más de 500 caracteres con el marcador "[truncated...]"
- Combina inteligentemente las coincidencias cercanas en bloques únicos para mayor legibilidad
Limitaciones
- Funciona mejor con archivos basados en texto (no es efectivo para archivos binarios como imágenes)
- El rendimiento puede disminuir con bases de código extremadamente grandes
- Usa sintaxis de regex de Rust, que puede diferir ligeramente de otras implementaciones de regex
- No puede buscar dentro de archivos comprimidos o archivos de almacenamiento
- El tamaño de contexto predeterminado es fijo (1 línea antes y después)
- Puede mostrar tamaños de contexto variables cuando las coincidencias están cerca debido a la agrupación de resultados
Cómo Funciona
Cuando se invoca la herramienta search_files, sigue este proceso:
- Validación de Parámetros: Valida los parámetros requeridos
pathyregex - Resolución de Ruta: Resuelve la ruta relativa a una ruta absoluta
- Ejecución de Búsqueda:
- Usa Ripgrep (rg) para búsqueda de texto de alto rendimiento
- Aplica el filtrado de patrones de archivo si se especifica
- Recopila coincidencias con el contexto circundante
- Formateo de Resultados:
- Formatea los resultados con rutas de archivo, números de línea y contexto
- Muestra 1 línea de contexto antes y después de cada coincidencia
- Estructura la salida para facilitar la lectura
- Limita los resultados a un máximo de 300 coincidencias con notificación
- Trunca líneas de más de 500 caracteres
- Fusiona las coincidencias cercanas en bloques contiguos
Formato de Resultados de Búsqueda
Los resultados de búsqueda incluyen:
- Rutas de archivo relativas para cada archivo coincidente (con prefijo #)
- Líneas de contexto antes y después de cada coincidencia (1 línea por defecto)
- Números de línea con relleno de 3 espacios seguidos de
|y el contenido de la línea - Una línea separadora (----) después de cada grupo de coincidencias
Formato de salida de ejemplo:
# rel/path/to/app.ts
11 | // Alguna lógica de procesamiento aquí
12 | // TODO: Implementar manejo de errores
13 | return processedData;
----
# Mostrando los primeros 300 de 300+ resultados. Usa una búsqueda más específica si es necesario.
Cuando las coincidencias ocurren cerca unas de otras, se fusionan en un solo bloque en lugar de mostrarse como resultados separados:
# rel/path/to/auth.ts
13 | // Algún código aquí
14 | // TODO: Agregar validación adecuada
15 | function validateUser(credentials) {
16 | // TODO: Implementar limitación de velocidad
17 | return checkDatabase(credentials);
----
Ejemplos de Uso
- Al pedir refactorizar una función, AI Cockpit Reasoning primero busca todos los lugares donde se usa la función para garantizar cambios completos.
- Al investigar errores, AI Cockpit Reasoning busca patrones similares para identificar problemas relacionados en toda la base de código.
- Al abordar la deuda técnica, AI Cockpit Reasoning localiza todos los comentarios TODO en el proyecto.
- Al analizar dependencias, AI Cockpit Reasoning encuentra todas las importaciones de un módulo particular.
Ejemplos de Uso
Buscar comentarios TODO en todos los archivos JavaScript:
<search_files>
<path>src</path>
<regex>TODO|FIXME</regex>
<file_pattern>*.js</file_pattern>
</search_files>
Encontrar todos los usos de una función específica:
<search_files>
<path>.</path>
<regex>function\s+calculateTotal</regex>
<file_pattern>*.{js,ts}</file_pattern>
</search_files>
Buscar un patrón de importación específico en todo el proyecto:
<search_files>
<path>.</path>
<regex>import\s+.*\s+from\s+['"]@components/</regex>
</search_files>