在 DSH Web UI 中进行文件浏览和版本控制通常需要频繁切换窗口或依赖外部工具。dsh-files-git 插件通过一个居中模态面板,将文件浏览、搜索、预览、编辑以及 Git 操作流程集成在一起,让开发者无需离开浏览器即可完成日常工作。
这是一个由 leanderli 维护的 DSH 客户端插件。它为当前会话的工作区目录提供了一体化管理方案,支持 Monaco 编辑器集成、Git 状态监控、分支切换、差异预览以及提交历史回滚等功能。
核心功能¶
文件浏览与预览¶
插件提供懒加载的文件树,支持双栏文件窗格,拖动分隔条调整宽度。全工作区搜索结果扁平展示,支持搜索历史记录。内容预览支持文本全量显示(512KB 内不截断),Markdown 可直接渲染。面板内集成了 Monaco 编辑器,支持按类型匹配语言、语法高亮及保存回写。支持本地上传文件、引用路径到输入框以及快捷操作菜单。
Git 操作¶
面板右侧提供 Git 标签,显示当前分支、领先/落后状态。支持拉取、推送、获取、强推等操作,并实时展示命令输出。分支选择器支持本地/远程分支分组管理与检出。变更列表按冲突、暂存、未暂存分组,支持行内差异预览(词级高亮)。提交历史支持回滚与重置操作。Git 状态每 5 秒静默轮询,外部改动不会打断当前操作。
面板体验¶
以居中模态窗口呈现,支持挂起(滑出视口恢复状态)和全屏切换。设置页可配置编辑器主题、默认全屏及点击行为。界面采用磨砂玻璃视觉风格,并包含焦点陷阱与滚动锁定机制。双入口设计:已进入会话时位于标题栏,新建会话时位于输入框上方。
安装与启用¶
- 获取插件源码并放置到插件目录(示例路径为
~/.dsh/plugins/)。 - 注册到 web profile:
dsh plugin --profile web add ~/.dsh/plugins/dsh-files-git
- 重启 DSH Web:
dsh web
- 打开面板:在 WebUI 标题栏找到「文件与变更」按钮并点击。
使用说明¶
- 文件操作:在文件标签中展开目录,点击文件进行预览或编辑(Monaco)。支持本地文件上传和引用到输入框。
- Git 操作:勾选变更文件后提交,或通过操作栏执行拉取、推送。点击差异行可展开对比视图。
- 挂起面板:点击头部「↑」或鼠标移出面板,面板会滑出并保持状态,再次进入即可恢复。
注意事项¶
- 环境要求:DSH 版本需 0.1.5 及以上,系统 PATH 中需包含
git命令。 - 路径依赖:安装后不要删除或移动插件源目录,profile 中是符号链接,源目录丢失会导致启动失败。
- 安全模型:RPC 通信仅限于回环地址,文件浏览严格限定在工作区根目录内,无 Shell 注入风险。
- 语言:Git 命令输出本身为英文或混合输出,面板界面文案跟随 DSH 语言设置。
生态与资源¶
该插件遵循 MIT 许可证,零运行时依赖,支持离线安装。更多详情请参考项目目录或 GitHub 仓库。