Documentação / O IDE

Inteligência de código

Navegação exata, referências, hierarquias, refatorações com pré-visualização e busca de símbolos.

O Yuli entende o seu código, não apenas o texto. A navegação sempre leva à linha exata e as refatorações mostram o impacto antes de serem aplicadas.

Ação Atalho
Ir para a definição Ctrl+B ou Ctrl+Clic
Ir para a implementação Ctrl+Alt+B
Buscar usos Alt+F7 ou Shift+F12
Hierarquia de chamadas Ctrl+Alt+H
Hierarquia de tipos Ctrl+H
Fluxo e rastreamento do método Ctrl+Alt+F
Buscar símbolo (classe, método…) Ctrl+T
Ir para símbolo do arquivo Ctrl+Shift+O
Ir para o objeto do banco de dados (função, pacote, tabela) Ctrl+Alt+J

Ctrl+Clique quase instantâneo

O destino é resolvido enquanto o cursor está sobre o símbolo, e o arquivo é lido antecipadamente. Se mesmo assim demorar, aparece um aviso discreto que não bloqueia o editor.

Código gerado

Os acessores gerados por anotações (getters, setters, construtores e builders do Lombok) levam ao campo que os origina.

Painel de referências

Um painel compacto em duas colunas: classe e membro, e o trecho da linha. Suas opções são lembradas:

  • Acessos de leitura e de escrita.
  • Código gerado.
  • Imports.
  • Caminho do arquivo.
  • Agrupar por arquivo.
  • Pré-visualização do código.

Refatorações

Refatoração Atalho
Renomear símbolo Shift+F6 (ou F2)
Extrair método Ctrl+Alt+Shift+M
Alterar assinatura Ctrl+F6
Mover classe F6
Extrair variável e inline Pelas ações rápidas (Alt+Enter)

Renomear mostra a pré-visualização do impacto antes de aplicar.

Bibliotecas externas

As dependências são navegáveis pelo painel do projeto. Suas classes abrem em linha ou em visualização dividida, com o código-fonte ou descompiladas, sempre em somente leitura.

Jars próprios

Adicione bibliotecas .jar em Projeto → Estrutura do projeto… ou com Adicionar .jar no painel Maven / Gradle:

  • Como dependência real: no Maven, system ou instalada no repositório local; no Gradle, implementation files(...).
  • Ou como biblioteca do IDE, sem mexer no build.

O mecanismo Java resolve esses jars mesmo que o Maven ou o Gradle não possam ser executados.

Projetos não migrados

O Yuli entende um build.xml do Ant e os .classpath e .project do Eclipse (fontes, jars, variáveis e a raiz web do WTP). Há autocompletar, navegação e compilação sem Maven nem Gradle.

Frameworks

Framework O que entende
Spring Beans, injeção e endpoints. Painel Spring no painel inferior.
JPA e Hibernate Entidades, mapeamentos XML e tabelas.
Struts 1 e 2 Ações, formulários e configuração.
Servlets e JSP web.xml, taglibs, includes e mensagens.
Lombok Acessores, construtores e builders.

Como funciona por dentro

Peça O que faz
Tree-sitter Analisa o código de forma incremental.
Grafo de símbolos Classes, métodos, campos e suas relações (chama, estende, implementa, injeta).
SQLite Guarda o grafo em .ai/codebase/, fora do Git.
Invalidação Ao editar um arquivo, só é reanalisado o que depende dele.
Compilador Java Resolução exata de tipos.

O painel Code Intelligence (Alt+0) mostra o estado do índice.

Com o agente

O agente usa a mesma inteligência: yuli_find_references, yuli_impact, yuli_search_symbols, yuli_refactor… Para responder perguntas sobre o projeto, ele extrai um subgrafo delimitado em vez de ler arquivos inteiros, o que economiza contexto e tokens.

Inspeções e qualidade

Sobre o código aparecem também as inspeções (null-safety, código morto, Spring) e as métricas de qualidade: acima de cada método, CC · CoG · MI · líneas · cobertura · costo. As severidades são ajustadas em Opções globais → Inspeções. Veja Medição contra N−1.