# GitHubでのコードのナビゲート

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

<!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the article accordingly. -->

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

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

![関数が強調表示されたファイルを示すスクリーンショット。 ポップアップには、\[Definition\] と \[Reference\] という 2 つのタブの関数に関する情報が表示されます。](/assets/images/help/repository/code-navigation-popover.png)

コード ナビゲーションでは、open source [`tree-sitter`](https://github.com/tree-sitter/tree-sitter) ライブラリが使用されます。 次の言語はコード ナビゲーションをサポートしています。

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

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

GitHub では、リポジトリ全体のすべての定義と参照を検索して特定の名前のエンティティを検索する open source [`tree-sitter`](https://github.com/tree-sitter/tree-sitter) ライブラリに基づくコード ナビゲーション アプローチが開発されました。

キーボード ショートカットを使って、コード ファイル内を移動できます。 詳しくは、「[キーボード ショートカット](/ja/get-started/accessibility/keyboard-shortcuts#navigating-within-code-files)」をご覧ください。

## シンボル ペインの使用

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

シンボル検索は、コード検索の機能です。 詳しくは、「[GitHubのコード検索構文を理解する](/ja/search-github/github-code-search/understanding-github-code-search-syntax#symbol-qualifier)」をご覧ください。

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

2. シンボル ペインを表示するには、ファイルの内容の上にある <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code-square" aria-label="The code square icon" role="img"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg> をクリックします。

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

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

   * リポジトリ全体でシンボルを検索するには、シンボル ペインで **\[このリポジトリでこのシンボルを検索する]** をクリックします。 GitHub のすべてのリポジトリでシンボルを検索するには、 **\[すべてのリポジトリ]** をクリックします。

4. シンボルへの参照を移動するには、下向き矢印アイコン (<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="The downwards-facing chevron icon" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg>) か上向き矢印アイコン (<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-up" aria-label="The upwards-facing chevron icon" role="img"><path d="M3.22 10.53a.749.749 0 0 1 0-1.06l4.25-4.25a.749.749 0 0 1 1.06 0l4.25 4.25a.749.749 0 1 1-1.06 1.06L8 6.811 4.28 10.53a.749.749 0 0 1-1.06 0Z"></path></svg>) をクリックしてください。

5. シンボルの特定の参照に移動するには、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-chevron-down" aria-label="chevron-down" role="img"><path d="M12.78 5.22a.749.749 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.06 0L3.22 6.28a.749.749 0 1 1 1.06-1.06L8 8.939l3.72-3.719a.749.749 0 0 1 1.06 0Z"></path></svg> \[このファイル内]** の下にあるシンボル検索の結果をクリックします。

6. 特定のシンボルの検索を終了するには、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-arrow-left" aria-label="arrow-left" role="img"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg> \[All Symbols]** をクリックします。

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

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

![関数ウィンドウのスクリーンショット。 \[定義\] というタイトルのセクションが、濃いオレンジ色の枠線で囲まれています。](/assets/images/help/repository/jump-to-definition-tab.png)

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

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

![関数ウィンドウのスクリーンショット。 \[3 個の参照\] というタイトルのセクションが、濃いオレンジ色の枠線で囲まれています。](/assets/images/help/repository/find-all-references-tab.png)

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

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

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

## 参考資料

* 「[コード検索GitHubについて](/ja/search-github/github-code-search/about-github-code-search)」