Dokumentation / Die IDE

Code-Intelligenz

Exakte Navigation, Referenzen, Hierarchien, Refactorings mit Vorschau und Symbolsuche.

Yuli versteht deinen Code, nicht nur seinen Text. Die Navigation führt immer zur exakten Zeile, und Refactorings zeigen ihre Auswirkungen, bevor sie angewendet werden.

Aktion Tastenkürzel
Zur Definition Ctrl+B oder Ctrl+Klick
Zur Implementierung Ctrl+Alt+B
Verwendungen suchen Alt+F7 oder Shift+F12
Aufrufhierarchie Ctrl+Alt+H
Typhierarchie Ctrl+H
Ablauf und Trace der Methode Ctrl+Alt+F
Symbol suchen (Klasse, Methode …) Ctrl+T
Zu Symbol in der Datei Ctrl+Shift+O
Zum Datenbankobjekt (Funktion, Paket, Tabelle) Ctrl+Alt+J

Ctrl+Klick nahezu ohne Verzögerung

Das Ziel wird aufgelöst, während der Cursor über dem Symbol steht, und die Datei wird vorab gelesen. Dauert es trotzdem, erscheint ein dezenter Hinweis, der den Editor nicht blockiert.

Generierter Code

Durch Annotationen erzeugte Zugriffsmethoden (Getter, Setter, Konstruktoren und Builder von Lombok) führen zu dem Feld, aus dem sie stammen.

Referenzen-Panel

Ein kompaktes Panel mit zwei Spalten: Klasse und Member sowie der Ausschnitt der Zeile. Seine Optionen werden gespeichert:

  • Lese- und Schreibzugriffe.
  • Generierter Code.
  • Imports.
  • Dateipfad.
  • Nach Datei gruppieren.
  • Code-Vorschau.

Refactorings

Refactoring Tastenkürzel
Symbol umbenennen Shift+F6 (oder F2)
Methode extrahieren Ctrl+Alt+Shift+M
Signatur ändern Ctrl+F6
Klasse verschieben F6
Variable extrahieren und Inline Über die Schnellaktionen (Alt+Enter)

Beim Umbenennen siehst du vor dem Anwenden eine Vorschau der Auswirkungen.

Externe Bibliotheken

Abhängigkeiten lassen sich im Projekt-Panel durchsuchen. Ihre Klassen öffnen sich inline oder in geteilter Ansicht, mit Quellcode oder dekompiliert, immer schreibgeschützt.

Eigene JARs

Füge .jar-Bibliotheken unter Projekt → Projektstruktur… oder mit .jar hinzufügen im Maven-/Gradle-Panel hinzu:

  • Als echte Abhängigkeit: in Maven als system oder im lokalen Repository installiert; in Gradle als implementation files(...).
  • Oder als IDE-Bibliothek, ohne den Build anzufassen.

Die Java-Engine löst diese JARs auch dann auf, wenn Maven oder Gradle nicht ausgeführt werden können.

Projekte ohne Migration

Yuli versteht eine Ant-build.xml sowie die .classpath- und .project-Dateien von Eclipse (Quellen, JARs, Variablen und das Web-Root von WTP). Autovervollständigung, Navigation und Kompilierung funktionieren ohne Maven oder Gradle.

Frameworks

Framework Was Yuli versteht
Spring Beans, Injection und Endpoints. Panel Spring im unteren Panel.
JPA und Hibernate Entitäten, XML-Mappings und Tabellen.
Struts 1 und 2 Actions, Formulare und Konfiguration.
Servlets und JSP web.xml, Taglibs, Includes und Messages.
Lombok Zugriffsmethoden, Konstruktoren und Builder.

Wie es intern funktioniert

Baustein Was er tut
Tree-sitter Analysiert den Code inkrementell.
Symbolgraph Klassen, Methoden, Felder und ihre Beziehungen (ruft auf, erweitert, implementiert, injiziert).
SQLite Speichert den Graphen in .ai/codebase/, außerhalb von Git.
Invalidierung Beim Bearbeiten einer Datei wird nur neu analysiert, was von ihr abhängt.
Java-Compiler Exakte Typauflösung.

Das Panel Code Intelligence (Alt+0) zeigt den Status des Index.

Mit dem Agenten

Der Agent nutzt dieselbe Intelligenz: yuli_find_references, yuli_impact, yuli_search_symbols, yuli_refactor … Um Fragen zum Projekt zu beantworten, extrahiert er einen eingegrenzten Teilgraphen, statt ganze Dateien zu lesen. Das spart Kontext und Tokens.

Inspektionen und Qualität

Über dem Code erscheinen außerdem die Inspektionen (Null-Safety, toter Code, Spring) und die Qualitätsmetriken: über jeder Methode CC · CoG · MI · líneas · cobertura · costo. Die Schweregrade passt du unter Globale Optionen → Inspektionen an. Siehe Messung gegen N−1.