tsl-devkit/memory-bank/tech-stack.md

124 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 技术栈与工具链
## 核心技术
**主语言**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