From 149a41588c0ac1f87d2e0e737b6cde2dda3c26ff Mon Sep 17 00:00:00 2001 From: csh Date: Tue, 3 Feb 2026 13:47:23 +0800 Subject: [PATCH] :memo: docs(memory-bank): update architecture --- memory-bank/architecture.md | 60 +++++++++++++------------------------ 1 file changed, 21 insertions(+), 39 deletions(-) diff --git a/memory-bank/architecture.md b/memory-bank/architecture.md index 042fe9b..71cda04 100644 --- a/memory-bank/architecture.md +++ b/memory-bank/architecture.md @@ -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 ```