文档 / IDE
代码智能
精确导航、引用、层次结构、带预览的重构和符号搜索。
Yuli 理解的是你的代码,而不仅仅是文本。导航总能定位到准确的行,重构在应用前会先展示其影响。
导航
| 操作 | 快捷键 |
|---|---|
| 跳转到定义 | Ctrl+B 或 Ctrl+Clic |
| 跳转到实现 | Ctrl+Alt+B |
| 查找用法 | Alt+F7 或 Shift+F12 |
| 调用层次结构 | Ctrl+Alt+H |
| 类型层次结构 | Ctrl+H |
| 方法流程与调用追踪 | Ctrl+Alt+F |
| 查找符号(类、方法…) | Ctrl+T |
| 跳转到文件中的符号 | Ctrl+Shift+O |
| 跳转到数据库对象(函数、包、表) | Ctrl+Alt+J |
近乎即时的 Ctrl+Clic
光标停留在符号上时,目标就已解析完毕,文件也会提前读取。即便偶尔较慢,也只会出现一个不阻塞编辑器的低调提示。
生成的代码
由注解生成的访问器(Lombok 的 getter、setter、构造函数和 builder)会跳转到生成它们的字段。
引用面板
一个紧凑的双列面板:类与成员,以及该行的代码片段。以下选项会被记住:
- 读取和写入访问。
- 生成的代码。
- 导入。
- 文件路径。
- 按文件分组。
- 代码预览。
重构
| 重构 | 快捷键 |
|---|---|
| 重命名符号 | Shift+F6(或 F2) |
| 提取方法 | Ctrl+Alt+Shift+M |
| 更改签名 | Ctrl+F6 |
| 移动类 | F6 |
| 提取变量与 inline | 通过快速操作(Alt+Enter) |
重命名会在应用前展示影响预览。
外部库
依赖可在项目面板中浏览。其中的类可以内联打开或在拆分视图中打开,显示源码或反编译代码,始终为只读。
自有 jar
在 项目 → 项目结构… 中,或通过 Maven / Gradle 面板的 添加 .jar 添加 .jar 库:
- 作为真正的依赖:在 Maven 中使用
system或安装到本地仓库;在 Gradle 中使用implementation files(...)。 - 或者作为 IDE 库,不改动构建配置。
即使 Maven 或 Gradle 无法运行,Java 引擎也能解析这些 jar。
无需迁移的项目
Yuli 能理解 Ant 的 build.xml,以及 Eclipse 的 .classpath 和 .project(源码、jar、变量和 WTP 的 Web 根目录)。无需 Maven 或 Gradle,即可获得自动补全、导航和编译。
框架
| 框架 | 理解的内容 |
|---|---|
| Spring | Bean、注入和端点。底部面板中的 Spring 面板。 |
| JPA 与 Hibernate | 实体、XML 映射和表。 |
| Struts 1 和 2 | Action、表单和配置。 |
| Servlet 与 JSP | web.xml、taglib、include 和消息。 |
| Lombok | 访问器、构造函数和 builder。 |
内部工作原理
| 组件 | 作用 |
|---|---|
| Tree-sitter | 增量分析代码。 |
| 符号图 | 类、方法、字段及其关系(调用、继承、实现、注入)。 |
| SQLite | 将符号图保存在 .ai/codebase/ 中,不纳入 Git。 |
| 失效机制 | 编辑某个文件时,只重新分析依赖它的部分。 |
| Java 编译器 | 精确的类型解析。 |
Code Intelligence 面板(Alt+0)显示索引状态。
与智能体协作
智能体使用同一套代码智能:yuli_find_references、yuli_impact、yuli_search_symbols、yuli_refactor…… 回答有关项目的问题时,它会提取一个有边界的子图,而不是读取整个文件,从而节省上下文和令牌。
检查与质量
代码上方还会显示检查结果(空安全、死代码、Spring)和质量指标:每个方法上方显示 CC · CoG · MI · líneas · cobertura · costo。严重级别可在 全局选项 → 检查 中调整。参见与 N−1 对比度量。