SuperAPI AI 工具集

project-switching

编程与开发

查看项目

更新于 10-16 00:05

技能介绍

用途:在 sidecar 中不重启程序即可切换不同 git 仓库。按 @ 打开项目切换弹窗,按 W 在当前仓库的 git worktree 间切换。

主要能力:项目列表来自 ~/.config/sidecar/config.json 的 projects.list,每项含 name、path,path 支持 ~ 展开,可为单个项目指定 theme。弹窗支持按名称与路径的大小写不敏感子串过滤、上下键与 ctrl+n/ctrl+p 导航、鼠标点击切换、滚动指示、当前项目高亮,以及选中项主题实时预览。切换时会保存旧工作目录的插件状态、更新工作目录与仓库名、应用项目主题、通过 m.registry.Reinit(targetPath) 重新初始化全部插件、发送 WindowSizeMsg 重算布局,并恢复该项目上次激活的插件。每个项目的激活插件、文件浏览器光标与展开目录、侧边栏宽度等状态保存在 ~/.config/sidecar/state.json。

使用方式:按 @ 打开或关闭弹窗;Esc 先清空过滤,再按一次关闭;Enter 切换到选中项目。相关实现位于 internal/app/model.go、update.go、view.go 与 internal/modal/。

限制与注意:切换会停止所有插件(文件监听、git 命令等)并重新初始化;弹窗内容变化时需调用 clearProjectSwitcherModal() 清除缓存,过滤后需 clamp 光标,关闭弹窗后需调用 updateContext(),重置时需恢复主题。更多实现细节见 references/implementation-details.md。其余功能与平台信息暂未提供。