dsh-idea-style
DSH plugin
- Stars
- 0
- Language
- —
- Created
- Aug 21, 2026
- Updated
- Aug 26, 2026
Introduction
dsh-idea-style
DSH 插件全家桶聚合包 —— 一条命令从 GitHub 装齐
Wilson-Lai-Ab整理的全部插件。
dsh-idea-style 是一个 聚合(meta)插件:它自己不实现任何功能,而是把
各成员插件收拢进一个包,通过 DSH 官方的 dsh.bundle 机制一次性挂载。
用户只需要安装这一个插件,就装好了整个全家桶。
仓库:Wilson-Lai-Ab/dsh-idea-style。
依赖有两套,不要混用:
| 文件 | 给谁用 | 成员从哪来 |
|---|---|---|
package.json | 本机工作区开发 | 相对 file:../<成员目录> |
package.publish.json | 推 GitHub / 别人安装 | github:Wilson-Lai-Ab/... |
禁止 workspace:*(独立 web profile 不是这个 pnpm workspace,解析失败)。
禁止 dsh plugin add ./dsh-idea-style 这种裸路径(pnpm 会做成 link:,成员不会 hoist 进 profile,dsh web 启动失败)。Windows / macOS / Linux 都一样。
快速开始
别人 / 发布版(GitHub)
推仓库前把 package.publish.json 整文件覆盖成 package.json(或只同步 dependencies),再 bump 推送。用户侧:
dsh plugin --profile web add git+https://github.com/Wilson-Lai-Ab/dsh-idea-style.git
pnpm 11 会拦截 node-pty / sharp 等构建脚本。装之前在 ~/.dsh/profiles/web/pnpm-workspace.yaml 加上(三端相同):
allowBuilds:
node-pty: true
protobufjs: true
sharp: true
esbuild: true
然后重启 dsh web。
已装 dshmarket 时:设置 → 插件市场,搜索 dsh-idea-style 一点安装(收录进 awesome-dsh-plugin 之后才会出现)。市场执行的仍是上面这条 github: 安装。
本机工作区开发
必须带 file: 前缀,让传递依赖 hoist 进 profile 的 node_modules:
# Windows
dsh plugin --profile web add file:D:\work\dsh_pulgins\dsh-idea-style
# macOS / Linux(换成你的工作区绝对路径)
dsh plugin --profile web add file:/path/to/dsh_pulgins/dsh-idea-style
变更审查走聚合包里的 dsh-local-history(侧栏「改动审查」)。dsh-vscode-review 不在本包内,需要 VS Code 行内逐段 AC/RJ 时请单独安装那个仓库。
更新全家桶
dsh plugin --profile web update dsh-idea-style
卸载全家桶
dsh plugin --profile web remove dsh-idea-style
⚠️ 卸载聚合包会连同全部成员插件一起移除。若想保留其中某几个,请把它们 单独
add为 profile 的直接依赖后再移除聚合包。
包含的插件
| 分类 | 插件 | GitHub | 作用 |
|---|---|---|---|
| 界面增强 | dsh-better-sidebar | 仓库 | VSCode 风格右侧侧边栏(活动栏):文件树 / 编辑器 / 终端 / Git / 浏览器 |
| 界面增强 | dsh-smooth-stream | 仓库 | 对话打字机流式渲染,字跟着模型走、减少闪烁 |
| 界面增强 | @omdsh-dev/dsh-genui | 仓库 | 助手回复里渲染交互 UI(dsh-ui 围栏):图表、表单、测验、mermaid、3D |
| 视觉与工具 | dsh-vision-router | 仓库 | 给纯文本模型加视觉:贴图问答、定位、裁剪、OCR 等像素工具 |
| 输入与搜索 | dsh-at-file | 仓库 | 输入框打 @ 搜索工作区路径,只引用路径、不注入内容 |
| 输入与搜索 | dsh-file-search | 仓库 | Quick Open 与 ripgrep 全文搜索 |
| 技能与工作流 | dsh-superpowers | 仓库 | Superpowers 方法论:bundled skills + 会话 bootstrap |
| 技能与工作流 | dsh-team-skills | 仓库 | 团队自有技能 hub:choosing-lightest-test-seam + hexin-oms-test-practices |
| 技能与工作流 | @michengai/dsh-skills-manager | 仓库 | 设置页管理本地 Skills:启用/禁用/上传/删除 |
| 技能与工作流 | dsh-routing-suite | 仓库 | 智能路由模式:按任务选择先查根因或直接执行 |
| 历史与状态 | dsh-local-history | 仓库 | 会话级本地历史 + AI 变更审查 |
| 历史与状态 | dsh-session-desk | 仓库 | 会话分组、回收站、缩略图、看板页、外观与宠物挂件 |
每个插件的详细文档见各仓库 README。分类说明在工作区 docs/plugins/ 旁的 dhs-plugins/docs(本地工作区副本)。
工作原理
dsh plugin add git+https://github.com/Wilson-Lai-Ab/dsh-idea-style.git执行pnpm add,把聚合包及其依赖树(全部成员 GitHub 仓库)装进 profile 的node_modules。- DSH 插件命令的 reconcile 逻辑发现
dsh-idea-style声明了dsh.bundle.patch,自动把它加入dsh.profile.bundles。 - 启动时,聚合包的
cordis.patch.yml把成员插件逐个 insert 进组合树; loader 从 profile 的node_modules解析每个成员并挂载。 - 成员的 client 半(
dsh.client声明)由 client-modules 按 loader entries 自动合成进__DSH_BOOT__图,浏览器端一并激活。
成员插件不需要各自声明 dsh.bundle —— 挂载统一由聚合包的 patch 完成,
这避免了多个 bundle 各自插入导致的重复挂载。
维护指南
新增一个成员插件(两步 + 推送)
- 在
package.json的dependencies加一行 GitHub 源:
若包在仓库子目录:"my-new-plugin": "github:Wilson-Lai-Ab/my-new-plugin""my-sub-plugin": "github:Wilson-Lai-Ab/my-monorepo#path:packages/my-sub-plugin" - 在
cordis.patch.yml的- insert:列表加一行:- id: my-new-plugin name: 'my-new-plugin' - bump
version并git push到 Wilson-Lai-Ab/dsh-idea-style。
移除一个成员插件
反向操作:删 dependencies 行 + 删 patch insert 行 + bump 推送。
用户侧执行 dsh plugin --profile web update dsh-idea-style 后,该插件
下次启动不再挂载。
本地开发 vs 发布
- 本机:保持
package.json的file:../...,改成员源码立刻被 profile 的file:安装看到。 - 发布:用
package.publish.json覆盖package.json再 push。别人机器上没有工作区旁路目录,相对file:会装失败。 cordis.patch.yml的 insertid必须与各成员自己的 patch 一致(已对齐)。这一层 Windows / macOS 无差别。
常见问题
Q: 装了聚合包后某个插件重复出现 / 双实例? A: 说明该插件还被单独安装过(如从 dshmarket 单独点装)。聚合包已含全部成员, 不要单独安装成员插件;把重复的直接依赖移除后重启。
Q: 还要 VS Code 行内逐段 Accept / Reject?
A: 聚合包不含 dsh-vscode-review。审查走 dsh-local-history(侧栏「改动审查」)。
若仍要那套 VS Code 扩展,请单独 clone 并按 dsh-vscode-review 安装;不要对同一文件在两边各点一次拒绝。
Q: 安装时有 "ignored build scripts" 警告?
A: 部分成员带原生依赖(better-sidebar 的 node-pty、vision-router 的
sharp / puppeteer-core)。pnpm 11 在 Windows / macOS / Linux 都会拦截。
在 ~/.dsh/profiles/web/pnpm-workspace.yaml 加 allowBuilds(见上文),
然后重跑 dsh plugin --profile web add …。macOS 一般有预编译二进制,
比 Windows 少需要 Xcode CLT;逻辑与 id 对齐与系统无关。
Q: 能不能把现在这份 package.json 直接 push?
A: 不能。里面的 file:../dsh-at-file 只在本机工作区有效。对外必须用
package.publish.json 里的 github: 源。
Q: 成员的版本在 package.json 里看不到?
A: 成员是 GitHub HEAD(或 lockfile 钉住的 commit)。查来源用
dsh plugin --profile web why <成员名> 或看 profile 的 pnpm-lock.yaml。
Q: Windows 装完侧边栏还是顶部 Files / +(本地是右侧活动栏)?
A: 那是旧 UI。发布源必须是 github:Wilson-Lai-Ab/dsh-better-sidebar(仓库已提交 lib/)。更新:
dsh plugin --profile web update dsh-idea-style
然后重启 dsh web,浏览器硬刷新(Ctrl+Shift+R)。
Q: 启动报 duplicate loader entry id / 整棵插件树挂掉?
A: cordis.patch.yml 的 insert id 必须和各成员自己的 patch 一致
(better-sidebar / vision-router / skills-manager / smooth-stream /
genui / session-desk 等)。a30ea3b 已对齐;不要把聚合包的 id 改成
dsh-better-sidebar 这种和成员 patch 不一致的值。
许可
MIT。成员插件各自保留其原作者许可。