Documentation / The IDE

Code intelligence

Precise navigation, references, hierarchies, refactorings with preview, and symbol search.

Yuli understands your code, not just its text. Navigation always takes you to the exact line, and refactorings show their impact before they're applied.

Action Shortcut
Go to definition Ctrl+B or Ctrl+Click
Go to implementation Ctrl+Alt+B
Find usages Alt+F7 or Shift+F12
Call hierarchy Ctrl+Alt+H
Type hierarchy Ctrl+H
Method flow and trace Ctrl+Alt+F
Find symbol (class, method…) Ctrl+T
Go to symbol in file Ctrl+Shift+O
Go to database object (function, package, table) Ctrl+Alt+J

Near-instant Ctrl+Click

The target is resolved while the cursor hovers over the symbol, and the file is read ahead of time. If it still takes a moment, a discreet notice appears that doesn't block the editor.

Generated code

Accessors generated by annotations (Lombok getters, setters, constructors, and builders) take you to the field they come from.

References panel

A compact two-column panel: class and member, and the line snippet. Its options are remembered:

  • Read and write accesses.
  • Generated code.
  • Imports.
  • File path.
  • Group by file.
  • Code preview.

Refactorings

Refactoring Shortcut
Rename symbol Shift+F6 (or F2)
Extract method Ctrl+Alt+Shift+M
Change signature Ctrl+F6
Move class F6
Extract variable and inline From quick actions (Alt+Enter)

Rename shows a preview of the impact before applying.

External libraries

Dependencies are browsable from the project panel. Their classes open inline or in split view, with source code or decompiled, always read-only.

Your own jars

Add .jar libraries in Project → Project structure… or with Add .jar from the Maven / Gradle panel:

  • As a real dependency: in Maven, system or installed in the local repository; in Gradle, implementation files(...).
  • Or as an IDE library, without touching the build.

The Java engine resolves those jars even when Maven or Gradle can't run.

Unmigrated projects

Yuli understands an Ant build.xml and Eclipse's .classpath and .project files (sources, jars, variables, and the WTP web root). You get autocomplete, navigation, and compilation without Maven or Gradle.

Frameworks

Framework What it understands
Spring Beans, injection, and endpoints. Spring panel in the bottom panel.
JPA and Hibernate Entities, XML mappings, and tables.
Struts 1 and 2 Actions, forms, and configuration.
Servlets and JSP web.xml, taglibs, includes, and messages.
Lombok Accessors, constructors, and builders.

How it works under the hood

Piece What it does
Tree-sitter Parses code incrementally.
Symbol graph Classes, methods, fields, and their relationships (calls, extends, implements, injects).
SQLite Stores the graph in .ai/codebase/, outside Git.
Invalidation When you edit a file, only what depends on it is re-analyzed.
Java compiler Exact type resolution.

The Code Intelligence panel (Alt+0) shows the index status.

With the agent

The agent uses the same intelligence: yuli_find_references, yuli_impact, yuli_search_symbols, yuli_refactor… To answer questions about the project, it extracts a bounded subgraph instead of reading entire files, which saves context and tokens.

Inspections and quality

Inspections (null-safety, dead code, Spring) and quality metrics also appear over the code: above each method, CC · CoG · MI · lines · coverage · cost. Adjust severities in Global options → Inspections. See Measurement against N−1.