← Back to home@RicardoYan

dsh-fs-search-plus

Extend the built-in glob/grep tools: symlink following by default, extra grep flags, and a parallel glob that still returns newest first · 增强 DSH 内置的 glob / grep:默认跟随符号链接,grep 增加忽略大小写、上下文、文件类型,glob 并行扫描但结果仍按修改时间倒序

Stars
0
Language
JavaScript
Created
Oct 18, 2026
Updated
Oct 18, 2026

Introduction

dsh-fs-search-plus

增强 DSH 内置的 glob / grep。不替换工具,不改变结果的格式和上限。

DSH 自带的两个搜索工具用内置 ripgrep,参数是固定的。这个插件在参数表里加字段,并在发起搜索时把字段翻译成 ripgrep 参数。

安装

dsh plugin --profile desktop add github:RicardoYan/dsh-fs-search-plus#v0.1.0

Web 端把 desktop 换成你的 profile 名(一般是 web)。装完重启 DSH。

卸载:dsh plugin --profile desktop remove dsh-fs-search-plus

装完不用配置,所有行为通过工具参数控制。

glob

  • 返回最新的在前。原来按修改时间升序排,而结果只保留前 100 条,所以拿到的是最旧的 100 条。现在改为降序,和工具自己的描述一致。
  • 扫描快得多。原来的排序参数会让 ripgrep 退化成单线程;去掉后正常并行,排序在插件里做。不管命中多少条都照常排序。
  • 默认跟随符号链接和 Windows junction(新增 follow 参数)。

grep

新增这些参数,都不传就等于原来的行为:

参数类型说明
followboolean跟随符号链接,默认 true
ignoreCaseboolean忽略大小写
afternumber每个匹配后附几行
beforenumber每个匹配前附几行
contextnumber前后各附几行
typestring只搜某一种文件类型,如 ts、py

after / before / context 没有上限:ripgrep 会按文件长度自然截断,超出工具单次输出上限时会明确报错。

要注意的三点

上下文行看起来和匹配行一样。 打开 after / before / context 后,附带的行也显示成 Line N: <文本>,并且计入 "Found N matches"。这是为了让它们真的能被看到——工具原本会丢弃这类行,只加参数不显示任何东西。

follow 会把链接里的文件也搜进来。 如果仓库用 pnpm,node_modules 里的依赖包本身是链接,跟着走会让结果大很多;对 glob **/* 这种全量查询,可能超出工具单次输出的上限而报错。遇到就收窄 pattern,或传 follow: false。

树里有断链时也能正常返回结果。 跟随链接后,任何一个断链都会让底层工具把整次搜索判为失败;插件只在这种情况把结果救回来。搜索目录不存在、正则写错仍然照常报错。

适用版本

@deepseek-ai/dsh >=0.2.1-rc.1 <0.3.0-0。依赖 DSH 的内部接口,改用其他版本前先确认。

许可证

MIT