跳到主要内容

dsh-slash-match

已验证

@cowwo/dsh-slash-match · v0.1.0 · MIT · Web 界面

为斜杠菜单提供模糊匹配:不用从首字母输入,记得名称中段/后缀也能搜到(如 /me 命中 grill-me);运行时接管官方搜索函数,不改官方代码。

安装

dsh plugin add @cowwo/dsh-slash-match

用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。

源码

发布到 npm 但没有公开仓库。安装前请检查包内容。

标签

说明文档

dsh-slash-match

让斜杠菜单(slash menu)支持模糊匹配:不用从首字母开始输入,记得名称中间/后半段也能搜到。

  • 输入 /me → 能命中 grill-me、loop-me、migrate-to-shoehorn …
  • 输入 /g → 前缀命中的 grill-me、grilling 依然排在最前面(和前缀匹配共存,不会重复)
  • 空查询、无匹配、点击、回车执行等行为与官方完全一致

说明:斜杠菜单主要有「命令」和「skill」两个分组。官方「命令」分组的搜索本来就是模糊的;本插件把「skill」分组也升级成同一套模糊算法,让整个菜单行为一致。

原理(不改官方代码)

官方 skill 分组的搜索函数只做 name.startsWith(query)(前缀匹配)。本插件在运行时接管这一个函数:先让官方实现以空查询返回完整目录,再用与官方「命令」分组同一套模糊打分算法(子序列对齐 + 边界/相邻加分 + 前缀优先)过滤排序。菜单外观、分组标题、onPick、回车执行链路全部保持官方原样。

安装

dsh plugin --profile web add dsh-slash-match

或在 profile 的 package.json 加入依赖与 dsh.profile.bundles,然后重启 dsh web。

卸载

从 profile 的 dsh.profile.bundles 移除本插件并删除依赖,重启 dsh web 即完全恢复官方行为(内存中的接管随插件卸载/刷新自动失效)。

边界

  • 依赖官方插件的运行时实例(inputTriggers 服务);官方升级若改动内部结构,本插件可能失效——届时卸载即可,不影响产品。
  • 本地增强,不是上游修复;官方正路是给 packages/client/ui-skill 提交 PR。

License

MIT