在 VS Code 源码中,资源管理器(Explorer)相关实现分散在多个目录/文件中。以下是关键文件和目录的定位(用于对照实现与阅读)。 ## 1) 入口注册(Explorer Contributions) - `src/vs/workbench/contrib/files/browser/files.contribution.ts` - 注册资源管理器相关视图、命令、菜单等贡献点。 ## 2) 视图实现(Explorer View) - `src/vs/workbench/contrib/files/browser/views/explorerView.ts` - Explorer 视图的渲染、布局与交互(树展示、展开折叠、选中、右键、拖拽等)。 ## 3) 数据模型(Explorer Model) - `src/vs/workbench/contrib/files/common/explorerModel.ts` - Explorer 的数据模型(树数据构建、过滤/排序、与文件服务交互)。 ## 4) 通用资源树结构(ResourceTree) - `src/vs/base/common/resourceTree.ts` - 基于 URI 的通用树结构实现,Explorer 使用的重要基础。 ## 5) 文件相关命令(File Commands) - `src/vs/workbench/contrib/files/browser/fileCommands.ts` - 浏览器端通用文件命令(新建/删除/重命名/复制粘贴等)。 - `src/vs/workbench/contrib/files/electron-browser/fileCommands.ts` - 桌面端特有命令(如在系统文件管理器中显示等)。 ## 6) 文件服务接口(File Service) - `src/vs/platform/files/common/files.ts` - 文件服务核心接口(`IFileService`),提供文件系统读写与监听能力。 ## 7) 辅助工具(URI/过滤等) - `src/vs/base/common/resources.ts`:URI/路径工具 - `src/vs/workbench/common/resources.ts`:glob 匹配/过滤(排除文件等) - `src/vs/workbench/contrib/files/common/files.ts`:文件资源通用类型