Documentación / El IDE
Inteligencia de código
Navegación exacta, referencias, jerarquías, refactorizaciones con vista previa y búsqueda de símbolos.
Yuli entiende tu código, no solo su texto. La navegación siempre lleva a la línea exacta y las refactorizaciones muestran su impacto antes de aplicarse.
Navegación
| Acción | Atajo |
|---|---|
| Ir a definición | Ctrl+B o Ctrl+Clic |
| Ir a implementación | Ctrl+Alt+B |
| Buscar usos | Alt+F7 o Shift+F12 |
| Jerarquía de llamadas | Ctrl+Alt+H |
| Jerarquía de tipos | Ctrl+H |
| Flujo y traza del método | Ctrl+Alt+F |
| Buscar símbolo (clase, método…) | Ctrl+T |
| Ir a símbolo del archivo | Ctrl+Shift+O |
| Ir al objeto de base de datos (función, paquete, tabla) | Ctrl+Alt+J |
Ctrl+Clic casi instantáneo
El destino se resuelve mientras el cursor está sobre el símbolo y el archivo se lee por adelantado. Si aun así tarda, aparece un aviso discreto que no bloquea el editor.
Código generado
Los accesores generados por anotaciones (getters, setters, constructores y builders de Lombok) llevan al campo que los origina.
Panel de referencias
Un panel compacto a dos columnas: clase y miembro, y el fragmento de la línea. Sus opciones se recuerdan:
- Accesos de lectura y de escritura.
- Código generado.
- Imports.
- Ruta del archivo.
- Agrupar por archivo.
- Vista previa del código.
Refactorizaciones
| Refactorización | Atajo |
|---|---|
| Renombrar símbolo | Shift+F6 (o F2) |
| Extraer método | Ctrl+Alt+Shift+M |
| Cambiar firma | Ctrl+F6 |
| Mover clase | F6 |
| Extraer variable e inline | Desde las acciones rápidas (Alt+Enter) |
Renombrar muestra la vista previa del impacto antes de aplicar.
Bibliotecas externas
Las dependencias son navegables desde el panel de proyecto. Sus clases se abren en línea o en vista dividida, con el código fuente o decompiladas, siempre de solo lectura.
Jars propios
Agrega bibliotecas .jar en Proyecto → Estructura del proyecto… o con Agregar .jar desde el panel Maven / Gradle:
- Como dependencia real: en Maven,
systemo instalada en el repositorio local; en Gradle,implementation files(...). - O como biblioteca del IDE, sin tocar el build.
El motor Java resuelve esos jars aunque Maven o Gradle no puedan ejecutarse.
Proyectos sin migrar
Yuli entiende un build.xml de Ant y los .classpath y .project de Eclipse (fuentes, jars, variables y la raíz web de WTP). Hay autocompletado, navegación y compilación sin Maven ni Gradle.
Frameworks
| Framework | Qué entiende |
|---|---|
| Spring | Beans, inyección y endpoints. Panel Spring en el panel inferior. |
| JPA e Hibernate | Entidades, mapeos XML y tablas. |
| Struts 1 y 2 | Acciones, formularios y configuración. |
| Servlets y JSP | web.xml, taglibs, includes y mensajes. |
| Lombok | Accesores, constructores y builders. |
Cómo funciona por dentro
| Pieza | Qué hace |
|---|---|
| Tree-sitter | Analiza el código de forma incremental. |
| Grafo de símbolos | Clases, métodos, campos y sus relaciones (llama, extiende, implementa, inyecta). |
| SQLite | Guarda el grafo en .ai/codebase/, fuera de Git. |
| Invalidación | Al editar un archivo, solo se reanaliza lo que depende de él. |
| Compilador de Java | Resolución exacta de tipos. |
El panel Code Intelligence (Alt+0) muestra el estado del índice.
Con el agente
El agente usa la misma inteligencia: yuli_find_references, yuli_impact, yuli_search_symbols, yuli_refactor… Para responder preguntas sobre el proyecto, extrae un subgrafo acotado en lugar de leer archivos enteros, lo que ahorra contexto y tokens.
Inspecciones y calidad
Sobre el código aparecen también las inspecciones (null-safety, código muerto, Spring) y las métricas de calidad: encima de cada método, CC · CoG · MI · líneas · cobertura · costo. Las severidades se ajustan en Opciones globales → Inspecciones. Ver Medición contra N−1.