IDE Language Features
RunLogos 源码编辑器提供接近 VS Code / Cursor 的代码级 IDE 能力。打开配置了源码目录的项目后,编辑器自动识别 TypeScript、JavaScript、Go、Java、Python、Rust 等语言,启用跨文件跳转、诊断、Hover、补全、引用查找、重命名、Code Action 和格式化。
适用场景
- 在大型 TypeScript / JavaScript 项目中解析
tsconfig.json、路径别名和框架类型 - 在 Next.js、Vite、React 等项目里正确识别
@/路径别名 - 在 Go / Java / Python / Rust 项目中使用语言服务器提供跨文件语义能力
- 在语言服务器不可用时,Go / Java 仍可通过内置符号索引保留基础跳转能力
- 在编辑器状态栏查看语言服务运行状态,异常时手动刷新或重启
支持能力
| 能力 | TypeScript / JavaScript | Go | Java | Python | Rust |
|---|---|---|---|---|---|
| 跨文件跳转 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 语法 / 语义诊断 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Hover 类型信息 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 补全 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 引用查找 | ✅ | ✅ | ✅ | ✅ | ✅ |
| 跨文件重命名 | ✅ | ✅ | ✅ | ✅ | ✅ |
| Code Action | ✅ | ✅ | ✅ | ✅ | ✅ |
| 格式化 | ✅ | ✅ | ✅ | ✅ | ✅ |
| LSP 不可用兜底跳转 | 不需要 | ✅ | ✅ | — | — |
Go / Java / Python / Rust 的高级语义能力依赖本机已安装对应语言服务器。未安装时,RunLogos 会在状态栏展示不可用状态。
打开项目后会发生什么
- 读取项目配置中的源码目录
- 为 TypeScript / JavaScript 项目解析
tsconfig.json或jsconfig.json - 优先启动项目本地 TypeScript 的
tsserver,没有项目本地 TypeScript 时使用 RunLogos 内置 TypeScript - 检测 Go / Java / Python / Rust 的语言服务器是否可用
- 为已打开源码文件同步未保存内容,让诊断、跳转、引用和重命名基于当前编辑器内容工作
- 在状态栏显示 IDE 语言服务总体状态
TypeScript / JavaScript 项目
RunLogos 使用 tsserver 作为 TS/JS 的主路径,不再依赖 Monaco 内置 TS Worker 作为项目级解析主路径。这意味着:
paths/baseUrl路径别名按项目配置解析package.json exports、项目依赖和类型声明按真实项目环境解析- Next.js 项目中的
next-env.d.ts和.next/types/**/*.ts会纳入项目上下文 - 未保存内容会参与诊断、引用查找和重命名
- 项目切换后旧项目的语言服务和诊断标记会被清理
Go / Java / Python / Rust 项目
RunLogos 通过 LSP 协议支持非 TS/JS 语言。建议安装:
| 语言 | 语言服务器 |
|---|---|
| Go | gopls |
| Java | jdtls |
| Python | pyright-langserver 或 basedpyright-langserver |
| Rust | rust-analyzer |
安装语言服务器后,重新打开项目或在状态栏中重启对应语言服务即可启用。
Go / Java 如果没有安装语言服务器,RunLogos 会使用内置 tree-sitter 符号索引提供基础跳转能力。这个兜底只负责符号级跳转,不负责类型诊断、补全、重命名等语义能力。
IDE Partial Setup Guide
If the status bar shows IDE Partial, or a Python, Go, Rust, or Java language service shows available / unavailable, open the full installation and troubleshooting guide:
常用操作
跳转到定义
在源码编辑器中把光标放到符号上,使用 Cmd+Click(macOS)或 Ctrl+Click(Windows)即可跳到目标文件。适用于 import 路径、函数、变量、类型、类/接口/方法。
Hover 信息
鼠标悬停在符号上,查看类型、函数签名或语言服务器返回的文档信息。
补全
输入成员访问、路径、函数名或变量名时,编辑器会从 tsserver 或 LSP 获取补全建议。
查找引用
对支持语言服务的符号,使用引用查找能力查看当前项目中的所有引用位置。
重命名
对可重命名的符号,使用重命名能力进行跨文件修改。RunLogos 会使用 tsserver 或 LSP 返回的 workspace edit 来更新相关文件。
Code Action
当诊断产生 quick fix 时,通过 Code Action 使用语言服务提供的修复建议。TypeScript / JavaScript 还支持 organize imports。
格式化
格式化请求会转发给 tsserver 或对应 LSP,结果按语言服务返回的文本编辑应用到当前文件。
诊断与红线
RunLogos 的诊断来自真实项目语言服务,而不是只看当前打开文件。如果看到红线,通常表示语言服务按真实项目上下文发现了问题。
若确认代码本身没问题,可以检查:
- 项目依赖是否已安装
tsconfig.json/jsconfig.json是否包含当前文件paths/baseUrl是否正确- 语言服务器是否已安装并能在终端 PATH 中找到
- 状态栏中的 IDE 状态是否为 Ready 或 Partial
IDE 状态栏
源码编辑器底部状态栏显示 IDE 语言服务状态:
| 状态 | 含义 |
|---|---|
IDE Ready | 主要语言服务可用 |
IDE Partial | 部分语言服务可用,部分缺失或未启动 |
IDE Offline | 当前没有可用语言服务 |
点击状态栏可打开详情面板,查看各语言服务状态、版本信息,以及刷新/重启按钮。
何时需要重启语言服务
- 刚安装了语言服务器
- 修改了项目依赖或配置文件
- 跳转、补全或诊断长时间没有响应
- 项目切换后旧诊断仍然显示
- 语言服务状态显示为 stopped、available 或 unknown
当前限制
以下能力在后续版本规划中:Signature Help、Document Symbol、Workspace Symbol、Semantic Tokens、Inlay Hints、LSP command 执行、语言服务日志面板、自动安装语言服务器、大项目性能治理。