Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Ace Code SearchNew to Visual Studio Code? Get it now.
Ace Code Search

Ace Code Search

OscarKing888

|
5 installs
| (0) | Free
Full-text code search with SQLite FTS5 indexing and instant results
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Ace Code Search

VS Code 扩展,基于 SQLite FTS5 提供全文代码索引与即时搜索。

Ace Code Search 截图

独立开发声明

本插件在功能理念上参考了 Entrian Source Search 等全文代码搜索工具的用户体验,但代码、架构与实现均为本项目独立设计与开发,未使用任何第三方源代码或专有资产,与 Entrian 及其产品无任何关联或授权关系。

详细开发说明见 README_Dev.md。

头/源文件切换(Alt+O)

在 C/C++ 文件已建立索引 后,按 Alt+O 可在配对的 .h / .cpp(及 .hpp、.cc 等)之间切换打开,无需再依赖 C/C++ Tools 或 clangd 的头源切换。

  • 索引驱动:配对文件必须出现在索引的 files 表中;未索引则提示「索引中未找到配对文件」
  • 配对优先级:同目录同名 stem → UE 风格 Public ↔ Private 目录 → 其它目录(路径最近优先)
  • 命令:codeSearch.switchHeaderSource(Ace Code Search: Switch Header/Source)
  • 快捷键冲突:扩展启动时会自动迁移用户 keybindings.json 里仍指向 C_Cpp.SwitchHeaderSource / clangd.switchheadersource 的 Alt+O 绑定,并持续劫持上述旧命令 ID

性能特性

Ace Code Search 采用预索引 + 持久化全文检索,在大仓库中重复搜索时通常比 VS Code 内置实时扫盘搜索更快。

  • SQLite FTS5 倒排索引:工作区文件在后台建库,搜索走 MATCH 查询与 BM25 相关性排序,而非每次全量扫描磁盘
  • 边索引边搜索:首次打开大项目时无需等 100% 建完索引即可开始查询;状态栏与工具栏显示 Scanning / Indexing / Up to date
  • 增量更新:chokidar 监视文件变更,按 mtime 跳过未改文件;单文件增删改后局部重索引
  • 索引与搜索协同:用户搜索时自动 pause 后台索引,减少 IO 争抢;批量事务(每 100 文件 commit)与可配置多线程读盘(codeSearch.indexThreads)加快首次建库
  • 本地持久化:索引存于 globalStorage 的 SQLite 数据库(WAL 模式),重启 VS Code 后无需全量重建(除非强制刷新或文件已变)
  • 可配置排除:默认跳过 node_modules、dist、二进制等,缩小索引体积、缩短建库时间

与 VS Code 内置搜索对比:内置搜索适合临时、小范围查找;本扩展适合频繁符号/全文检索,索引完成后常见查询可在亚秒级返回。算法细节见 README_Dev.md — 索引与搜索算法。

功能清单

✅ 表示已实现。

类别 功能 状态
索引 可配置根目录全文索引 ✅ 工作区根目录 + code-search.autocreate 指定根目录
多根目录 / 二级只读索引 / 目录映射 ✅ 二级索引 + 路径映射
增量更新(文件监视器) ✅ chokidar 实时更新
低优先级后台节流(Be extra nice) ⬜ 待实现
排除二进制 / 可配置排除 ✅ 二进制检测 + excludeGlobs 配置
自动尊重 .gitignore ⬜ 待实现(当前靠默认排除规则)
每索引独立 include/exclude 🟡 autocreate JSON 支持,无完整 UI
索引状态(Scanning / Indexing / Up to date) ✅ 状态栏 + 工具栏提示
索引队列详情 tooltip ⬜ 待实现
部分索引即可搜索 ✅
强制刷新 ✅ 命令面板全量刷新
changed-only / all-files 分模式刷新 ⬜ 待实现
索引管理(创建 / 删除 / 移动 / 重命名) ✅ 专属管理面板(编辑器标签页)
code-search.autocreate 配置文件 ✅ JSON 自动创建
Ace Code Search CLI ✅ npm run cli / ess.bat
搜索 单词 / 多词 / 短语 ✅
通配符 *(单词级) ✅
通配符(行内 / 跨行)"this * that" / "this *:100 that" ✅
Loose 松散短语 loose:"A B" ✅
Fuzzy 模糊搜索 ✅
大小写敏感切换 ✅ 工具栏 Aa
短语搜索默认开关 ✅ 工具栏 ""
仅过滤搜索 file:*x* dir:y ✅
过滤 ext: / file: / dir: ✅
age: 文件修改时间 ✅
+ / - 文件内容正负过滤 ✅
结果 UI 底部停靠搜索窗口 ✅ WebviewView 面板
语法高亮结果 🟡 规则高亮(非完整 TextMate 主题)
命中数 / 耗时统计 ✅
可排序结果列表(路径 / 行号 / 代码) ✅ 点击表头升/降序
上下文行显示 ✅ 工具栏 Ctx;行数由 contextLines 配置
查询语法着色(绿 / 红过滤) ✅
多标签页 ✅ Ctrl+Enter / + 新建
标签锁定 ✅
代码词自动补全 ✅
导航 光标下单词 / 选中文本搜索 ✅ Alt+=
Ctrl+Alt+] / Ctrl+Alt+[ 跳转下/上命中 ✅
Shift+Alt+F 快速打开文件 ✅
Alt+O 头/源文件切换(基于索引) ✅
单击打开 / 预览 ✅ Preview
唯一命中自动打开 ✅ 可配置 autoOpenSingleHit

图例:✅ 已完成 · 🟡 部分实现 · ⬜ 待实现

快捷命令

命令 快捷键
Search Selection Alt+=
Focus Search Shift+Alt+=
Quick Open File Shift+Alt+F
Switch Header/Source Alt+O
Next Hit Ctrl+Alt+]
Previous Hit Ctrl+Alt+[
Refresh Index 命令面板
Manage Indexes 工具栏 ⚙
Open Secondary Index 命令面板

安装与构建

install.bat
build.bat
安装CodeSearch.bat

macOS / Linux:./install.sh → ./build.sh → ./install-extension.sh

更多配置、Phase 2/3 用法与 CLI 说明见 README_Dev.md、PHASE2.md。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft