VSCode是否存在可返回工作区搜索结果(同搜索标签页效果)的API
VSCode工作区搜索API问题解答
当前VSCode稳定版的公开扩展API中,尚未正式开放与内置搜索标签页效果完全一致、可直接返回全工作区搜索结果的官方API。你检索到的2018年相关API至今仍属于提案状态,未纳入正式公开API列表。
目前实现同类需求有三种可行方案:
- 基于现有公开API自行实现基础搜索逻辑
可以通过vscode.workspace.findFiles接口先匹配工作区内符合包含、排除规则的文件,再逐文件读取内容做文本匹配,自行统计匹配位置、上下文片段等信息。该方案无需依赖未开放能力,适合搜索量级不大的场景,缺点是大工作区下性能较差,且需要自行适配.gitignore、搜索配置规则等逻辑。 - 调用内置搜索的底层依赖实现
VSCode内置搜索基于ripgrep实现,你可以在扩展中打包对应平台的ripgrep二进制文件,直接调用其命令行接口执行搜索并解析输出结果。该方案的搜索效果、性能都和内置搜索标签页几乎一致,是目前大部分第三方搜索类扩展采用的实现方式。 - 使用提案API(仅适用于非公开分发的扩展)
如果你开发的扩展不需要上传到VSCode官方扩展市场,可以在扩展配置中启用对应搜索API的提案权限,调用未正式开放的搜索接口。该方案可以直接获取和内置搜索一致的结果,但不具备正式版兼容性,也无法公开发布。
内容的提问来源于stack exchange,提问作者SujithaW
相关产品推荐
相关产品推荐

