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

3.7 KiB
Raw Blame History

技术栈与工具链

核心技术

主语言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