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:
- Validação de Parâmetros: Valida o parâmetro obrigatório
path
- Resolução de Caminho: Resolve o caminho relativo para um caminho absoluto
- 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)
- Filtragem de Arquivos: Limita o processamento a um máximo de 50 arquivos
- 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)
- 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
- 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>