尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Shelley的@文件补全功能详解:模糊搜索+Git内容搜索如何快速引用项目文件(完整指南)
【免费下载链接】shelleyShelley is a coding agent项目地址https://gitcode.com/gh_mirrors/shell/shelley点击查看免费下载什么是 Shelley 的 文件补全Shelley 是一个 web 端、移动端友好的编码 Agentcoding agent它的聊天输入框内置了 文件补全功能在输入框的单词开头输入就能对当前对话工作目录下的文件名、文件夹名做模糊搜索并在 Git 仓库中同时搜索文件内容帮你快速把某个项目文件以引用形式插入消息中。对于动辄上万文件的大型项目这个功能比手动敲完整路径高效得多——你只需要记住文件名的一两个片段甚至文件里的一行代码。 官方功能说明FILE_COMPLETION.md5秒上手 补全基本操作在聊天输入框中在单词开头输入例如readme弹出候选列表↑/↓选择结果Enter或Tab插入也可以直接鼠标点击选中的文件/文件夹会以相对路径的形式只替换光标处的片段周围的文字原样保留。几个值得记住的细节文件夹带文件夹图标和结尾的/选择它插入的是目录引用而不是目录内容补全只插入引用不会读取或附带文件内容Agent 后续是否读文件由它自己决定输入Escape可以关闭候选面板不会让输入框失焦ShiftEnter仍会正常换行邮箱地址如ab.com和 shell 模式!开头不会触发补全。模糊搜索多关键词 AND 匹配补全的命名搜索不是简单前缀匹配而是多词 AND 模糊匹配查询按空白拆分为多个词每个词都必须匹配路径顺序任意。比如输入vm storage s3可以命中docs/vm-storage-s3-backup-design.md——这种拆词找长文件名的场景普通前缀搜索做不到匹配字符会在候选行中高亮显示让你一眼确认命中位置请求会防抖debounce并自动取消过期结果你每敲一个键旧请求立即作废只展示最新结果大目录下也不会卡顿。服务端搜索逻辑位于 server/find_files.go前端 token 解析与插入逻辑在 ui/src/utils/fileCompletion.ts。Git 内容搜索只记得一行代码也能定位文件这是 文件补全最魔法的部分在 Git 仓库中同样的词也会搜索文件内容。内容命中会显示匹配行号 该行代码片段并高亮命中词只匹配到内容、文件名不相关的文件会排在所有名称匹配之后名字和内容同时命中的文件会在名称行上附带代码片段作为上下文内容搜索基于git grep会跳过二进制文件也覆盖未跟踪但未被忽略的文件非 Git 目录只做名称搜索内容搜索失败也绝不影响名称结果返回。storage ├── docs/vm-storage-s3-backup-design.md ← 名称匹配 ├── storage/manager.go │ L42: func NewStorage(...) ← 内容匹配行号片段 └── ...两阶段并行搜索为什么感觉又快又全 补全复用了 Shelley 的findFiles接口与Cmd/CtrlP文件查找器同源采用两阶段并行策略阶段请求参数特点名称阶段contentskipinclude_dirstrue极快先渲染文件/文件夹候选内容阶段contentonly稍慢完成后把代码片段合并进列表两个请求并行发出、同生同死名称结果先上屏内容结果到达后再按路径合并名称匹配保留优先位置内容独占匹配追加在后。任何一个词或上下文变化两个请求都会被一起取消。实现可参考前端编排ui/src/vue/composables/fileCompletion.ts防抖 120ms、AbortController取消、结果合并片段合并算法ui/src/utils/fileSearch.ts 的mergeContentMatches输入框集成ui/src/vue/components/MessageInput.vue服务端接口server/find_files.go/api/find-files5 秒文件列表缓存 3 秒 grep 预算保证每次击键不卡住进阶技巧路径查询与引号路径查询从任意目录开始搜如果输入的是一个显式路径前缀/、~、./、../开头搜索会以该目录为根./docs—— 直接把docs这个文件夹本身作为候选./docs/带结尾斜杠—— 改为浏览docs目录里面的内容输入一个已存在的文件路径如工作目录下的notes.md该文件会置顶锁定在结果第一位即使它被.gitignore忽略也找得到。⚠️ 注意路径中间的斜杠如docs/vm-storage不是路径查询而是普通的部分路径模糊匹配作用于整棵树不会限制到docs/目录。引号搜索含空格的文件名My Notes—— 双引号内可以包含空格和标点不加引号的查询遇到空白或散文标点逗号、冒号、括号等就结束方便file, 然后...这种补全后直接接着写句子的用法。插入时路径会智能加引号普通路径保持原样含空格或分界标点的路径会被引号包裹并转义例如My Notes.md。结果如何插入只引用不附件选中结果后只替换光标所在的那个token其余文字不受影响插入的是相对当前对话工作目录的引用如server/find_files.go不会读取文件、不上传内容——这是引用语义实际读取由 Agent 在处理消息时自行执行。插入与引用格式的核心逻辑在 ui/src/utils/fileCompletion.ts 的insertFilePath与referenceForPath。端到端测试功能如何被验证Shelley 为 补全配备了两层测试UI 单元测试pnpm test在 ui/ 下运行token 解析、插入、加引号、取消、过期响应等场景见 ui/src/utils/fileCompletion.test.ts 与 ui/src/vue/composables/fileCompletion.test.ts浏览器端到端测试LazyCue键盘/鼠标交互、文件夹选择、内容搜索、无结果场景位于 test/lazycue_test.go 的TestNewPageFileCompletion*系列构建 UI 后运行LAZYCUE_INTEGRATION1 go test ./test/ -run TestNewPageFileCompletion -count1即可。服务端行为测试还有 server/find_files_test.go 和 server/find_files_cache_test.go。常见问题速答问为什么候选列表先出来一部分、随后又多出几行答名称阶段先渲染Git 内容搜索完成后追加内容命中。这是设计上的两阶段并行保证首屏快、结果全。问在普通目录非 Git 仓库能用吗答可以名称模糊搜索完全可用内容搜索仅对 Git 仓库生效缺失时静默降级不影响其他功能。问搜索结果会超出多少答接口默认最多返回 100 条上限 500UI 默认展示前 20 行超出会标记truncated。文件遍历有 50000 候选与 3 秒时间预算的保护超大非 Git 目录也不会拖垮服务。问草稿恢复后 补全搜的是哪个目录答新对话用当前选中的目录重新打开的草稿会恢复其保存的目录之后你在草稿中更改目录补全会立即按新目录搜索无需等待服务端持久化。小结Shelley 的 文件补全把找文件 插引用压缩成一个键触发多词 AND 模糊搜索命中高亮、防抖取消Git 仓库内追加内容搜索行号 代码片段帮你确认就是那个文件路径查询、引号查询覆盖目录浏览和含空格文件名两大进阶场景只插入引用不附带内容轻量且语义清晰。如果你经常在大项目中引用文件这个功能值得第一时间用起来。赞分享【免费下载链接】shelleyShelley is a coding agent项目地址https://gitcode.com/gh_mirrors/shell/shelley点击查看免费下载相关推荐PDF Arranger搜索功能详解如何在PDF中快速查找文本内容PDF Arranger搜索功能详解如何在PDF中快速查找文本内容 PDF Arranger是一款功能强大的免费PDF文档管理工具它不仅能帮助用户合并、分割桌面应用slap搜索功能详解全局搜索、文件内搜索和高级过滤技巧slap搜索功能详解全局搜索、文件内搜索和高级过滤技巧 slap是一款类似Sublime的终端文本编辑器它的 搜索功能 是其最强大的特性之一。无论你是新手还开发工具CLINextcloud文件搜索全文索引与快速检索Nextcloud文件搜索全文索引与快速检索 在日常使用Nextcloud管理文件时你是否曾因海量数据难以快速定位所需文件而困扰Nextcloud提供的统后端前端存储企业应用协同办公上一篇sp-dev-fx-extensions部署与发布指南从开发到生产环境的无缝过渡下一篇7个核心技巧虚拟主播动画制作从入门到精通创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

