81 lines
2.5 KiB
Markdown
81 lines
2.5 KiB
Markdown
# 技术上下文与工具链
|
||
|
||
## 核心技术
|
||
|
||
- C++23 Modules、CMake、Conan、Ninja:`lsp-server/` 主体工具链
|
||
- Tree-sitter:TSL 增量解析与语法树生成
|
||
- Glaze、Taskflow、spdlog:JSON、异步调度与日志基础设施
|
||
- TypeScript + VSCode API:`vscode/` 扩展
|
||
- Python 3:playbook 同步、Plan 流程与辅助脚本
|
||
|
||
## 项目结构
|
||
|
||
```text
|
||
tsl-devkit/
|
||
├── lsp-server/ # C++23 LSP 服务器、解析器与测试
|
||
├── vscode/ # VSCode 扩展
|
||
├── vim/ # Vim 语法与运行时支持
|
||
├── docs/standards/playbook/ # vendored playbook 快照
|
||
├── docs/prompts/ # playbook 管理的提示词入口
|
||
├── docs/superpowers/plans/ # 实施计划
|
||
└── memory-bank/ # 项目上下文
|
||
```
|
||
|
||
## 关键入口
|
||
|
||
- `lsp-server/src/core/server.cppm` - LSP stdio 主循环
|
||
- `lsp-server/src/core/dispatcher.cppm` - 请求分发入口
|
||
- `lsp-server/src/provider/` - 各类 LSP capability 实现
|
||
- `lsp-server/src/manager/` - 文档、解析、符号等共享状态
|
||
- `lsp-server/src/language/` - AST、语义、符号分析
|
||
- `docs/standards/playbook/scripts/playbook.py` - 同步 playbook 管理文件
|
||
- `docs/standards/playbook/scripts/main_loop.py` - Plan 领取与写回
|
||
|
||
## 开发环境
|
||
|
||
**必需工具**:
|
||
|
||
- Python 3
|
||
- CMake 4.2+
|
||
- Conan 2.x
|
||
- Ninja
|
||
- Clang 20+ 或 GCC 15+
|
||
- Node.js 18+
|
||
|
||
**运行测试**:
|
||
|
||
```bash
|
||
ctest --test-dir lsp-server/build/clang-linux/Release --output-on-failure
|
||
npm --prefix vscode run compile
|
||
```
|
||
|
||
**格式化 / Lint**:
|
||
|
||
```bash
|
||
clang-format -i <cpp-files>
|
||
npx --prefix vscode prettier -w <ts-or-json-files>
|
||
```
|
||
|
||
## 环境与平台差异
|
||
|
||
- Linux 是主开发环境;Windows 构建通过 Conan profile + CMake 交叉编译支持
|
||
- 仓库位于 CIFS 共享目录时,git 索引状态可能不稳定,需要用轻量 stat 配置
|
||
|
||
## 依赖与限制
|
||
|
||
- Conan 安装和部分构建步骤依赖外网或内网制品源
|
||
- `docs/standards/playbook/` 不做手工业务改造,只通过 subtree 更新
|
||
- `vscode/package.json` 目前没有独立 lint 脚本,TS 侧最基本验证是 `npm run compile`
|
||
|
||
## 验证约定
|
||
|
||
- 文档 / playbook 变更至少要重新运行
|
||
`python docs/standards/playbook/scripts/playbook.py -config playbook.toml`
|
||
- 代码改动的验证范围要与影响面匹配,至少覆盖对应模块的构建或测试
|
||
- 在 CIFS 工作区里,git 校验命令优先加
|
||
`-c core.trustctime=false -c core.checkStat=minimal`
|
||
|
||
---
|
||
|
||
**最后更新**:2026-05-24
|