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

81 lines
2.5 KiB
Markdown
Raw Permalink 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 Modules、CMake、Conan、Ninja`lsp-server/` 主体工具链
- Tree-sitterTSL 增量解析与语法树生成
- Glaze、Taskflow、spdlogJSON、异步调度与日志基础设施
- TypeScript + VSCode API`vscode/` 扩展
- Python 3playbook 同步、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