Skip to main content

GitHub 上のコード間を移動する

GitHub で直接コードを移動することにより、リポジトリ内およびリポジトリ間の関係について理解できます。

GitHub のナビゲーションコードについて

コード ナビゲーションは、そのエンティティへの参照に対応する名前付きエンティティの定義と、エンティティの定義に対応する参照を表示しリンクすることで、コードの読み取り、ナビゲーション、理解に役立ちます。

"request" という関数が強調表示され、その下に関数に関する情報が表示されたポップアップ ウィンドウを含むコード ファイルを示すスクリーンショット。 ポップアップには、[定義] と [参照] の 2 つのタブがあります。

コード ナビゲーションでは、オープン ソースの tree-sitter ライブラリを使用します。 次の言語はコード ナビゲーションをサポートしています。

  • Bash
  • C
  • C#
  • C++
  • CodeQL
  • Elixir
  • Go
  • JSX
  • Java
  • JavaScript
  • Lua
  • PHP
  • プロトコル バッファー
  • Python
  • R
  • Ruby
  • Rust
  • Scala
  • Starlark
  • Swift
  • TypeScript

コード ナビゲーションを有効にするために、リポジトリで何かを構成する必要はありません。 すべてのリポジトリで、これらのサポート対象言語のコード ナビゲーション情報は自動的に抽出されます。

GitHub では、リポジトリ全体のすべての定義と参照を検索して、指定した名前のエンティティを見つけるという、オープンソースの tree-sitter ライブラリに基づいたコード ナビゲーション アプローチを開発しました。

コード ファイル内は、キーボード ショートカットを使用して移動できます。 詳しくは、「キーボード ショートカット」をご覧ください。

シンボル ペインの使用

シンボル ペインを使用して、コード内の関数やクラスなどのシンボルをすばやく表示したり移動したりできるようになりました。 1 つのファイル、リポジトリ内のすべてのファイル、さらには GitHub 上のすべてのパブリック リポジトリのシンボルを検索できます。

シンボル検索は、コード検索の機能です。 詳しくは、「GitHub Code Search の構文について」を参照してください。

  1. リポジトリを選び、シンボルを含むファイルに移動します。

  2. シンボル ペインを表示するには、ファイルの内容の上にある をクリックします。

    または、ファイル内の対象シンボルをクリックしてシンボル ペインを開くこともできます。 クリック可能なシンボルは、マウスを合わせると黄色で強調表示されます。

  3. シンボル ペインまたはファイル自体から検索するシンボルをクリックします。

    • リポジトリ全体でシンボルを検索するには、シンボル ペインで [このリポジトリでこのシンボルを検索する] をクリックします。 GitHub のすべてのリポジトリでシンボルを検索するには、 [すべてのリポジトリ] をクリックします。
  4. シンボルへの参照間を移動するには、 または をクリックします。

  5. シンボルへの特定の参照に移動するには、[ In this file] の下にあるシンボル検索の結果をクリックします。

  6. 特定のシンボルの検索を終了するには、[ All Symbols] をクリックします。

関数やメソッドの定義にジャンプする

ファイル内の関数またはメソッドの呼び出しをクリックすることで、同じリポジトリ内の関数またはメソッドの定義にジャンプできます。

関数ウィンドウのスクリーンショット。 [定義] というタイトルのセクションが、濃いオレンジ色の枠線で囲まれています。

関数とメソッドの全リファレンスを検索する

ファイル内の関数またはメソッドの呼び出しをクリックすることで、同じリポジトリ内にある関数またはメソッドのすべての参照を検索できます。

関数ウィンドウのスクリーンショット。 [3 個の参照] というタイトルのセクションが、濃いオレンジ色の枠線で囲まれています。

コード ナビゲーションのトラブルシューティング

コード ナビゲーションが有効になっているにもかかわらず、関数とメソッドの定義へのリンクが表示されない場合:

  • コード ナビゲーションは、アクティブなブランチに対してのみ機能します。 ブランチにプッシュして、もう一度やり直してください。
  • コード ナビゲーションが動作するのは、100,000 個未満のファイルをもつリポジトリのみです。

参考資料