DigUp は Google DeepMind の EmbeddingGemma 2 を利用してソースコードを検索できます。通常のファイル検索とは別の専用インデックスを作成するため、通常の検索結果にコードが混ざることはありません。初期状態では無効になっており、対象フォルダを指定して有効化します。基本的な操作手順についてはDigUp の使い方も確認してください。
コード検索でできること
検索パネルで先頭に code: を入力し、コードの処理内容を自然言語で説明するか、コード内の名前を入力します。
code: retry a failed call with backoff: 関数名が何であっても、該当する処理を行う関数を探します。code: refreshAccessToken: 呼び出し箇所ではなく、その関数が定義されている行を表示します。code: plot how many examples each class has: 該当する Jupyter ノートブックのセルを探します。
検索結果を選択して Enter(Mac は ↩)を押すと、設定した外部エディタで該当行が直接開きます。連携できるエディタは Zed、VS Code、Cursor、Sublime Text、JetBrains 製 IDE、Mac の Xcode、Windows の Notepad++ などです。「Settings」で開くエディタを選択できます。
読み込まれる対象と除外されるファイル
コード検索用に選んだフォルダ内では、ソースファイル、ノートブック(出力結果を除く)、リポジトリ自身のドキュメントが読み込まれます。
一方で、以下のファイルやフォルダは自動的にスキップされます。
- git で無視されている対象
- ベンダーコードや自動生成されたコード
- データファイル
- キーやパスワードと思われるファイル
なお、コード検索用として指定していないプロジェクトフォルダ(.git や package.json を含むフォルダ)では、通常の検索時にもスクリーンショットのみが読み込まれ、コードが読まれることはありません。
インデックスの更新と所要時間
リポジトリを追加すると、読み込みにかかる予測時間とインデックスに必要な容量が表示されます。Mac の場合、小さなアプリであれば約 20 秒、llama.cpp 全体では約 20 分と 130 MB のインデックス容量が必要です。
作業中のコード変更は、操作が落ち着いてから 1 分後にインデックスへ反映されます。