Pular para o conteúdo principal

list_code_definition_names

A ferramenta list_code_definition_names fornece uma visão geral estrutural da sua base de código, listando as definições de código dos arquivos de origem no nível superior de um diretório especificado. Ela ajuda o AI Cockpit Reasoning a entender a arquitetura do código, exibindo números de linha e trechos de definição.

Parâmetros

A ferramenta aceita estes parâmetros:

  • path (obrigatório): O caminho do diretório para listar as definições de código-fonte de nível superior, relativo ao diretório de trabalho atual

O Que Faz

Esta ferramenta verifica os arquivos de código-fonte no nível superior de um diretório especificado e extrai definições de código como classes, funções e interfaces. Ela exibe os números de linha e o código real de cada definição, fornecendo uma maneira rápida de mapear os componentes importantes da sua base de código.

Quando é usada?

  • Quando o AI Cockpit Reasoning precisa entender rapidamente a arquitetura da sua base de código
  • Quando o AI Cockpit Reasoning precisa localizar construções de código importantes em vários arquivos
  • Ao planejar a refatoração ou extensões para o código existente
  • Antes de mergulhar nos detalhes da implementação com outras ferramentas
  • Ao identificar relacionamentos entre diferentes partes da sua base de código

Principais Características

  • Extrai classes, funções, métodos, interfaces e outras definições de arquivos de origem
  • Exibe números de linha e o código-fonte real para cada definição
  • Suporta várias linguagens de programação, incluindo JavaScript, TypeScript, Python, Rust, Go, C++, C, C#, Ruby, Java, PHP, Swift e Kotlin
  • Processa apenas arquivos no nível superior do diretório especificado (não subdiretórios)
  • Limita o processamento a um máximo de 50 arquivos para desempenho
  • Foca nas definições de nível superior para evitar detalhes excessivos
  • Ajuda a identificar padrões de organização de código em todo o projeto
  • Cria um mapa mental da arquitetura da sua base de código
  • Funciona em conjunto com outras ferramentas como read_file para uma análise mais profunda

Limitações

  • Identifica apenas definições de nível superior, não as aninhadas
  • Processa apenas arquivos no nível superior do diretório especificado, não subdiretórios
  • Limitado ao processamento de um máximo de 50 arquivos por solicitação
  • Dependente de analisadores específicos da linguagem, com qualidade de detecção variável
  • Pode não reconhecer todas as definições em linguagens com sintaxe complexa
  • Não substitui a leitura do código para entender os detalhes da implementação
  • Não consegue detectar padrões de tempo de execução ou relacionamentos de código dinâmico
  • Não fornece informações sobre como as definições são usadas
  • Pode ter precisão reduzida com código altamente dinâmico ou metaprogramado
  • Limitado a linguagens específicas suportadas pelos analisadores Tree-sitter implementados

Como Funciona

Quando a ferramenta list_code_definition_names é invocada, ela segue este processo:

  1. Validação de Parâmetros: Valida o parâmetro obrigatório path
  2. Resolução de Caminho: Resolve o caminho relativo para um caminho absoluto
  3. Varredura de Diretório: Varre apenas o nível superior do diretório especificado em busca de arquivos de código-fonte (não recursivo)
  4. Filtragem de Arquivos: Limita o processamento a um máximo de 50 arquivos
  5. Detecção de Linguagem: Identifica os tipos de arquivo com base nas extensões (.js, .jsx, .ts, .tsx, .py, .rs, .go, .cpp, .hpp, .c, .h, .cs, .rb, .java, .php, .swift, .kt, .kts)
  6. Análise de Código: Usa o Tree-sitter para analisar o código e extrair definições através destas etapas:
    • Análise do conteúdo do arquivo em uma Árvore de Sintaxe Abstrata (AST)
    • Criação de uma consulta usando uma string de consulta específica da linguagem
    • Ordenação das capturas por sua posição no arquivo
  7. Formatação do Resultado: Produz definições com números de linha e o código-fonte real

Formato de Saída

A saída mostra os caminhos dos arquivos seguidos pelos números de linha e o código-fonte real de cada definição. Por exemplo:

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 linha exibe:

  • Os números de linha inicial e final da definição
  • O símbolo de pipe (|) como separador
  • O código-fonte real da definição

Este formato de saída ajuda você a ver rapidamente onde as definições estão localizadas no arquivo e seus detalhes de implementação.

Exemplos de Quando Usado

  • Ao iniciar uma nova tarefa, o AI Cockpit Reasoning primeiro lista as principais definições de código para entender a estrutura geral do seu projeto.
  • Ao planejar o trabalho de refatoração, o AI Cockpit Reasoning usa esta ferramenta para identificar classes e funções que podem ser afetadas.
  • Ao explorar bases de código desconhecidas, o AI Cockpit Reasoning mapeia as construções de código importantes antes de mergulhar nos detalhes da implementação.
  • Ao adicionar novos recursos, o AI Cockpit Reasoning identifica os padrões existentes e as definições de código relevantes para manter a consistência.
  • Ao solucionar bugs, o AI Cockpit Reasoning mapeia a estrutura da base de código para localizar possíveis fontes do problema.
  • Ao planejar alterações na arquitetura, o AI Cockpit Reasoning identifica todos os componentes afetados em todos os arquivos.

Exemplos de Uso

Listando definições de código no diretório atual:

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

Examinando a estrutura de um módulo específico:

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

Explorando uma biblioteca de utilitários:

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