name: Language Server Protocol description: 实现具有完整IDE功能支持的语言服务器协议服务器的专家技能 category: 工具链 allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
Language Server Protocol 技能
概述
实现具有完整IDE功能支持的语言服务器协议服务器的专家技能。
能力
- 实现JSON-RPC传输层
- 处理文档同步(全量和增量)
- 实现用于语法高亮的语义标记
- 实现带解析的代码补全
- 实现带有类型签名的悬停信息提示
- 实现转到定义/引用/实现
- 实现文档符号和工作区符号
- 实现跨文件支持的代码重命名
- 实现代码操作和快速修复
- 实现签名帮助
目标流程
- lsp-server-implementation.js
- debugger-adapter-development.js
- error-message-enhancement.js
- semantic-analysis.js
依赖
- LSP规范
- vscode-languageserver库
- tower-lsp (Rust)
使用指南
- 传输层:从标准输入输出传输开始,根据需要添加TCP/WebSocket支持
- 增量同步:实现增量文档同步以提高性能
- 缓存:缓存分析结果并在文档更改时使其失效
- 容错性:优雅地处理格式错误的文档
- 进度报告:为长时间运行的操作报告进度
输出模式
{
"type": "object",
"properties": {
"capabilities": {
"type": "array",
"items": { "type": "string" }
},
"transportType": {
"type": "string",
"enum": ["stdio", "tcp", "websocket"]
},
"documentSync": {
"type": "string",
"enum": ["full", "incremental"]
},
"generatedFiles": {
"type": "array",
"items": { "type": "string" }
}
}
}