Skip to content

Latest commit

 

History

History
84 lines (58 loc) · 2.02 KB

File metadata and controls

84 lines (58 loc) · 2.02 KB

Project Jump – 技术方案规划

1. 架构概览

  • Extension 主入口 (extension.ts):注册命令、初始化侧边栏和状态栏
  • ProjectStore:管理项目数据的加载、保存、排序、Pin 及搜索功能
  • ProjectTree:TreeDataProvider,用于侧边栏展示项目列表和分类
  • 状态栏管理:显示当前项目,支持点击快速切换
  • 快捷键处理:处理 Alt+Q 快捷键,实现快速切换和搜索新窗口打开

2. 数据模型

每个项目 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:最近打开时间

3. 功能模块

3.1 ProjectStore

  • 读取/写入 JSON 文件
  • 提供项目增删改查接口
  • 支持排序(最近打开、名称、Pin 优先)
  • 搜索接口(按名称、标签、SSH)

3.2 ProjectTree

  • 实现 TreeDataProvider
  • 按 Pin、标签、SSH 分组显示
  • 支持点击打开或新窗口打开

3.3 快捷键处理

  • 绑定 Alt+Q 快捷键
  • 弹出快速搜索列表(输入框在最上方)
  • 可直接切换当前项目或搜索后在新窗口打开

3.4 状态栏管理

  • 显示当前项目名称
  • 点击可快速切换项目

4. 交互设计

  • 侧边栏:TreeView + 搜索框 + Pin 高亮
  • 状态栏:当前项目展示
  • 快捷键:快速弹出搜索列表

5. 数据存储方案

  • 使用 VS Code globalState 或单一 JSON 文件存储项目数据
  • JSON 文件位于用户目录,可手动编辑
  • 支持插件启动时加载到内存,提高访问速度

6. 扩展性与性能考虑

  • 支持 100+ 项目无明显性能下降
  • Pin 项目优先展示,提升访问效率
  • 搜索采用前缀匹配和模糊匹配,保证响应速度
  • 模块化设计,方便未来添加功能,如远程同步或备份