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.
Navegação
| 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,
systemou 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.