Skip to content

Latest commit

 

History

History
148 lines (105 loc) · 3.9 KB

File metadata and controls

148 lines (105 loc) · 3.9 KB

🌲 YewIndex — 扩展功能总览(设计总结)

一句话定位 一个用于 集中浏览、管理与快速打开本机 Git 仓库与 VSCode Workspace 的扩展,帮你从“点点点文件资源管理器地狱”中解放出来。


🎯 核心目标(为什么要做它)

  • 一个清晰的视图 中:

    • 看清 “我这台机器上到底有哪些项目”
    • 看清 “我有哪些 workspace,它们对应什么项目”
  • 最少的点击

    • 打开项目
    • 组装 workspace
    • 确认 workspace 内容
  • 完全贴合 个人工作流,不污染项目仓库


🌳 功能模块一:Git 仓库浏览(Repo Explorer)

功能

  • 递归扫描用户指定的根目录

  • 自动识别 Git 仓库:

    • .git/ 目录
    • .git 文件(worktree / submodule)
  • 树状结构(TreeView) 展示

交互能力

  • 点击仓库:
    • 📂 在新窗口中打开文件夹
    • ➕ (可选)添加到当前 workspace
  • 右键菜单:
    • 在终端中打开
    • 复制路径
  • 支持手动刷新

可配置项(计划)

  • 扫描根目录(可多个)
  • 排除目录规则(如 node_modules, .venv, dist
  • 是否显示嵌套仓库

🗂️ 功能模块二:Workspace 管理与预览(Workspace Explorer)

功能

  • 扫描多个指定目录中的 *.code-workspace 文件
  • 以列表 / 树形式展示所有 workspace

Workspace 预览

  • 点击 workspace:
    • 在右侧打开 人类友好可读预览
    • 显示 JSON 内容(folders / settings / extensions)
  • 一眼判断:
    • 这个 workspace 对应哪些项目
    • 是否是我要找的那个

Workspace 操作

  • 一键:
    • 🚀 打开 workspace
    • ➕ 将 workspace 中的项目加入当前窗口(可选)

🧭 功能模块三:统一的“项目总控台”体验

目标体验

  • 不再通过文件资源管理器弹窗反复选择项目位置
  • YewIndex 视图 出发,完成:
    • 项目定位
    • workspace 选择
    • 打开与切换

左侧页面集成

分两块

  • 上部 Tree View 展示 git 仓库路径
  • 下部展示扫描出的 Workspace 和对应路径

命令面板集成

  • YewIndex: Scan Repositories
  • YewIndex: Refresh Views
  • YewIndex: Open Workspace
  • YewIndex: Add Repo to Workspace

⚙️ 技术实现约束(当前阶段)

  • 语言:TypeScript
  • 构建方式:unbundled(不打包)
  • UI
    • VSCode TreeView
    • 虚拟文档预览(不强制 Webview)
  • 运行环境:Node.js(VSCode Extension Host)
  • 不引入
    • 前端框架
    • 复杂构建工具
    • 非必要依赖

🚧 明确不做的事情(v0.x 阶段)

这是一个管理工具,不是 Git 客户端。

  • ❌ 不做 Git 状态展示(commit / diff / branch)
  • ❌ 不做 repo 内文件浏览(交给原生 Explorer)
  • ❌ 不强制 workspace 文件位置或 git 策略

🌱 可扩展方向

  • 乐观刷新,先展示缓存,后台扫描更新 -- done
  • 友善的路径配置页(唤起原生explorer),也支持手动输入路径
  • 引导初始化配置页(可能不需要,投入产出比低)
  • 多语言支持
  • DBBUG 日志,错误处理
  • Workspace 预览文件 md 高亮,增加配置允许其在主窗口打开而不是右侧分半屏 -- done
  • 预览文件打开为预览模式(在第二个文件打开时会自动关闭的类型)而不是完全打开
  • 双击打开/单击打开可配置
  • 直观的刷新按钮 -- done
  • 最近打开的 repo / workspace
  • 易于使用的workspace文件编辑功能
  • Repo metadata 主要是语言(大小、最近修改)
  • Repo ↔ Workspace 关联提示

🧠 设计哲学(很 Yew 的那种)

  • 安静:不打断、不弹窗
  • 耐久:长期使用,不是一次性工具
  • 外部视角:站在项目之外,整理项目
  • 个人优先:尊重每个人的 workspace 使用习惯