概述
LSP(Language Server Protocol)集成是 Tron 的高级功能之一。通过连接语言服务器,Tron 可以获取精确的类型信息、函数签名、实时诊断错误等上下文,大幅提升其对代码的理解能力和修改准确性。
启用 LSP 后,Tron 在回复中可以准确引用类型定义、指出类型错误,并在修改代码时避免引入新的类型问题,代码生成质量明显提升。
自动检测
Tron 会自动检测项目中已安装的 LSP 服务器。在项目目录启动 Tron 时,它会扫描常见的语言服务器可执行文件,并尝试自动连接:
- 检测到
tsconfig.json→ 尝试连接 TypeScript 语言服务器 - 检测到
pyproject.toml或setup.py→ 尝试连接 Python 语言服务器 - 检测到
go.mod→ 尝试连接 gopls - 检测到
Cargo.toml→ 尝试连接 rust-analyzer
TUI 右侧面板的 LSP 状态指示器会显示当前连接的语言服务器及其状态(绿点表示已连接)。
手动配置
如果自动检测未能找到语言服务器,或者你需要指定特定版本的服务器,可以在 config.json 的 lsp 字段中手动配置:
json
// ~/.config/tron/config.json
{
"lsp": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"]
},
"python": {
"command": "pyright-langserver",
"args": ["--stdio"]
},
"go": {
"command": "gopls"
}
}
}
支持的语言
以下是 Tron 官方测试并支持的 LSP 服务器:
| 语言 | 推荐服务器 | 安装方式 |
|---|---|---|
| TypeScript / JavaScript | typescript-language-server |
npm i -g typescript-language-server |
| Python | pylsp / pyright |
pip install python-lsp-server |
| Go | gopls |
go install golang.org/x/tools/gopls@latest |
| Rust | rust-analyzer |
rustup component add rust-analyzer |
| Java | jdtls |
通过 Eclipse JDT 安装 |
| C / C++ | clangd |
apt install clangd 或 LLVM 官网 |
错误诊断
启用 LSP 后,Tron 会自动读取语言服务器提供的诊断信息(类型错误、语法错误、未使用的变量等),并在 AI 回复中主动提及这些问题。
例如,当你要求 Tron 修改某个函数时,它会同时检查:
- 修改后是否引入了新的类型错误
- 相关调用方是否需要同步更新
- 函数签名变更是否与接口定义一致
提示
LSP 诊断信息会显示在 TUI 右侧面板中,红色圆点表示有错误,黄色圆点表示有警告。你也可以询问 Tron「当前有哪些类型错误」来获取诊断摘要。
禁用 LSP
如果你的项目不需要 LSP 功能,或者想加快 Tron 的启动速度,可以在配置中禁用 LSP:
json
{
"lsp": false
}
禁用后,Tron 不会尝试启动任何语言服务器,启动速度更快,但将失去类型感知和实时诊断能力。