Highcharts 集成到 React 或 Vue 项目中时,如何高效地使用 TypeScript技巧?

Highcharts 集成到 React 或 Vue 项目中时,如何高效地使用 TypeScript技巧?

在将 Highcharts 集成到 React 或 Vue 项目中时,遵循一些最佳实践可以帮助您更高效地使用 TypeScript。以下是一些建议:React 项目中的最佳实践安装依赖: 确保安装 Highcharts 和类型声明:npm install highcharts使用 TypeScript&…

📅 2026/11/1 1:30:43
APITable 完整指南:开源协作数据表自托管部署与 10 分钟快速上手

APITable 完整指南:开源协作数据表自托管部署与 10 分钟快速上手

APITable 完整指南:开源协作数据表自托管部署与 10 分钟快速上手 【免费下载链接】apitable 🚀🎉📚 APITable, an API-oriented low-code platform for building collaborative apps and better than all other Airtable open-sou…

📅 2026/11/1 1:30:43
TCP Read 模式详解

TCP Read 模式详解

TCP Read 模式详解(LabVIEW官方TCP Read函数) “Standard ▼” 就是 TCP Read节点 的模式(mode)选择器。 LabVIEW的TCP Read函数(位于Functions → Communication → TCP palette)是一个带模式输入的多态函…

