Skip to content

源码索引

本索引对应仓库内 zed-main 源码快照(crates/zed/Cargo.toml 版本 1.15.0)。行号用于快速定位, 上游更新后可能漂移;优先搜索符号名。zed-ai-notes 只包含分析文档,不复制 Zed 源码。

应用启动与装配

路径关键符号/职责对应章节
crates/zed/src/main.rs平台入口、CLI/进程初始化启动
crates/zed/src/zed.rsinit、全局服务与 action 注册启动
crates/workspace/src/workspace.rsAppState、打开 workspace/project启动
crates/gpui_platform/src/gpui_platform.rs按目标平台选择 GPUI backend启动
crates/gpui_linux/src/linux.rsLinux GPUI 平台实现入口启动
crates/gpui_macos/src/platform.rsmacOS GPUI 平台实现启动
crates/gpui_windows/src/platform.rsWindows GPUI 平台实现启动

GPUI 与渲染

路径关键符号/职责对应章节
crates/gpui/src/app.rsApp、全局状态、Entity 生命周期GPUI
crates/gpui/src/app/context.rsContext<T>、update/emit/notify/spawnGPUI
crates/gpui/src/app/entity_map.rsEntity<T>、WeakEntity、entity storageGPUI
crates/gpui/src/window.rswindow、focus、dispatch、frameGPUI
crates/gpui/src/element.rsElement 三阶段协议渲染
crates/gpui/src/scene.rsprimitives、batch、draw order渲染
crates/gpui/src/platform.rs平台窗口/输入抽象渲染
crates/gpui/src/text_system.rs字体、glyph shaping 与 cache渲染

数据结构与文本

路径关键符号/职责对应章节
crates/sum_tree/src/sum_tree.rsSumTree、Summary、Dimension、Cursor数据结构
crates/rope/src/rope.rsUTF-8 Rope、Point/offset 转换数据结构
crates/text/src/text.rsText trait、Point、OffsetRangeExt数据结构
crates/text/src/anchor.rsstable Anchor 与 bias协同 Buffer
crates/text/src/text.rs底层 Text、Operation、Anchor resolve、CRDT协同 Buffer
crates/language/src/buffer.rs语言层 Buffer、transaction、snapshot协同 Buffer
crates/clock/src/clock.rsreplica/logical timestamp/vector clock协同 Buffer

Editor 与视觉映射

路径关键符号/职责对应章节
crates/multi_buffer/src/multi_buffer.rsMultiBuffer、Excerpt、跨 Buffer transactionEditor
crates/editor/src/editor.rsEditor 状态、input/action、selectionEditor
crates/editor/src/display_map.rsDisplayMap 组合与 SnapshotEditor
crates/editor/src/display_map/fold_map.rsfold projectionEditor
crates/editor/src/display_map/inlay_map.rsinlay projectionEditor
crates/editor/src/display_map/tab_map.rstab expansion projectionEditor
crates/editor/src/display_map/wrap_map.rssoft wrap projectionEditor
crates/editor/src/selections_collection.rs多 Selection、history、mergeEditor
crates/editor/src/element.rsviewport layout/paint/hit testEditor

Project、Worktree 与语言服务

路径关键符号/职责对应章节
crates/project/src/project.rsProject facade、local/remote、collaboratorsProject
crates/project/src/worktree_store.rsWorktree 集合、local/remote dispatchProject
crates/worktree/src/worktree.rsworktree local/remote 实体与事件Project
crates/project/src/buffer_store.rsopen/save/sync Buffer、remote handlersProject
crates/fs/src/fs.rsFs trait、RealFs/FakeFs 边界Project
crates/language/src/language.rsLanguage、grammar、queries、registry语言/LSP
crates/language/src/buffer.rssyntax snapshot、parse、injections语言/LSP
crates/project/src/lsp_store.rsserver 生命周期、request、diagnostics语言/LSP
crates/project/src/lsp_store.rsserver adapter/状态管理与请求路由语言/LSP
crates/lsp/src/lsp.rsLSP process/client 与 protocol helpers语言/LSP

