Googleが、同社の人気オープンソースプロジェクト向けの「Code Search」を立ち上げている。Google社内でも特に人気の高い開発者向けツールを広くソフトウェアコミュニティに提供している。
提供:Google
Googleのオープンソースプロジェクト向けCode Search(CS)は現在、Angular、Bazel、Dart、ExoPlayer、Firebase SDK、Flutter、Go、gVisor、Kythe、Nomulus、Outline、Tensorflowをサポートしている。これは同社のオープンソースプロジェクトのごく一部にすぎないが、リポジトリーの検索機能はオープンソースコミュニティにとってメリットがありそうだ。
Googleオープンソースプロジェクト向けCode Searchの提供に先立ち、同社は「Android」と「Chromium」プロジェクト向けにもCode Searchインターフェースを公開している。
GoogleのCode SearchチームのKris Hildrum氏は、今後も新たなリポジトリーを対象にCode Searchを提供していく計画があるという。
Hildrum氏によると、Googleのエンジニアはコードベースを理解するためにCode Searchを日常的に使用しており、うろ覚えの関数を検索したり、特定の関数を呼び出しているコードを見つけたり、コードがいつ書き換えられたかを特定したりしている。コードの各行を最後に書き換えたユーザーをハイライトする「blame」ボタンも用意されている。
ユーザーが検索ボックスに文字を入力すると、瞬時にコードオブジェクトの型、リポジトリー、パスなどの候補が表示される。また、例えばGoファイル内の「foo」という関数を探したいときは、「lang:go function:foo」と指定すれば、fooが単にコメントに含まれるだけのファイルが検索結果に表示されることもない。他にも大文字・小文字、クラス名、コンテンツ、ファイル、シンボルなどでの絞り込みが可能だ。
言語によるフィルタリングにも対応しており、現在はC++、C、Java、Kotlin、Python、JavaScript、Go、JSON、HTML、Objective-C、Dart、Django、Perl、PHP、PowerShell、Ruby、shell、SQL、Swiftなどの人気言語に対応している。
一部のオープンソースリポジトリーは、GoogleのオープンソースツールKytheを利用して相互参照が可能となっている。相互参照可能なプロジェクトには、Bazel、Go、gVisor、Kyth、Nomulus、Tensorflowなどがある。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。