📅 2026/11/1 1:30:43
MORE NEWS

更多资讯

📰

启动报Port 8088 was already in use?先查是谁占的

启动报Port 8088 was already in use?先查是谁占的 项目启动报 Port 8088 was already in use,意思很直白:这个端口已经有人占了。 先说原理:端口是"门牌号",一间房只住一个进程 端口就是一台机器上的门牌号…

📰

担心文档上云?本地运行的办公AI才敢放心用

单位上周开了个会,主题是"AI 提效",散会时领导补了一句:涉及客户资料的文档,不许往云端传。这话一出,会议室里本来跃跃欲试的同事全蔫了——大家平时用的那些在线 AI,文档一上传就不知道存哪儿去…

📰

先能用,再好用:从烂尾复盘到两周上线,全栈项目的‘原型—快速迭代‘方法论

先能用,再好用:从烂尾复盘到两周上线,全栈项目的“原型—快速迭代”方法论 全栈学习路径的文章已经很多了:怎么选技术栈、怎么搭环境、怎么记文档,几乎每个方向都有人写。但一个更扎心的问题很少有人正面讨论——为什…

📰

深度思考模式把 ARC-AGI-2 从 17.6% 拉到 45.1%:对照 Gemini 3 Pro 的三份能力评测,看‘会思考‘改写了哪些边界

深度思考模式把 ARC-AGI-2 从 17.6% 拉到 45.1%:对照 Gemini 3 Pro 的三份能力评测,看“会思考”改写了哪些边界 一、先说结论:变强的不是“知识”,而是“解法” 每次新模型发布,评测榜单都会涨几个点,大…

📰

1.c++入门篇

1.c中的关键字asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestaticunionwchar_tcatchexplicitnamespacestatic_castunsigneddefaultcharexportnewstructusingfriendclassext…

📰

《江灯合声》:有可行的分框版,也仍可以选择连续鸣谢

武汉江岸区栎坡合唱团在免费节目册《江灯合声》中,以表格集中鸣谢资助者。各家共同要求改为独立小框,团里仍想保留表格。现有全名与支持事项清楚可见,双方此前未承诺具体排版。我支持保留表格。补充的试排材料让选择更具体:分框能…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