DigUp 默认关闭代码搜索功能。开启后,它会为指定的代码仓库单独建立向量与关键词索引,不会将代码内容混入普通日常文件的搜索结果中。关于普通文件的搜索与预览方式,可以参考 DigUp 怎么用:快捷键与搜索教程。
代码搜索写法与示例
使用代码搜索时,必须在搜索框中以 code: 开头,后接代码功能的自然语言描述或代码中出现的名称:
code: retry a failed call with backoff:按功能查找实现了带退避重试调用的函数,无论函数具体命名为何。code: refreshAccessToken:直接跳转到定义该函数的代码行,而不是调用该函数的各处位置。code: plot how many examples each class has:找到绘制各类别样本数量图表的 Notebook 单元格。
读取的文件与自动跳过的项
DigUp 在指定的代码目录中读取源文件、不包含输出结果的 Notebook 单元格,以及仓库自带的文档。代码索引不会读取以下内容:
- Git 忽略(
.gitignore)的文件 - 第三方依赖(vendored)与自动生成的代码
- 数据集与数据文件
- 密钥、证书以及密码文件
在代码项目文件夹(包含 .git 或 package.json 的目录)中,日常文件索引仅会读取屏幕截图。
结果跳转与支持的编辑器
搜索结果会在对应文件的具体行打开。支持的编辑器需要在“Settings”中挑选,包括:Zed、VS Code、Cursor、Sublime Text、JetBrains 系列 IDE,在 Mac 上支持 Xcode,在 Windows 上支持 Notepad++。
索引耗时与后台更新机制
编写代码期间,DigUp 在文件修改停止一分钟后跟进更新索引。
在 Mac 上,读取一个小型应用的代码大约需要 20 秒;读取完整的 llama.cpp 仓库大约需要 20 分钟,生成的索引文件占用约 130 MB 空间。