Back to home@Wilson-Lai-Ab

dsh-idea-style

DSH plugin

Stars
0
Language
Created
Aug 21, 2026
Updated
Aug 26, 2026
GitHub repo

Introduction

dsh-idea-style

awesome · DSH plugin

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(本地工作区副本)。


工作原理

  1. dsh plugin add git+https://github.com/Wilson-Lai-Ab/dsh-idea-style.git 执行 pnpm add,把聚合包及其依赖树(全部成员 GitHub 仓库)装进 profile 的 node_modules
  2. DSH 插件命令的 reconcile 逻辑发现 dsh-idea-style 声明了 dsh.bundle.patch,自动把它加入 dsh.profile.bundles
  3. 启动时,聚合包的 cordis.patch.yml 把成员插件逐个 insert 进组合树; loader 从 profile 的 node_modules 解析每个成员并挂载。
  4. 成员的 client 半(dsh.client 声明)由 client-modules 按 loader entries 自动合成进 __DSH_BOOT__ 图,浏览器端一并激活。

成员插件不需要各自声明 dsh.bundle —— 挂载统一由聚合包的 patch 完成, 这避免了多个 bundle 各自插入导致的重复挂载。


维护指南

新增一个成员插件(两步 + 推送)

  1. package.jsondependencies 加一行 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"
    
  2. cordis.patch.yml- insert: 列表加一行:
    - id: my-new-plugin
      name: 'my-new-plugin'
    
  3. bump versiongit pushWilson-Lai-Ab/dsh-idea-style

移除一个成员插件

反向操作:删 dependencies 行 + 删 patch insert 行 + bump 推送。 用户侧执行 dsh plugin --profile web update dsh-idea-style 后,该插件 下次启动不再挂载。

本地开发 vs 发布

  • 本机:保持 package.jsonfile:../...,改成员源码立刻被 profile 的 file: 安装看到。
  • 发布:用 package.publish.json 覆盖 package.json 再 push。别人机器上没有工作区旁路目录,相对 file: 会装失败。
  • cordis.patch.yml 的 insert id 必须与各成员自己的 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.yamlallowBuilds(见上文), 然后重跑 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。成员插件各自保留其原作者许可。