Skip to content

优化层级搜索算法,允许用户复制引用项URI,修复分组内引用项无法排序问题#16

Open
FightWithLife wants to merge 6 commits intoLiRenTech:mainfrom
FightWithLife:dev
Open

优化层级搜索算法,允许用户复制引用项URI,修复分组内引用项无法排序问题#16
FightWithLife wants to merge 6 commits intoLiRenTech:mainfrom
FightWithLife:dev

Conversation

@FightWithLife
Copy link
Contributor

@FightWithLife FightWithLife commented Jan 11, 2026

  1. 优化层级搜索算法
  • 添加并行搜索方式,在层级搜索的过程中使用异步并行搜索,提高搜索效率
  • 修复使用vscode api获取工作区文件有概率出现获取不到的问题,使用nodejs接口获取文件
  • 修复原有层级搜索算法会一直遍历到文件系统根目录的问题,限制仅能搜索到工作区根目录
  1. 允许用户复制引用项URI
  • 允许用户右键引用项复制URI
  1. 修复分组内引用项无法排序问题

为引用管理器添加getReferenceById方法用于根据ID获取引用项。
在Webview视图提供者中添加copyReferenceUri命令处理,
实现复制引用项URI到剪贴板的功能,支持文件路径和代码片段参数。
同时在前端模板中添加右键菜单UI组件和相关交互逻辑。
添加isBinaryFile方法用于检查二进制文件类型,支持图片、压缩文件、
可执行文件、办公文档等多种格式。

添加getFileSize方法用于获取文件大小信息。

实现parallelSearchInFiles方法,支持在指定文件列表中并行搜索代码片段,
最大并发数限制为5个,提高搜索效率。

实现hierarchicalSearchSnippet方法,支持层级搜索代码片段,优先在目标
文件路径中精确匹配,然后在目标目录中搜索,最后逐层向上进行全局搜索,
按文件大小排序以优化搜索性能。

更新FileRefTagsViewProvider中的搜索逻辑,使用新的层级搜索方法替代
原有的简单全局搜索,提升搜索精度和性能。

更新activate函数中的搜索逻辑,统一使用数据管理器的并行搜索方法,
保持搜索行为的一致性。
重构了ReferenceDataManager类中的文件搜索功能,主要改进包括:

- 移除了原有的isBinaryFile方法定义并重新实现
- 添加了对工作区根路径的检查,确保搜索范围限制在工作区内
- 实现了新的searchFilesInDirectory方法,使用文件系统API替代vscode.workspace.findFiles
- 改进了层级搜索逻辑,将搜索上限设置为工作区根目录而非磁盘根目录
- 添加了对node_modules、.git等不需要搜索的目录的过滤
- 优化了文件过滤和搜索性能,移除了不必要的日志输出
- 更新了二进制文件扩展名列表,添加了Visual Studio相关文件和xps格式支持
- 更新package.json中的版本号字段
@FightWithLife FightWithLife changed the title 优化层级搜索算法允许用户复制引用项URI 优化层级搜索算法,允许用户复制引用项URI Jan 11, 2026
为分组内的引用项列表添加拖拽事件监听器,实现分组内的排序功能。

修改了拖拽相关的事件处理函数:
- 更新 handleDragEnter 函数以支持多种拖拽目标类型
- 添加 handleDragOverInGroup 函数专门处理分组内的拖拽排序
- 添加 handleDropInGroup 函数处理分组内部的排序逻辑
- 改进排序指示线的插入逻辑,确保在正确的父元素中显示

修复了拖拽排序时指示线位置计算的问题,现在能够正确处理分组内外的排序操作,
并优化了事件冒泡处理机制。
@FightWithLife FightWithLife changed the title 优化层级搜索算法,允许用户复制引用项URI 优化层级搜索算法,允许用户复制引用项URI,修复分组内引用项无法排序问题 Jan 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant