This commit is contained in:
+85
-26
@@ -1,63 +1,122 @@
|
||||
# 技术栈与工具链
|
||||
|
||||
<!--
|
||||
填写指南:
|
||||
- 【必填】:项目启动前必须填写
|
||||
- 【可选】:按需填写,可随项目发展补充
|
||||
- 未填写的占位符保持原样或删除整行
|
||||
-->
|
||||
|
||||
## 核心技术
|
||||
|
||||
<!-- 【必填】 -->
|
||||
**主语言**:C++23 (LSP 服务器) + TypeScript (VSCode 扩展)
|
||||
|
||||
**主语言**:cpp
|
||||
|
||||
**文件类型**:{{FILE_TYPES}}
|
||||
**文件类型**:`.cppm` (C++ Module), `.cc`, `.ts`, `.json`
|
||||
|
||||
## 项目结构
|
||||
|
||||
<!-- 【必填】 -->
|
||||
|
||||
```text
|
||||
tsl-devkit/
|
||||
├── {{DIR_1}}/ # {{DIR_1_DESC}}
|
||||
└── memory-bank/ # 项目上下文
|
||||
├── 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/ # 项目上下文
|
||||
```
|
||||
|
||||
## 开发环境
|
||||
|
||||
<!-- 【必填】至少填写运行测试命令 -->
|
||||
|
||||
**必需工具**:
|
||||
|
||||
- {{TOOL_1}}
|
||||
- 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
|
||||
{{TEST_CMD}}
|
||||
# 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 | 增量语法解析 |
|
||||
|
||||
- {{EXTERNAL_DEP_1}}
|
||||
**VSCode 扩展依赖 (npm)**:
|
||||
|
||||
| 包 | 用途 |
|
||||
| --------------------- | ---------- |
|
||||
| vscode-languageclient | LSP 客户端 |
|
||||
|
||||
## 测试策略
|
||||
|
||||
<!-- 【可选】大项目建议填写 -->
|
||||
|
||||
**测试类型**:
|
||||
|
||||
- {{TEST_TYPE_1}}
|
||||
- LSP JSON 测试:Python 脚本驱动的协议交互测试 (`run_lsp_json_tests.py`)
|
||||
|
||||
**验证标准**:
|
||||
|
||||
- {{PASS_CONDITION_1}}
|
||||
- 所有 LSP JSON 测试通过
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user