🔧 chore(repo): refresh local rules and ast defaults
add repository-local agent rules and refresh the architecture notes for the current lsp layering. register the AST self-test in CTest, initialize a few AST defaults, and bump glaze to the newer conan package version. verify: `cmake --build lsp-server/build/clang-linux/Release --target test_ast` verify: `ctest --test-dir lsp-server/build/clang-linux/Release -R test_ast_unit --output-on-failure` passes known issue: `ctest --test-dir lsp-server/build/clang-linux/Release -R test_ast_script --output-on-failure` still fails on `/home/csh/windows_share/tsf/funcext/Common/Tree/TTree.tsf` due to invalid TSF syntax (`FConfig &= v` missing trailing `;`).
This commit is contained in:
@@ -12,7 +12,17 @@ graph TB
|
||||
|
||||
subgraph Core["Core"]
|
||||
direction LR
|
||||
S["Server"] ~~~ D["Dispatcher"] ~~~ A["AsyncExecutor"]
|
||||
S["Server"] ~~~ D["Dispatcher"]
|
||||
end
|
||||
|
||||
subgraph Scheduler["Scheduler"]
|
||||
direction LR
|
||||
A["AsyncExecutor"]
|
||||
end
|
||||
|
||||
subgraph Codec["Codec"]
|
||||
direction LR
|
||||
C1["Facade"] ~~~ C2["Transformer"]
|
||||
end
|
||||
|
||||
subgraph Provider["Provider"]
|
||||
@@ -35,10 +45,13 @@ graph TB
|
||||
B1["Glaze"] ~~~ B2["Tree-sitter"] ~~~ B3["Taskflow"] ~~~ B4["spdlog"]
|
||||
end
|
||||
|
||||
Core --> Provider & Manager
|
||||
Core --> Provider & Manager & Scheduler
|
||||
Core --> Codec
|
||||
Provider --> Manager & Language
|
||||
Manager --> Language & Bridge
|
||||
Language --> Bridge
|
||||
Scheduler --> Bridge
|
||||
Codec --> Bridge
|
||||
end
|
||||
```
|
||||
|
||||
@@ -52,6 +65,25 @@ graph TB
|
||||
|
||||
- `src/core/server.cppm` - 服务器主循环,stdio 读写
|
||||
- `src/core/dispatcher.cppm` - 请求分发器,路由到对应 Provider
|
||||
- `src/core/bootstrap.cppm` - 服务器启动初始化
|
||||
|
||||
### Scheduler - 异步调度
|
||||
|
||||
**职责**:管理异步任务的执行、取消和生命周期
|
||||
|
||||
**关键文件**:
|
||||
|
||||
- `src/scheduler/async_executor.cppm` - 异步任务执行器,基于 Taskflow 实现
|
||||
|
||||
### Codec - 编解码
|
||||
|
||||
**职责**:封装 JSON 序列化/反序列化,提供统一的 LSP 消息编解码接口
|
||||
|
||||
**关键文件**:
|
||||
|
||||
- `src/codec/facade.cppm` - 序列化门面,`Serialize<T>` / `Deserialize<T>` 统一入口
|
||||
- `src/codec/transformer.cppm` - LSPAny 类型转换
|
||||
- `src/codec/common.cppm` - 公共类型
|
||||
|
||||
### Manager - 状态管理
|
||||
|
||||
@@ -63,6 +95,7 @@ graph TB
|
||||
- `src/manager/parser.cppm` - 解析管理,维护语法树缓存
|
||||
- `src/manager/symbol.cppm` - 符号管理,维护符号索引
|
||||
- `src/manager/event_bus.cppm` - 事件总线,模块间解耦通信
|
||||
- `src/manager/events.cppm` - 事件类型定义
|
||||
- `src/manager/manager_hub.cppm` - 管理器集线器,统一访问入口
|
||||
|
||||
### Provider - LSP 功能提供者
|
||||
@@ -80,6 +113,10 @@ graph TB
|
||||
- `src/provider/call_hierarchy/` - 调用层次
|
||||
- `src/provider/type_hierarchy/` - 类型层次
|
||||
- `src/provider/workspace_symbol/` - 工作区符号搜索
|
||||
- `src/provider/initialize/`, `src/provider/initialized/`, `src/provider/shutdown/`, `src/provider/exit/` - 生命周期管理
|
||||
- `src/provider/cancel_request/` - 请求取消
|
||||
- `src/provider/workspace/`, `src/provider/window/`, `src/provider/client/` - 协议通道管理
|
||||
- `src/provider/trace/`, `src/provider/telemetry/` - 追踪与遥测
|
||||
|
||||
### Language - 语言分析
|
||||
|
||||
@@ -149,4 +186,4 @@ graph TB
|
||||
|
||||
---
|
||||
|
||||
**最后更新**:2026-02-02
|
||||
**最后更新**:2026-03-04
|
||||
|
||||
Reference in New Issue
Block a user