3.7 KiB
3.7 KiB
技术栈与工具链
核心技术
主语言:C++23 (LSP 服务器) + TypeScript (VSCode 扩展)
文件类型:.cppm (C++ Module), .cc, .ts, .json
项目结构
tsl-devkit/
├── lsp-server/ # LSP 服务器 (C++23)
│ ├── src/ # 源代码
│ │ ├── bridge/ # 第三方库桥接
│ │ ├── cli/ # 命令行接口
│ │ ├── codec/ # 编解码器
│ │ ├── core/ # 核心服务
│ │ ├── language/ # 语言分析
│ │ ├── manager/ # 状态管理器
│ │ ├── protocol/ # LSP 协议定义
│ │ ├── provider/ # LSP 功能提供者
│ │ ├── scheduler/ # 异步调度
│ │ ├── tree-sitter/ # 解析器绑定
│ │ └── utils/ # 工具函数
│ ├── test/ # 单元测试
│ └── conan/ # Conan 配置
├── vscode/ # VSCode 扩展
│ ├── src/ # TypeScript 源码
│ ├── syntaxes/ # TextMate 语法
│ └── snippets/ # 代码片段
├── vim/ # Vim 支持
├── test/ # 集成测试用例
├── docs/ # 文档
│ ├── prompts/ # AI 编码提示
│ └── standards/ # 代码标准
└── memory-bank/ # 项目上下文
开发环境
必需工具:
- CMake 4.2+
- Clang 20+ (推荐) 或 GCC 15+
- Conan 2.x (包管理)
- Node.js 18+ (VSCode 扩展开发)
- ninja (构建)
构建 LSP 服务器 (Linux):
# 安装依赖
CONAN_HOME=/tmp/conan-home conan install lsp-server \
-pr:h=lsp-server/conan/profiles/linux-x86_64-clang \
-pr:b=lsp-server/conan/profiles/linux-x86_64-clang \
-of lsp-server/build/clang-linux --build=missing
# 配置
cmake -S lsp-server -B lsp-server/build/clang-linux/Release \
-DCMAKE_TOOLCHAIN_FILE=$PWD/lsp-server/build/clang-linux/Release/generators/conan_toolchain.cmake \
-DBUILD_TESTS=ON
# 构建
cmake --build lsp-server/build/clang-linux/Release --target tsl-server
构建 LSP 服务器 (Windows 交叉编译):
CONAN_HOME=/tmp/conan-home conan install lsp-server \
-pr:b=lsp-server/conan/profiles/linux-x86_64-clang \
-pr:h=lsp-server/conan/profiles/windows-x86_64-clang-cross \
-of lsp-server/build/clang-cross --build=missing
cmake -S lsp-server -B lsp-server/build/clang-cross \
-DCMAKE_TOOLCHAIN_FILE=$PWD/lsp-server/build/clang-cross/Release/generators/conan_toolchain.cmake \
-DBUILD_TESTS=OFF
cmake --build lsp-server/build/clang-cross --target tsl-server
运行测试:
# C++ 单元测试
ctest --test-dir lsp-server/build/clang-linux/Release --output-on-failure
# VSCode 扩展
cd vscode && npm test
依赖管理
C++ 依赖 (Conan):
| 包 | 版本 | 用途 |
|---|---|---|
| glaze | 6.4.0 | 高性能 JSON 序列化 |
| spdlog | 1.17.0 | 日志库 |
| fmt | 12.1.0 | 格式化库 |
| taskflow | 3.10.0 | 并行任务执行 |
| tree-sitter | 0.25.9 | 增量语法解析 |
VSCode 扩展依赖 (npm):
| 包 | 用途 |
|---|---|
| vscode-languageclient | LSP 客户端 |
测试策略
测试类型:
- LSP JSON 测试:Python 脚本驱动的协议交互测试 (
run_lsp_json_tests.py)
验证标准:
- 所有 LSP JSON 测试通过
最后更新:2026-02-02