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