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.

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, system o 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.