Workspace 与工程能力

路径关键符号/职责对应章节
crates/workspace/src/workspace.rspanes、items、dock、serializationWorkspace
crates/workspace/src/item.rsItem trait 与 item eventsWorkspace
crates/workspace/src/pane.rstabs、active item、split navigationWorkspace
crates/workspace/src/dock.rsleft/right/bottom docks 与 panelsWorkspace
crates/task/src/task.rsTask template、variables、resolved task任务/终端/调试
crates/project/src/task_store.rstask discovery/context/local-remote任务/终端/调试
crates/terminal/src/terminal.rsterminal state、PTY events任务/终端/调试
crates/terminal_view/src/terminal_view.rsterminal GPUI view/input任务/终端/调试
crates/dap/src/dap.rsDebug Adapter Protocol client任务/终端/调试
crates/debugger_ui/src/session.rsdebug session state machine任务/终端/调试
crates/project/src/git_store.rsRepository Entity、status/diff/checkpointGit/搜索
crates/git/src/repository.rsRepository trait/real implementationGit/搜索
crates/search/src/text_finder/delegate.rsmatch → MultiBuffer excerptsGit/搜索
crates/search/src/project_search.rsstreaming project search view/modelGit/搜索

协作与 RPC

路径关键符号/职责对应章节
crates/client/src/client.rsClient、Status、认证/连接/重连协作/RPC
crates/rpc/src/rpc.rsprotocol version、message traits协作/RPC
crates/rpc/src/message_stream.rsWebSocket frame、protobuf、heartbeat协作/RPC
crates/rpc/src/peer.rsrequest/response/stream、handler dispatch协作/RPC
crates/collab/src/rpc.rsserver RPC 注册、鉴权、项目路由协作/RPC
crates/project/src/buffer_store.rsUpdateBuffer、SynchronizeBuffers协作/RPC

Agent 与模型

路径关键符号/职责对应章节
crates/agent/src/thread.rsThread、run_turn loop、compactionAgent
crates/agent/src/tools.rsbuilt-in tool registryAgent
crates/agent/src/agent.rsNativeAgent、ACP connection adapterAgent
crates/language_model/src/language_model.rsmodel/provider traits、stream eventsAgent
crates/acp_thread/src/acp_thread.rs通用 thread/tool/permission UI modelAgent
crates/agent_ui/src/conversation_view/thread_view.rsThread UI、消息与 tool cardsAgent

扩展与远端

路径关键符号/职责对应章节
crates/extension_api/src/extension_api.rspublic Extension trait、register macro扩展
crates/extension/src/extension.rs宿主内部 extension abstraction扩展
crates/extension_host/src/extension_host.rsExtensionStore、index/install/load扩展
crates/extension_host/src/wasm_host.rsWasmtime component host、调用转换扩展
crates/extension_host/src/wasm_host/wit/versioned WIT worlds扩展
crates/remote/src/remote_client.rsRemoteClient、state、reconnect/poolRemote
crates/remote_server/src/main.rsheadless remote server 入口Remote
crates/remote/src/transport/ssh.rsSSH transportRemote
crates/remote/src/transport/wsl.rsWSL transportRemote

测试入口建议

想验证的机制推荐搜索
GPUI Entity/event/task#[gpui::test]TestAppContext
Project 文件时序FakeFsTestProject
LSP 同步FakeLanguageServerdid_opendid_change
Buffer 收敛randomreplicaoperationscan_apply
Remote 重连MockRemoteConnectionReconnecting
Agent tool loopfake model、ToolUserun_turncompaction

使用索引的方法

  1. 先从章节的用户动作/调用链确定领域;
  2. 在本表找到 facade/store,而不是直接跳最低层;
  3. rg 'struct Symbol|fn method' crates/... 定位当前行号;
  4. 同时打开事件 enum 与测试,理解状态变化而不只读 happy path;
  5. 对比 local/remote handler,确认真正的进程边界。

独立源码学习笔记 · 文档采用 CC BY-SA 4.0