Bundle
dsh-sidebar-enhancement-folder
Reveal the containing folder of any file open in a dsh-better-sidebar editor tab (explorer /select), one button per tab
- Source
- mastereal
- License
- MIT
- Updated
- Updated 3 days ago
Readme
# dsh-sidebar-enhancement-folder 给 [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar) 的**每个文件编辑标签页**加一个「打开所在文件夹」按钮:按钮内嵌在该标签自己的工具栏里(md/html 在「预览/编辑」旁边,PDF/图片/二进制查看器在标题栏),**永远指向该标签自己的文件**,不依赖哪个窗格是活动的。 > **English**: One "open containing folder" button per editor tab in dsh-better-sidebar, embedded in that tab's own toolbar. Each button targets its own tab's file regardless of the active pane. --- ## ⚠️ 免责声明(请先读) **本插件是 vibecoding(与 AI 协作、边聊边写)出来的作品,作者纯自用,没有经过大规模测试,也没有在其他人的环境里验证过。** - 它直接操作 better-sidebar 的 DOM(向编辑器工具栏插入按钮、MutationObserver 自愈),**better-sidebar 升级后可能失效**; - 安装与使用**有风险**:可能出现按钮错位、残留等问题,请自行评估后再装; - 作者不对任何数据丢失、功能异常或使用后果负责; - 如果遇到问题,欢迎提 issue,但**不保证修复时间**。 > **English**: This plugin was **vibecoded** (built collaboratively with AI). It is for **personal use**, not battle-tested, and injects buttons into better-sidebar's DOM — **install at your own risk**. No warranty of any kind. --- ## 功能 - **每标签一个按钮**:内嵌在工具栏行内(md/html 在预览/编辑旁边;PDF/图片/二进制在标题栏),非活动标签也有效,切换到它就显示 - **指向自己的文件**:按钮路径取自该标签自己的 `editorPathInput[title=路径]`(0.14 起),没有"活动窗格"判断逻辑 - **跟随布局**:按钮活在窗格自己的 DOM 里,拖标签/拆分窗格/调宽度都跟着走;自愈机制每轮清理重复/残留按钮 - **Windows 定位可靠**:`explorer /select` 参数经过真实窗口标题验证(`windowsVerbatimArguments` + 引号),支持带空格/中文的文件名;文件缺失时自动上溯到最近存在的目录 - **宿主侧路径解析**:剥离 `file://` 前缀,相对路径按会话工作目录解析 ## 依赖 - DeepSeek Harness(DSH)Web GUI - [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar) ^0.14(v1.0.2+ 已适配 0.14:路径源改为 `editorPathInput[title=路径]`) - **仅 Windows**(使用 `explorer.exe /select`) ## 安装 ```sh # 从 GitHub release 安装(tarball) dsh plugin --profile web add https://github.com/mastereal/dsh-sidebar-enhancement-folder/archive/refs/tags/v1.0.5.tar.gz ``` 装完重启 `dsh web`,浏览器**硬刷新(Ctrl+Shift+R)**,并**关闭所有旧 DSH 窗口/标签页**(旧实例会残留旧代码,造成按钮重复)。 ## 使用 在侧边栏打开任意文件,每个编辑标签页的工具栏里会出现一个文件夹按钮;点击即在系统资源管理器中打开该文件所在文件夹并选中文件。 ## 排障 控制台日志前缀 `[dsh-sidebar-enhancement-folder]`: - `client loaded (v1.0.5)` —— 浏览器端已加载 - `paneTabs: editors=N buttons=M` —— 按钮同步计数 - `reveal clicked: <路径>` —— 发送给宿主的路径 宿主窗口会打印 `[dsh-sidebar-enhancement-folder] reveal select/open <路径>`。定位到错误文件夹时,看 `reveal clicked` 一行就知道标签携带的路径是什么。 ## 工作原理(简) better-sidebar 会把所有标签的内容都渲染进 DOM(非活动标签只是 `display:none`),且每个 editor 标签必有 `input[class*="editorPathInput"][title=路径]`(0.14 起,旧版是 `span.editorTitle`)。客户端给每个 `paneTab` 的工具栏嵌入一个按钮、从该 paneTab 自己的 `editorPathInput` 读取路径,再由防抖自愈(store 订阅 + MutationObserver + 2 秒心跳)清理重复/残留并在布局变化后重建。宿主路由为 `/dsh-sidebar-enhancement-folder/reveal`;v1.0.5 起 reveal 后会把资源管理器窗口激活到前台(模拟 Alt + SetForegroundWindow,解决后台进程打开不置顶),v1.0.3 起按钮图标为文件夹+放大镜(与 0.14 原生「文件树面板」按钮的纯文件夹图标区分)。 ## 许可 MIT © 2026 mastereal --- *Vibecoded with DeepSeek Harness · 纯自用作品,谨慎安装*
Install
dsh plugin --profile web add github:mastereal/dsh-sidebar-enhancement-folder
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-sidebar-enhancement-folder from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.