Skip to main content

Código de navegación en GitHub

Puedes comprender las relaciones dentro y a través de los repositorios al navegar directamente por código en GitHub.

Acerca de la navegación de código en GitHub

La navegación de código te ayuda a leer, navegar y entender el código al mostrarte y enlazar las definiciones de una entidad nombrada que corresponda a la referencia de la misma, así como mostrando referencias que corresponden a la definición de dicha entidad.

Captura de pantalla que muestra un archivo de código con una función denominada "solicitud" resaltada y una ventana emergente con información sobre la función debajo. El elemento emergente tiene dos pestañas: "Definición" y "Referencia".

La navegación por el código usa la biblioteca de código abierto tree-sitter. Se admiten los siguientes lenguajes y estrategias de navegación:

IdiomaNavegación de código basada en la búsquedaNavegación de código precisa
Bash
C
C#
C++
CodeQL
Elixir
Go
JSX
Java
JavaScript
Lua
PHP
Búferes de protocolo
Python
R
Ruby
Rust
Scala
Starlark
Swift
TypeScript

No necesitas configurar nada en tu repositorio para habilitar la navegación de código. Extraeremos información de navegación de código precisa y basada en búsquedas automáticamente para estos lenguajes compatibles en todos los repositorios y puedes cambiar entre estos dos acercamientos compatibles de navegación de código si tu lenguaje de programación es compatible con ambos.

GitHub ha desarrollado dos enfoques de navegación por el código basados en las bibliotecas de código abierto tree-sitter y stack-graphs:

  • Basada en búsquedas: busca todas las definiciones y referencias a lo largo de un repositorio para encontrar las entidades con un nombre específico.
  • Precisa: resuelve las definiciones y referencias con base en el conjunto de clases, funciones y definiciones importadas en algún punto específico de tu código

Para obtener más información sobre estos enfoques, consulta "Navegación precisa y basada en búsqueda".

Las futuras versiones agregarán la navegación de código precisa para más lenguajes, lo cual es un acercamiento de navegación de código que puede otorgar resultados más precisos.

Puedes usar métodos abreviados de teclado para desplazarte dentro de un archivo de código. Para más información, consulta "Accesos directos del teclado".

Uso del panel de símbolos

Ahora puedes ver y navegar rápidamente entre símbolos, como funciones o clases, en tu código con el panel de símbolos. Puedes buscar un símbolo en un único archivo, en todos los archivos de un repositorio o incluso en todos los repositorios públicos de GitHub.

La búsqueda de símbolos es una característica de la búsqueda de código. Para obtener más información, vea "Descripción de la sintaxis de GitHub Code Search".

  1. Selecciona un repositorio y navega a un archivo que contenga símbolos.

  2. Para abrir el panel de símbolos, encima del contenido del archivo, haga clic en .

    De forma alternativa, puedes abrir el panel de símbolos haciendo clic en un símbolo reconocido en el archivo. Los símbolos en los que se puede hacer clic se resaltan en amarillo al pasar el puntero sobre ellos.

  3. Haz clic en el símbolo que quieres buscar en el panel de símbolos o en el propio archivo.

    • Para buscar un símbolo en el conjunto del repositorio, en el panel de símbolos, haga clic en Buscar este símbolo en este repositorio. Para buscar un símbolo en todos los repositorios de GitHub, haz clic en todos los repositorios.
  4. Para navegar entre las referencias a un símbolo, haz clic en o .

  5. Para navegar a una referencia específica a un símbolo, haz clic en uno de los resultados de la búsqueda que aparece en En este archivo.

  6. Para salir de la búsqueda de un símbolo específico, haz clic en Todos los símbolos.

Saltar a la definición de una función o método

Puedes saltar a una definición de función o de método dentro del mismo repositorio si das clic en la llamada a dicha función o método dentro de un archivo.

Captura de pantalla de la ventana de funciones. Una sección, titulada "Definición", está resaltada en naranja oscuro.

Buscar todas las referencias de una función o método

Puedes encontrar todas las referencias para una función o método dentro del mismo repositorio haciendo clic en la llamada de método o función en un archivo.

Captura de pantalla de la ventana de funciones. Una sección, llamada "3 referencias", está resaltada en naranja oscuro.

Navegación precisa y basada en búsqueda

Algunos idiomas admitidos por GitHub tienen acceso a la navegación de código precisa, que usa un algoritmo (basado en la biblioteca código abierto stack-graphs) que resuelve definiciones y referencias basadas en el conjunto de clases, funciones y definiciones importadas visibles en cualquier punto determinado del código. Otros lenguajes utilizan la navegación de código basada en búsquedas, la cual busca todas las definiciones y referencias a lo largo de un repositorio para encontrar entidades con un nombre específico. Ambas estrategias son efectivas para encontrar resultados y ambas se aseguran de evitar resultados inadecuados, tales como los comentarios, pero la navegación de código precisa puede arrojar resultados más exactos, especialmente cuando un repositorio contiene métodos múltiples o funciones con el mismo nombre.

Si no ves los resultados que esperas de una consulta de navegación de código precisa, puedes hacer clic en el enlace de "basada en búsqueda" en el mensaje emergente que se muestra para realizar una navegación basada en búsqueda.

Captura de pantalla de la ventana de funciones. Dos vínculos, etiquetados como "Buscar este símbolo en este repositorio" y "todos los repositorios", están resaltados en naranja oscuro.

Si tus resultados precisos te parecen inexactos, puedes enviar una solicitud de soporte.

Navegación de código precisa entre repositorios

La navegación de código entre repositorios está disponible para los idiomas admitidos por la navegación de código precisa y el gráfico de dependencias. Para obtener más información, vea "Acerca del gráfico de dependencias". Con la navegación de código entre repositorios, puedes saltar a la definición de funciones o variables definidas en dependencias importadas por el proyecto si esa dependencia es un repositorio hospedado por GitHub. La navegación por código entre repositorios no admite solicitudes de búsqueda de todas las referencias en este momento.

Captura de pantalla de un archivo de código en GitHub. En la línea "import o.s.", el nombre del módulo "o.s." aparece resaltado y una ventana modal "Definiciones" muestra un resultado etiquetado con "resultado en varios respositorios".

Solución de problemas en la navegación de código

Si se habilitó la navegación de código pero no ves los enlaces a las definiciones de las funciones y métodos:

  • La navegación de código solo funciona para las ramas activas. Sube a la rama e intenta de nuevo.
  • La navegación de código funciona únicamente para los repositorios que tienen menos de 100,000 archivos.

Información adicional