dsh-at-mention
DSH profile bundle:在输入框输入 @,即可对当前会话工作区中的文件/目录 进行带优先级的模糊搜索与键盘补全,交互方式与 Claude Code / Codex Desktop 类似。
功能
- 跟随会话工作区:
@只提示当前会话自己工作区(header.cwd)下的文件/目录;
切换工作区自动切换索引(最多缓存 3 个工作区,LRU,来回切换不重复扫描)。
- 带优先级的模糊搜索:精确名 > 名前缀 > 名子串 > 全路径前缀 > 全路径子串 >
模糊子序列;目录越浅、路径越短越靠前,命中路径段开头额外加分。
- 键盘操作:↑/↓ 移动高亮,Tab / Enter 选中,Esc 关闭
(无匹配时 Tab 也会被消费,焦点不会跳走)。
- 连续 @ 提及需空格隔开:
@a @b是两个提及,@a@b是一个整体
(与产品自带触发规则一致)。
- 纯文本提及:选中后插入
@相对路径(可配置:绝对路径、尾随空格);
插入后的文本可以复制、继续修改,仍然是有效的提及。
- 悬停候选可查看完整路径(绝对路径 + 相对路径),路径被截断也不受影响。
- 设置持久化(设置面板 →「@ 提及」):启用开关、最大候选数、插入路径格式、
模糊/大小写/目录/尾随空格、排除目录、索引上限、自动刷新间隔、 手动重建索引按钮与实时索引状态。
- 跨平台索引:Linux/WSL/macOS 走
find快路径,没有find的环境
(如 Windows 原生)自动回退到 readdir 递归遍历。 默认排除 .git、.godot、.import、node_modules、.codegraph、.kimi-code(可改)。
安装
前提:可用的 DSH 安装(dsh web)且 PATH 里有 pnpm(dsh plugin 内部调用 pnpm)。
# 1. 解压,例如到 D:\plugins\dsh-at-mention
# 2. 安装到 web profile
dsh plugin --profile web add file:D:/plugins/dsh-at-mention
# 或者从解压目录的上一级执行:
dsh plugin --profile web add ./dsh-at-mentiondsh plugin add 会在 profile 目录里运行 pnpm,并把本包的 cordis.patch.yml 追加进 profile 补丁栈。安装后重启 web 应用(client bundle 与路由在启动时接线)。
卸载:
dsh plugin --profile web remove @dsh-external/dsh-at-mentionAPI 路由(同源,供参考)
| 路由 | 用途 |
|---|---|
GET /_dsh/at-mention/api?q=&sessionId=&root= | 在会话工作区索引上模糊搜索 |
GET /_dsh/at-mention/api/settings | 当前设置快照 |
POST /_dsh/at-mention/api/settings | 保存设置({ action: 'save', value: {...} }) |
GET /_dsh/at-mention/api/status | 索引状态(根目录、数量、构建时间、错误) |
POST /_dsh/at-mention/api/rebuild | 重建当前工作区索引 |
POST 路由拒绝跨站请求。
说明
- 提及文本就是纯文本(
@相对路径),会话里的模型会相对会话工作区解析;
相对路径在 Linux 与 Windows 之间可移植。
- 提及菜单打开期间会隐藏产品自带触发器菜单(两者共用
@触发符),
/ 命令菜单不受影响。