Sobre a navegação do código no GitHub
A navegação por código ajuda você a ler, navegar e compreender o código mostrando e vinculando definições de uma entidade nomeada correspondente a uma referência a essa entidade, além das referências correspondentes à definição de uma entidade.
A navegação pelo código usa a biblioteca de código aberto tree-sitter
. As estratégias de linguagem e navegação a seguir são compatíveis:
Linguagem | Navegação de código baseado em pesquisa | Navegação de código precisa |
---|---|---|
C# | ✅ | |
CodeQL | ✅ | |
Elixir | ✅ | |
Go | ✅ | |
Java | ✅ | |
JavaScript | ✅ | |
PHP | ✅ | |
Python | ✅ | ✅ |
Ruby | ✅ | |
TypeScript | ✅ |
Você não precisa configurar nada no seu repositório para habilitar a navegação do código. Nós iremos extrair automaticamente informações de navegação de código precisas e baseadas em pesquisa para essas linguagens compatíveis em todos os repositórios e você pode alternar entre as duas abordagens de navegação de código compatíveis se sua linguagem de programação for compatível com ambos.
GitHub desenvolveu duas abordagens de código de navegação com base no código aberto tree-sitter
e stack-graphs
library:
- Baseado em pesquisa - Pesquisa todas as definições e referências em um repositório para encontrar entidades com um determinado nome
- Preciso - resolve definições e referências baseadas no conjunto de classes, funções, e definições importadas em um determinado ponto do seu código
Para aprender mais sobre essas abordagens, consulte "Navegação precisa e baseada em pesquisa".
As versões futuras adicionarão Código exato de navegação para mais linguagens, que é uma abordagem de navegação de código que pode dar resultados mais precisos.
Pular para a definição de uma função ou método
Você pode pular para uma definição de uma função ou método dentro do mesmo repositório, clicando na chamada dessa função ou método em um arquivo.
Localizar todas as referências de uma função ou método
Você pode encontrar todas as referências para uma função ou método dentro do mesmo repositório clicando na chamada da função ou método e, em seguida, clicando na aba Referências.
Navegação precisa e baseada em pesquisa
Algumas linguagens compatíveis com GitHub têm acesso ao código preciso de navegação, que usa um algoritmo (com base na biblioteca do código aberto stack-graphs
) que resolve as definições e referências com baes no conjunto de classes, funções e definições importadas visíveis em um determinado ponto do seu código. As outras linguagens usam o Código de navegação baseado em pesquisa, que pesquisa todas as definições e referências em um repositório para encontrar entidades com um determinado nome. Ambas as estratégias são eficazes na busca de resultados e ambas evitam resultados inadequados como, por exemplo, comentários mas uma navegação de código precisa pode dar resultados mais precisos, especialmente quando um repositório contém vários métodos ou funções com o mesmo nome.
Se você não vir os resultados que você espera de uma consulta precisa de código de navegação, você poderá clicar no link "baseado em pesquisa" na janela exibida para realizar uma navegação baseada na pesquisa.
Se seus resultados precisos estiverem incorretos, você poderá enviar uma solicitação de suporte.
Solução de problemas na navegação de código
Se a navegação de código estiver habilitada para você, mas você não vir links para as definições de funções e métodos:
- A navegação de código só funciona para branches ativos. Faça um push no branch e tente novamente.
- O código de navegação só funciona para repositórios com menos de 100.000 arquivos.