- Extension 主入口 (
extension.ts):注册命令、初始化侧边栏和状态栏 - ProjectStore:管理项目数据的加载、保存、排序、Pin 及搜索功能
- ProjectTree:TreeDataProvider,用于侧边栏展示项目列表和分类
- 状态栏管理:显示当前项目,支持点击快速切换
- 快捷键处理:处理
Alt+Q快捷键,实现快速切换和搜索新窗口打开
每个项目 JSON 示例:
{
"name": "flowgame-server",
"path": "/data/repos/flowgame/server",
"tags": ["go", "backend"],
"sshHost": "prod-server-1",
"pinned": true,
"lastOpenedAt": "2026-01-10T12:00:00Z"
}pinned:是否置顶tags:标签分类sshHost:远程 SSH 分类lastOpenedAt:最近打开时间
- 读取/写入 JSON 文件
- 提供项目增删改查接口
- 支持排序(最近打开、名称、Pin 优先)
- 搜索接口(按名称、标签、SSH)
- 实现
TreeDataProvider - 按 Pin、标签、SSH 分组显示
- 支持点击打开或新窗口打开
- 绑定
Alt+Q快捷键 - 弹出快速搜索列表(输入框在最上方)
- 可直接切换当前项目或搜索后在新窗口打开
- 显示当前项目名称
- 点击可快速切换项目
- 侧边栏:TreeView + 搜索框 + Pin 高亮
- 状态栏:当前项目展示
- 快捷键:快速弹出搜索列表
- 使用 VS Code
globalState或单一 JSON 文件存储项目数据 - JSON 文件位于用户目录,可手动编辑
- 支持插件启动时加载到内存,提高访问速度
- 支持 100+ 项目无明显性能下降
- Pin 项目优先展示,提升访问效率
- 搜索采用前缀匹配和模糊匹配,保证响应速度
- 模块化设计,方便未来添加功能,如远程同步或备份