首页/新闻资讯/正文详情

Shelley的@文件补全功能详解:模糊搜索+Git内容搜索如何快速引用项目文件(完整指南)

发布时间:2026/11/3 19:59:57 来源:云帆数科 栏目:资讯中心
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),仅供参考

相关推荐

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

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

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/3 19:59:57

TCP Read 模式详解
TCP Read 模式详解

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

智算中心网络架构演进与Border Leaf设计解析
智算中心网络架构演进与Border Leaf设计解析

1. 智算中心网络架构的演进挑战智算中心作为新一代算力基础设施,其网络架构设计正面临前所未有的流量模型变革。传统数据中心以"南北向"流量为主(客户端到服务器),而智算中心中服务器间"东西向"流量占比已超过… · 2026/11/3 19:59:36

Gemini与Consul:AI与分布式服务的开发效率革命
Gemini与Consul:AI与分布式服务的开发效率革命

1. Gemini与Consul技术解析:现代开发中的黄金组合在当今快速迭代的软件开发领域,两个名字频繁出现在技术讨论中:Gemini作为谷歌推出的新一代AI开发工具,Consul则是HashiCorp旗下成熟的分布式服务网格解决方案。这对看似不相关的技… · 2026/11/3 19:59:36

电动汽车充电负荷预测系统:交通与电网数据融合技术
电动汽车充电负荷预测系统:交通与电网数据融合技术

1. 项目背景与核心价值这个项目瞄准了电动汽车普及过程中的关键痛点——充电需求与电网负荷的时空匹配问题。随着新能源车辆保有量激增,无序充电导致的局部电网过载、充电桩利用率失衡现象日益突出。我们团队开发的这套预测系统,通过融合实时交通流数据与… · 2026/11/3 19:59:36

Python四大核心数据结构实战与性能优化指南
Python四大核心数据结构实战与性能优化指南

1. Python核心数据结构实战指南作为Python开发者,我们每天都要和列表、元组、字典、集合这四大数据结构打交道。记得我刚学Python时,总是分不清什么时候该用列表,什么时候该用字典。直到做了几个实际项目后,才真正理解它们各自的特… · 2026/11/3 19:59:36

Hugo静态博客实现AJAX搜索功能的技术方案
Hugo静态博客实现AJAX搜索功能的技术方案

1. 项目概述:Hugo静态博客的AJAX搜索功能实现在Ubuntu系统下用Hugo搭建的静态博客,默认不具备内容搜索功能——这是很多从WordPress迁移过来的用户最不习惯的点。传统动态博客通过后端数据库查询实现搜索,而静态站点需要另辟蹊径。AJAX技术在… · 2026/11/3 19:59:36

机器学习模型部署:从开发到生产的Web API实践
机器学习模型部署:从开发到生产的Web API实践

1. 项目概述:为什么需要将机器学习模型转化为Web API?在真实业务场景中,机器学习模型的价值在于解决实际问题。想象一个电商推荐系统:当用户浏览商品页面时,后端需要实时调用推荐模型生成个性化推荐。这种场景下&#… · 2026/11/3 19:58:36

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码