Sourcegraphは2026年8月19日(現地時間)、開発者向けに提供されているClaude Codeのファイルピッカー機能において、既存のファイル名ベースの検索の課題を指摘した。同社は、ファイル名だけでなくコード内のシンボル定義やGitのコミット履歴を評価することで、より正確なファイル検索を可能にする新しい提案機能「fileSuggestion」を公開したと発表している。

現在のClaude Codeのファイルピッカーは、クエリの文字がパス内に順序通り出現するかを照合する「ファジーパスマッチング」に依存している。これにより、例えば「@os.rs」と入力した場合でも、パス内に「o」「s」「.」「r」「s」の文字が含まれる無関係なファイルが多数提示される問題が指摘されていた。また、関数名で検索しようとすると、ファイル名にその関数名が含まれないため、全く結果が返されないケースも発生していた。

Sourcegraphが開発した「fileSuggestion」は、この課題に対処するため、ファイル検索のスコアリングに3つの要素を導入している。一つ目は「ファイル名の一致」(nucleo-matcherによるファジーマッチ)、二つ目は「シンボルの一致」(Sourcegraphのtype:symbol検索を利用)、三つ目は「Gitのコミット履歴」(直近25コミットで変更されたファイルを優遇)である。これらの要素は異なる重み付けで評価され、例えば完全なベース名一致には1,000,000点、シンボル名の完全一致には100,000点が割り当てられるなど、弱い信号が強い信号を上回らないように設計されている。

この機能では、ネットワークアクセスも最適化されており、シンボル検索の結果は4文字のプレフィックスごとにディスクにキャッシュされる。これにより、連続するタイピングに対する検索コストを削減する。また、「@os.rs」のような単純なファイル名クエリはファイル名スコアリングのみで解決できる場合もあるが、@resolve_virtual_pathや「@dropguard」といった関数名のクエリはシンボル検索なしでは結果が得られないことが示されている。パフォーマンス面では、200回のサブプロセス起動においてp95で11.12ミリ秒、p50で9.32ミリ秒を記録したという。

「fileSuggestion」は、Sourcegraph Community cookbookを通じてApache-2.0ライセンスで公開されており、Rustで約1,200行のコードで実装されている。インストールは、GitHubから提供されるスクリプトを実行し、~/.claude/settings.jsonに設定を追加することで完了する。公開リポジトリに対してはSourcegraphアカウントなしで匿名で利用でき、プライベートコードの場合は自身のSourcegraphインスタンスとアクセストークンの設定が必要となる。なお、macro_rules!マクロや多数のオーバーライドを持つトレイトメソッドはシンボルインデックスに含まれないという制限がある。


参考: Sourcegraph Blog (アーカイブ) — 2026年8月20日 09:00 (JST)

原文ハイライト

"Filenames are the wrong index for Claude Code @ mentions"

この記事をシェア
X はてブ LinkedIn