RunLogosRunLogos
中文EN

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 / JavaScriptGoJavaPythonRust
跨文件跳转
语法 / 语义诊断
Hover 类型信息
补全
引用查找
跨文件重命名
Code Action
格式化
LSP 不可用兜底跳转不需要

Go / Java / Python / Rust 的高级语义能力依赖本机已安装对应语言服务器。未安装时,RunLogos 会在状态栏展示不可用状态。

打开项目后会发生什么

  1. 读取项目配置中的源码目录
  2. 为 TypeScript / JavaScript 项目解析 tsconfig.jsonjsconfig.json
  3. 优先启动项目本地 TypeScript 的 tsserver,没有项目本地 TypeScript 时使用 RunLogos 内置 TypeScript
  4. 检测 Go / Java / Python / Rust 的语言服务器是否可用
  5. 为已打开源码文件同步未保存内容,让诊断、跳转、引用和重命名基于当前编辑器内容工作
  6. 在状态栏显示 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 语言。建议安装:

语言语言服务器
Gogopls
Javajdtls
Pythonpyright-langserverbasedpyright-langserver
Rustrust-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:

-> IDE Partial Setup 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 的诊断来自真实项目语言服务,而不是只看当前打开文件。如果看到红线,通常表示语言服务按真实项目上下文发现了问题。

若确认代码本身没问题,可以检查:

  1. 项目依赖是否已安装
  2. tsconfig.json / jsconfig.json 是否包含当前文件
  3. paths / baseUrl 是否正确
  4. 语言服务器是否已安装并能在终端 PATH 中找到
  5. 状态栏中的 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 执行、语言服务日志面板、自动安装语言服务器、大项目性能治理。