Documentation / L’IDE
Intelligence du code
Navigation exacte, références, hiérarchies, refactorisations avec aperçu et recherche de symboles.
Yuli comprend votre code, et pas seulement son texte. La navigation mène toujours à la ligne exacte et les refactorisations montrent leur impact avant d’être appliquées.
Navigation
| Action | Raccourci |
|---|---|
| Aller à la définition | Ctrl+B ou Ctrl+Clic |
| Aller à l'implémentation | Ctrl+Alt+B |
| Rechercher les utilisations | Alt+F7 ou Shift+F12 |
| Hiérarchie des appels | Ctrl+Alt+H |
| Hiérarchie des types | Ctrl+H |
| Flux et trace de la méthode | Ctrl+Alt+F |
| Rechercher un symbole (classe, méthode…) | Ctrl+T |
| Aller au symbole du fichier | Ctrl+Shift+O |
| Aller à l’objet de base de données (fonction, package, table) | Ctrl+Alt+J |
Ctrl+Clic quasi instantané
La destination est résolue pendant que le curseur survole le symbole, et le fichier est lu à l’avance. Si cela prend tout de même du temps, un avis discret apparaît sans bloquer l’éditeur.
Code généré
Les accesseurs générés par des annotations (getters, setters, constructeurs et builders de Lombok) mènent au champ dont ils proviennent.
Panneau des références
Un panneau compact sur deux colonnes : la classe et le membre, puis l’extrait de la ligne. Ses options sont mémorisées :
- Accès en lecture et en écriture.
- Code généré.
- Imports.
- Chemin du fichier.
- Regrouper par fichier.
- Aperçu du code.
Refactorisations
| Refactorisation | Raccourci |
|---|---|
| Renommer le symbole | Shift+F6 (ou F2) |
| Extraire une méthode | Ctrl+Alt+Shift+M |
| Changer la signature | Ctrl+F6 |
| Déplacer la classe | F6 |
| Extraire une variable et inline | Depuis les actions rapides (Alt+Enter) |
Le renommage affiche l’aperçu de l’impact avant d’être appliqué.
Bibliothèques externes
Les dépendances sont navigables depuis le panneau du projet. Leurs classes s’ouvrent en ligne ou en vue fractionnée, avec le code source ou décompilées, toujours en lecture seule.
Vos propres jars
Ajoutez des bibliothèques .jar dans Projet → Structure du projet… ou avec Ajouter un .jar depuis le panneau Maven / Gradle :
- Comme véritable dépendance : avec Maven,
systemou installée dans le dépôt local ; avec Gradle,implementation files(...). - Ou comme bibliothèque de l’IDE, sans toucher au build.
Le moteur Java résout ces jars même si Maven ou Gradle ne peuvent pas s’exécuter.
Projets non migrés
Yuli comprend un build.xml d’Ant ainsi que les fichiers .classpath et .project d’Eclipse (sources, jars, variables et la racine web de WTP). Vous disposez de la saisie semi-automatique, de la navigation et de la compilation sans Maven ni Gradle.
Frameworks
| Framework | Ce qu’il comprend |
|---|---|
| Spring | Beans, injection et endpoints. Panneau Spring dans le panneau inférieur. |
| JPA et Hibernate | Entités, mappings XML et tables. |
| Struts 1 et 2 | Actions, formulaires et configuration. |
| Servlets et JSP | web.xml, taglibs, includes et messages. |
| Lombok | Accesseurs, constructeurs et builders. |
Comment cela fonctionne en interne
| Composant | Ce qu’il fait |
|---|---|
| Tree-sitter | Analyse le code de manière incrémentale. |
| Graphe de symboles | Classes, méthodes, champs et leurs relations (appelle, étend, implémente, injecte). |
| SQLite | Stocke le graphe dans .ai/codebase/, en dehors de Git. |
| Invalidation | Lorsque vous modifiez un fichier, seul ce qui en dépend est réanalysé. |
| Compilateur Java | Résolution exacte des types. |
Le panneau Code Intelligence (Alt+0) affiche l’état de l’index.
Avec l’agent
L’agent utilise la même intelligence : yuli_find_references, yuli_impact, yuli_search_symbols, yuli_refactor… Pour répondre aux questions sur le projet, il extrait un sous-graphe délimité au lieu de lire des fichiers entiers, ce qui économise du contexte et des tokens.
Inspections et qualité
Le code affiche également les inspections (null-safety, code mort, Spring) et les métriques de qualité : au-dessus de chaque méthode, CC · CoG · MI · líneas · cobertura · costo. Les sévérités se règlent dans Options globales → Inspections. Voir Mesure par rapport à N−1.