Ir al contenido principal

list_code_definition_names

La herramienta list_code_definition_names proporciona una visión general estructural de tu base de código listando las definiciones de código de los archivos fuente en el nivel superior de un directorio especificado. Ayuda a AI Cockpit Reasoning a comprender la arquitectura del código mostrando números de línea y fragmentos de definición.

Parámetros​

La herramienta acepta estos parámetros:

  • path (requerido): La ruta del directorio para el que se listarán las definiciones de código fuente del nivel superior, relativa al directorio de trabajo actual

Qué Hace​

Esta herramienta escanea los archivos de código fuente en el nivel superior de un directorio especificado y extrae definiciones de código como clases, funciones e interfaces. Muestra los números de línea y el código real de cada definición, proporcionando una forma rápida de mapear los componentes importantes de tu base de código.

¿Cuándo se usa?​

  • Cuando AI Cockpit Reasoning necesita comprender rápidamente la arquitectura de tu base de código
  • Cuando AI Cockpit Reasoning necesita localizar construcciones de código importantes en múltiples archivos
  • Al planificar la refactorización o extensiones del código existente
  • Antes de profundizar en los detalles de implementación con otras herramientas
  • Al identificar relaciones entre diferentes partes de tu base de código

Características Principales​

  • Extrae clases, funciones, métodos, interfaces y otras definiciones de los archivos fuente
  • Muestra números de línea y código fuente real para cada definición
  • Admite múltiples lenguajes de programación incluyendo JavaScript, TypeScript, Python, Rust, Go, C++, C, C#, Ruby, Java, PHP, Swift y Kotlin
  • Procesa solo los archivos en el nivel superior del directorio especificado (no subdirectorios)
  • Limita el procesamiento a un máximo de 50 archivos por rendimiento
  • Se enfoca en las definiciones de nivel superior para evitar detalles abrumadores
  • Ayuda a identificar patrones de organización del código en el proyecto
  • Crea un mapa mental de la arquitectura de tu base de código
  • Funciona en conjunto con otras herramientas como read_file para un análisis más profundo

Limitaciones​

  • Solo identifica definiciones de nivel superior, no las anidadas
  • Solo procesa archivos en el nivel superior del directorio especificado, no subdirectorios
  • Limitado a procesar un máximo de 50 archivos por solicitud
  • Dependiente de analizadores específicos del lenguaje, con calidad de detección variable
  • Puede no reconocer todas las definiciones en lenguajes con sintaxis compleja
  • No es un sustituto para leer el código y comprender los detalles de implementación
  • No puede detectar patrones de tiempo de ejecución o relaciones de código dinámicas
  • No proporciona información sobre cómo se usan las definiciones
  • Puede tener precisión reducida con código altamente dinámico o metaprogramado
  • Limitado a lenguajes específicos admitidos por los analizadores Tree-sitter implementados

Cómo Funciona​

Cuando se invoca la herramienta list_code_definition_names, sigue este proceso:

  1. Validación de Parámetros: Valida el parámetro requerido path
  2. Resolución de Ruta: Resuelve la ruta relativa a una ruta absoluta
  3. Escaneo de Directorio: Escanea solo el nivel superior del directorio especificado en busca de archivos de código fuente (no recursivo)
  4. Filtrado de Archivos: Limita el procesamiento a un máximo de 50 archivos
  5. Detección de Lenguaje: Identifica los tipos de archivo según las extensiones (.js, .jsx, .ts, .tsx, .py, .rs, .go, .cpp, .hpp, .c, .h, .cs, .rb, .java, .php, .swift, .kt, .kts)
  6. Análisis de Código: Usa Tree-sitter para analizar el código y extraer definiciones mediante estos pasos:
    • Análisis del contenido del archivo en un Árbol de Sintaxis Abstracta (AST)
    • Creación de una consulta usando una cadena de consulta específica del lenguaje
    • Ordenación de las capturas por su posición en el archivo
  7. Formateo de Resultados: Genera definiciones con números de línea y código fuente real

Formato de Salida​

La salida muestra las rutas de archivo seguidas de los números de línea y el código fuente real de cada definición. Por ejemplo:

src/utils.js:
0--0 | export class HttpClient {
5--5 | formatDate() {
10--10 | function parseConfig(data) {

src/models/User.js:
0--0 | interface UserProfile {
10--10 | export class User {
20--20 | function createUser(data) {

Cada línea muestra:

  • Los números de línea de inicio y fin de la definición
  • El símbolo de barra vertical (|) como separador
  • El código fuente real de la definición

Este formato de salida te ayuda a ver rápidamente tanto dónde se encuentran las definiciones en el archivo como sus detalles de implementación.

Ejemplos de Uso​

  • Al comenzar una nueva tarea, AI Cockpit Reasoning primero lista las definiciones de código clave para comprender la estructura general de tu proyecto.
  • Al planificar trabajo de refactorización, AI Cockpit Reasoning usa esta herramienta para identificar clases y funciones que podrían verse afectadas.
  • Al explorar bases de código desconocidas, AI Cockpit Reasoning mapea las construcciones de código importantes antes de profundizar en los detalles de implementación.
  • Al agregar nuevas características, AI Cockpit Reasoning identifica los patrones existentes y las definiciones de código relevantes para mantener la consistencia.
  • Al solucionar errores, AI Cockpit Reasoning mapea la estructura de la base de código para localizar posibles fuentes del problema.
  • Al planificar cambios de arquitectura, AI Cockpit Reasoning identifica todos los componentes afectados en los archivos.

Ejemplos de Uso​

Listar las definiciones de código en el directorio actual:

<list_code_definition_names>
<path>.</path>
</list_code_definition_names>

Examinar la estructura de un módulo específico:

<list_code_definition_names>
<path>src/components</path>
</list_code_definition_names>

Explorar una biblioteca de utilidades:

<list_code_definition_names>
<path>lib/utils</path>
</list_code_definition_names>