📝 docs(memory-bank): update architecture
lsp-server ci / build-and-test (push) Failing after 22s Details

This commit is contained in:
csh 2026-02-03 13:47:23 +08:00
parent 20b7d439b1
commit 149a41588c
1 changed files with 21 additions and 39 deletions

View File

@ -4,59 +4,41 @@
```mermaid
graph TB
subgraph Clients["编辑器客户端"]
VSCode["VSCode Extension"]
Vim["Vim Plugin"]
Other["其他 IDE"]
end
Client["fa:fa-desktop 客户端 (VSCode / Vim / ...)"]
VSCode & Vim & Other -->|"LSP (JSON-RPC over stdio)"| Core
Client -->|"LSP stdio"| Core
subgraph Server["LSP Server (C++23)"]
subgraph Core["Core Layer"]
ServerMain["Server\n主循环"]
Dispatcher["Dispatcher\n请求分发"]
AsyncExecutor["AsyncExecutor\n异步调度"]
ServerMain --- Dispatcher --- AsyncExecutor
subgraph Core["Core"]
direction LR
S["Server"] ~~~ D["Dispatcher"] ~~~ A["AsyncExecutor"]
end
subgraph Manager["Manager Layer"]
DocumentMgr["Document\nManager"]
ParserMgr["Parser\nManager"]
SymbolMgr["Symbol\nManager"]
EventBus["EventBus"]
subgraph Provider["Provider"]
direction LR
P1["Completion"] ~~~ P2["Definition"] ~~~ P3["CodeAction"] ~~~ P4["..."]
end
subgraph Provider["Provider Layer"]
Completion["Completion"]
CodeAction["CodeAction"]
CodeLens["CodeLens"]
Definition["Definition"]
InlayHint["InlayHint"]
More["..."]
subgraph Manager["Manager"]
direction LR
M1["Document"] ~~~ M2["Parser"] ~~~ M3["Symbol"] ~~~ M4["EventBus"]
end
subgraph Language["Language Layer"]
AST["AST\n语法树"]
Semantic["Semantic\n语义分析"]
Symbol["Symbol\n符号表"]
subgraph Language["Language"]
direction LR
L1["AST"] ~~~ L2["Semantic"] ~~~ L3["Symbol"]
end
subgraph Bridge["Bridge Layer"]
Glaze["Glaze"]
Spdlog["spdlog"]
Taskflow["Taskflow"]
TreeSitter["Tree-sitter"]
Win32Stdio["win32_stdio"]
subgraph Bridge["Bridge"]
direction LR
B1["Glaze"] ~~~ B2["Tree-sitter"] ~~~ B3["Taskflow"] ~~~ B4["spdlog"]
end
Core --> Manager
Core --> Provider
Provider --> Manager
Provider --> Language
Manager --> Language
Core --> Provider & Manager
Provider --> Manager & Language
Manager --> Language & Bridge
Language --> Bridge
Manager --> Bridge
end
```