# 技术栈与工具链 ## 核心技术 **主语言**:C++23 (LSP 服务器) + TypeScript (VSCode 扩展) **文件类型**:`.cppm` (C++ Module), `.cc`, `.ts`, `.json` ## 项目结构 ```text 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)**: ```bash # 安装依赖 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 交叉编译)**: ```bash 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 ``` **运行测试**: ```bash # 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