kaijia323/dsh-ymc-sidebar

kaijia323★ 0TypeScript最后同步: 2026-08-20

在 GitHub 打开

DSH Web Client 的 VSCode 风格文件树侧栏插件:虚拟化懒加载文件树,支持文本 / Markdown / 图片预览。

README 摘要

dsh-ymc-sidebar DSH Web Client 的 VSCode 风格文件树侧栏。作为 root 的兄弟节点挂载在 document.body 上,通过 CSS layout push 让 DSH 原生界面让出右侧空间;不占用 DSH 原生 details slot,因此 blank 会话也能打开。特性: - 以当前会话工作区目录(session cwd)为根展示文件树 - 目录按需懒加载,树与代码视图都做了虚拟滚动 - 默认不显示内容预览区;点击文件后,在右栏下方预览内容(上方为文件树) - 支持多文件 tabs:可同时打开多个文件、横向滚动、点击 × 关闭 - 支持文本/代码(带行号与基础语法高亮)、Markdown 渲染 / 源码切换、常见图片预览 - 不预置目录忽略规则,文件系统里有什么就展示什么( node modules 等大目录靠懒加载 + 虚拟化抗压) 架构 插件分两半: - Host half( src/index.ts ) :注入 fs 与 connection ,在 /dsh-ymc-sidebar 注册一个仅 loopback 可访问的 Connection RPC channel,提供 meta / list / read 三个端点。 - Browser half( src/client.tsx ) :注入 sessions 、 workspaces 、 connection ,在 document.body 上创建自己的 React root 并挂载右侧栏。右侧栏是 root 的兄弟节点,不注册任何 DSH slot: - 打开时通过 --dsh-ymc-sidebar-width 让 root 让出宽度,形成“真占位”的 VSCode 式侧栏,而不是 overlay; - 面板本身可拖拽调整宽度(280–640px),宽度与开关状态按 localStorage 持久化; - 不依赖 ctx.layout.openDetails() ,所以 blank / 无消息会话也能打开。 不修改 DSH 源码,也不替换 DSH 原生 details 面板;原生 details 是否打开与本插件互不影响。 源码按职责拆分,入口文件只保留插件注册逻辑: - src/index.ts :Host 插件入口;RPC、文件系统、配置等逻辑在 src/host/ ( config / fs / handlers / rpc / result / utils )。 - src/client.tsx :Browser 插件入口;React 组件、状态与 API 封装在 src/client/ ( api / tree / preview / sidebar-shell / styles 等)。 - src/client-model.ts :与…

在 GitHub 查看完整 README →
皮肤/UIdeepseek-harnessdsh-pluginfile-treelazy-loadingmarkdown-previewreactsidebartypescript

分类