文档 / IDE
编辑器与语言
支持语法高亮的语言、语言服务器、原生 Java 引擎,以及日常编辑工具。
Yuli 的编辑器具备语义高亮、自动补全、code lens、格式化和实时诊断。繁重的工作由原生引擎完成,因此即使在大型仓库中,编辑器依然轻快流畅。
支持高亮的语言
| 类别 | 语言与文件 |
|---|---|
| JVM | Java、Kotlin、Scala、Groovy 和 Gradle |
| Web | JavaScript、TypeScript、JSX 和 TSX、HTML、CSS、SCSS 和 LESS |
| 经典 Java Web | JSP、JSPF、JSPX、TAG、TLD 和 XHTML |
| 系统编程 | C、C++、C#、Go、Rust、Swift 和 Dart |
| 脚本 | Python、Ruby、PHP、Perl、Lua、R、Shell、PowerShell 和 Batch |
| 数据 | SQL、JSON、YAML、TOML、XML、GraphQL 和 Protobuf |
| 配置 | .properties、.env、INI、Dockerfile、Jenkinsfile、Terraform、Makefile 和 .gitignore |
| 文档 | Markdown |
PL/SQL 代码会根据其内容自动识别。
语言服务器
对于部分语言,Yuli 使用语言服务器(LSP)提供完整的自动补全和诊断。
| 服务器 | 语言 |
|---|---|
| Eclipse JDT LS | Java |
| typescript-language-server | TypeScript 和 JavaScript |
| vscode-css-language-server | CSS、SCSS 和 LESS |
| Pyright | Python |
| rust-analyzer | Rust |
经你许可才安装
任何内容都不会静默下载。如果缺少某种语言的服务器,会出现 “{language} 没有语言服务器” 提示,并附带 安装… 按钮。确认后,Yuli 会下载该服务器并校验其 SHA-256 校验和。
在 全局选项 → 语言服务器 中管理语言服务器。
原生 Java 引擎
Java 还拥有一套用 Rust 编写的专属代码智能引擎:
- 使用 Tree-sitter 进行分析,并将符号图保存在 SQLite 中。
- 借助 Java 编译器解析类型,确保精确。
- 无需依赖 Maven 和 Gradle 工具即可读取其 classpath,并且无需迁移就能理解 Ant 和 Eclipse 项目。
- 理解 Spring、JPA 与 Hibernate、Lombok、Jakarta、Struts 和 JBoss。
- 只重新索引发生变化的部分。
参见代码智能。
编辑
| 功能 | 操作 |
|---|---|
| 自动补全 | Ctrl+Space |
| 快速操作(快速修复、导入、询问智能体) | Alt+Enter 或 Ctrl+. |
| 重新格式化 | Ctrl+Alt+L |
| 优化导入 | Ctrl+Alt+O |
| 注释或取消注释 | Ctrl+/ |
| 在文件中查找 | Ctrl+F |
| 在文件中查找和替换 | Ctrl+Shift+S |
| 跳转到行 | Ctrl+G |
| 自动换行 | Alt+Z |
自动保存
Yuli 会在你停止输入片刻后以及切换窗口时自动保存。可在 全局选项 → 构建、运行与调试 中与其他构建设置一起配置。
拆分视图
Ctrl+\ 向右拆分,Ctrl+Shift+\ 向下拆分。你可以在旁边打开项目中的任意文件、外部库中的类(源码或反编译,只读),或其他项目中的文件。选择器支持模糊搜索。
比较器
工具 → 文本比较器… 用于比较两段文本,将活动文件与拆分视图比较 则比较两侧内容,可选择并排 diff 或内联 diff。
特殊文件
| 文件 | Yuli 提供的功能 |
|---|---|
.properties |
消息编辑器:按 bundle(Struts、JSTL、Spring)展示“键 × 语言”表格,标出缺失或多余的键,并保持 Latin-1 或 UTF-8 编码。 |
hbm.xml 和 hibernate.cfg.xml |
Ctrl+Clic 从类跳转到实体、从属性跳转到字段;根据数据库校验表和列。 |
| 项目 XML | 对 pom.xml、web.xml、struts-config.xml、Eclipse 描述符、TLD 和 JSPX 执行 格式化文档,保留注释和 CDATA。 |
| Markdown、OpenAPI 和文档 | 预览。 |
| 团队配置、插件和 CI | 基于 JSON Schema 的校验与自动补全。 |
不打扰的诊断
代码旁边不会插入任何文字。有问题的代码片段会以相应色调显示,并在下方加一条细线;鼠标悬停时显示信息。
| 色调 | 含义 |
|---|---|
| 红色 | 错误 |
| 黄色 | 警告 |
| 蓝色 | 信息 |
| 灰色斜体 | 未使用的代码 |
分析的严重级别分为:阻断、严重、主要、次要和提示。
自动补全
本地引擎提供的内联自动补全始终可用。AI 自动补全默认关闭,可按需启用,并使用你偏好的提供商和模型。
外观
提供浅色和深色主题,代码配色克制,适合长时间工作。字体、小地图、连字和空白可在 全局选项 → 编辑器 中调整。