{"meta":{"title":"Навигация по коду на GitHub","intro":"Вы можете понять связи внутри репозиториев и между ними, перейдя непосредственно в GitHub.","product":"Репозитории","breadcrumbs":[{"href":"/ru/repositories","title":"Репозитории"},{"href":"/ru/repositories/working-with-files","title":"Работа с файлами"},{"href":"/ru/repositories/working-with-files/using-files","title":"Использование файлов"},{"href":"/ru/repositories/working-with-files/using-files/navigating-code-on-github","title":"Навигация по коду на GitHub"}],"documentType":"article"},"body":"# Навигация по коду на GitHub\n\nВы можете понять связи внутри репозиториев и между ними, перейдя непосредственно в GitHub.\n\n<!-- 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. -->\n\n## Сведения о навигации по коду на GitHub\n\nНавигация по коду помогает перемещаться по коду, читать и понимать его благодаря отображению связанных определений именованной сущности, соответствующих ссылке на эту сущность, а также ссылок, соответствующих определению сущности.\n\n![Снимок экрана: файл с выделенной функцией. Всплывающее окно содержит сведения о функции на двух вкладках: \"Определение\" и \"Ссылка\".](/assets/images/help/repository/code-navigation-popover.png)\n\nНавигация по коду использует библиотеку open source [`tree-sitter`](https://github.com/tree-sitter/tree-sitter). Следующие языки поддерживают навигацию по коду.\n\n* Bash\n* C\n* C#\n* C++\n* CodeQL\n* Elixir\n* Go\n* JSX\n* Java\n* JavaScript\n* Lua\n* PHP\n* Protocol Buffers\n* Python\n* R\n* Ruby\n* Rust\n* Scala\n* Starlark\n* Swift\n* Typescript\n\nДля включения навигации по коду в репозитории не требуется ничего настраивать. Мы автоматически извлеким сведения о навигации кода для этих поддерживаемых языков во всех репозиториях.\n\nGitHub разработала подход навигации по коду на основе библиотеки open source [`tree-sitter`](https://github.com/tree-sitter/tree-sitter), которая ищет все определения и ссылки по репозиторию для поиска сущностей с заданным именем.\n\nСочетания клавиш можно использовать для навигации в файле кода. Дополнительные сведения см. в разделе [сочетания клавиш;](/ru/get-started/accessibility/keyboard-shortcuts#navigating-within-code-files).\n\n## Использование области символов\n\nТеперь вы можете быстро просматривать и перемещаться между символами, такими как функции или классы в коде, с помощью области символов. Вы можете найти символ в одном файле, во всех файлах в репозитории или даже во всех общедоступных репозиториях на GitHub.\n\nПоиск символов — это функция поиска кода. Дополнительные сведения см. в разделе [Понимание синтаксиса поиска кода в GitHub](/ru/search-github/github-code-search/understanding-github-code-search-syntax#symbol-qualifier).\n\n1. Выберите репозиторий, а затем перейдите к файлу, содержащему символы.\n\n2. Чтобы открыть область символов над содержимым файла, щелкните <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code-square\" aria-label=\"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>.\n\n   Кроме того, можно открыть область символов, щелкнув подходящий символ в файле. Нажатые символы выделены желтым цветом при наведении на них указателя мыши.\n\n3. Щелкните символ, который вы хотите найти в области символов или в самом файле.\n\n   * Чтобы найти символ в репозитории в целом, в области символов нажмите кнопку **\"Поиск этого символа\" в этом репозитории**. Чтобы найти символ во всех репозиториях на GitHub, щелкните **все репозитории**.\n\n4. Чтобы перейти между ссылками на символ, щелкните <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-chevron-down\" aria-label=\"chevron down 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=\"chevron up 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>.\n\n5. Чтобы перейти к определенной ссылке на символ, щелкните результат поиска символов в разделе **<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> В этом файле**.\n\n6. Чтобы выйти из поиска определенного символа, щелкните **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-arrow-left\" aria-label=\"arrow left icon\" 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> Все символы**.\n\n## Переход к определению функции или метода\n\nВы можете перейти к определению функции или метода в том же репозитории, щелкнув вызов функции или метода в файле.\n\n![Снимок экрана: окно функции. Раздел с названием \"Определение\", описывается в темно-оранжевый цвет.](/assets/images/help/repository/jump-to-definition-tab.png)\n\n## Поиск всех ссылок на функцию или метод\n\nВсе ссылки на функцию или метод можно найти в одном репозитории, щелкнув вызов функции или метода в файле.\n\n![Снимок экрана: окно функции. Раздел с названием \"3 ссылки\", описан в темно-оранжевый цвет.](/assets/images/help/repository/find-all-references-tab.png)\n\n## Устранение неполадок навигации по коду\n\nЕсли навигация по коду включена, но ссылки на определения функций и методов не отображаются:\n\n* Навигация по коду работает только для активных ветвей. Выполните отправку в ветвь и повторите попытку.\n* Навигация по коду работает только для репозиториев с менее чем 100 000 файлов.\n\n## Дополнительные материалы\n\n* [О поиске кода на GitHub](/ru/search-github/github-code-search/about-github-code-search)"}