Navegar por el código fuente

En la sección anterior hemos hablado sobre cómo explorar el código fuente, es decir, de cómo obtener información sobre símbolos, archivos y proyectos. El siguiente paso sería, pues, desplazarse por su base de código fuente, es decir, navegar por ella. De nuevo, existen diferentes niveles en los que esto es posible: local, dentro de un archivo y dentro de un proyecto.

Nota

Puede acceder a muchas de las formas de navegar a través del código desde el menú Navegar de la ventana principal de KDevelop.

Navegación local

KDevelop es mucho más que un editor, pero también es un editor de código fuente. Como tal, puede mover el cursor arriba, abajo, a la izquierda y a la derecha de un archivo de código fuente, por supuesto. También puede usar las teclas RePág y AvPág y otras órdenes características de cualquier útil editor.

Navegación en el ámbito de archivos y modo de esquema

En el ámbito de archivos, KDevelop ofrece diversas posibilidades de navegar a través del código fuente. Por ejemplo:

  • Esquema: Puede obtener un esquema de lo que hay en el archivo actual de al menos tres modos diferentes:

    • Si pulsa en el campo de texto Esquema que hay en la parte superior derecha de la ventana principal o si pulsa Alt+Ctrl+N, se abre un menú desplegable que lista todas las declaraciones de funciones y de clases:

      A continuación puede seleccionar a cual de ellas saltar o (si hay muchas) comenzar a teclear cualquier texto que deba aparecer en los nombres que se muestran; en este caso, a medida que va tecleando, la lista se va haciendo cada vez más pequeña para eliminar los nombres que no coincidan con el texto que está escribiendo hasta que pueda seleccionar una de las entradas.

    • Si posiciona el cursor en el ámbito de un archivo (es decir fuera de cualquier declaración o definición de función o clase) mientras tiene abierta la herramienta Navegador de código:

      Esto también le proporciona un esquema de lo que está ocurriendo en el archivo actual, y le permite seleccionar el lugar al que desea saltar.

    • Si sitúa el puntero del ratón sobre la pestaña de uno de los archivos abiertos también se muestra un esquema del archivo en dicha pestaña.

  • Los archivos de código fuente se organizan como una lista de declaraciones o definiciones de funciones. Si pulsa Alt+Ctrl+RePág y Alt+Ctrl+AvPág podrá saltar a la definición de la anterior o siguiente función de este archivo.

Navegación en el ámbito del proyecto y de la sesión: navegación semántica

Como se ha mencionado en otras partes, KDevelop no suele considerar los archivos de código fuente de forma individual, sino que contempla los proyectos como un todo (o, mejor, todos los proyectos que forman parte de la sesión actual). Como consecuencia, ofrece muchas posibilidades para navegar a través de todos los proyectos. Algunas de ellas derivan de lo que ya se ha discutido en la sección sobre Exploración del código fuente, mientras que otras son realmente diferentes. El punto en común reside en que estas funcionalidades de navegación están basadas en un entendimiento semántico del código fuente (es decir, le ofrecen algo que necesita analizar proyectos completos y conectar datos). La lista siguiente muestra algunos modos de navegación a través del código fuente que puede estar distribuido en un gran número de archivos:

  • Como se ha visto en la sección sobre Exploración del código fuente, puede obtener una ayuda emergente con información sobre espacios de nombres, clases, funciones o variables individuales con solo situar el cursor del ratón sobre dichos elementos o manteniendo pulsada la tecla Alt durante un rato. Aquí tiene un ejemplo:

    Si pulsa sobre los enlaces de la declaración de un símbolo o expande la lista de usos podrá saltar a dichas posiciones, abriendo su respectivo archivo si es necesario y situando el cursor en la correspondiente posición. Puede conseguir un efecto similar usando la herramienta del Navegador de código, como se ha discutido anteriormente.

  • Un modo más rápido de ir a la declaración de un símbolo sin necesidad de pulsar los enlaces de la ayuda emergente consiste en activar temporalmente el modo de exploración del código manteniendo pulsada la tecla Alt o la tecla Ctrl. En este modo es posible pulsar directamente sobre cualquier símbolo del editor para ir a su declaración.

  • Apertura rápida: un modo muy potente de saltar a otros archivos o posiciones consiste en usar los diversos métodos de apertura rápida de KDevelop. Existen cuatro versiones de ellos:

    • Apertura rápida de clase (NavegarApertura rápida de clase o Alt+Ctrl+C): obtendrá una lista de todas las clases de la sesión actual. Comience a teclear el nombre de la clase y la lista le mostrará solo las que realmente se ajusten a lo que vaya escribiendo. Si la lista es lo suficientemente corta, seleccione un elemento usando las teclas arriba y abajo para que KDevelop le lleve al lugar donde se haya declarado la clase.

    • Apertura rápida de función (NavegarApertura rápida de función o Alt+Ctrl+M): obtendrá una lista de todas las funciones (miembro) que forman parte de los proyectos de la sesión actual, donde podrá seleccionar un elemento del mismo modo que se ha descrito anteriormente. Tenga en cuenta que esta lista puede incluir tanto declaraciones como definiciones de funciones.

    • Apertura rápida de archivo (NavegarApertura rápida de archivo o Alt+Ctrl+O): obtendrá una lista de todos los archivos que forman parte de los proyectos de la sesión actual, donde podrá seleccionar un elemento del mismo modo que se ha descrito anteriormente.

    • Apertura rápida universal (NavegarApertura rápida o Alt+Ctrl+Q): si olvida la combinación de teclas que está enlazada a las acciones anteriores, esta es la navaja suiza universal que necesita (le muestra una lista combinada de todos los archivos, funciones, clases y otras cosas de entre las que puede seleccionar una de ellas).

  • Saltar a la declaración/definición: cuando se está implementando una función (miembro), a menudo es necesario volver al punto donde se ha declarado la función, por ejemplo para mantener la lista de los argumentos de la función sincronizada entre la declaración y la definición, o para actualizar la documentación. Para ello, sitúe el cursor sobre el nombre de la función y seleccione NavegarSaltar a la declaración (o pulse Ctrl+.) para ir al lugar donde se ha declarado la función. Existen diversos modos de volver al lugar original:

    • Seleccionando NavegarSaltar a definición (o pulsando Ctrl+,).

    • Seleccionando NavegarAnterior contexto visitado (o pulsando Meta+Izquierda), como se describe a continuación.

Nota

El salto a la declaración de un símbolo no solo funciona cuando sitúa el cursor sobre el nombre de la función que esté implementando en un momento dado. Además, también funciona con otros símbolos: si sitúa el cursor sobre una variable (local, global o miembro) y salta a su declaración, también lo llevará al lugar donde se declara. De modo similar, puede situar el cursor sobre el nombre de una clase (por ejemplo, en una variable de declaración de función) y saltar al lugar donde se declara.

  • Cambiar entre declaración/definición: en el ejemplo anterior, para ir la lugar de la declaración de la función actual, necesita primero colocar el cursor sobre el nombre de la función. Para evitar este paso, puede seleccionar NavegaciónCambiar entre definición/declaración (o pulse Mayúsculas+Ctrl+C) para ir a la declaración de la función dentro de la que está el cursor en ese momento. Si selecciona la misma entrada de menú por segunda vez, volverá al lugar donde se define la función.

  • Uso anterior/siguiente: si sitúa el cursor sobre el nombre de una variable local y selecciona NavegaciónSiguiente uso (o pulsa Meta+Mayúsculas+Derecha) irá al siguiente uso de dicha variable en el código. (Tenga en cuenta que esto no busca solo la siguiente coincidencia del nombre de la variable, sino que también tiene en cuenta que las variables con el mismo nombre que estén en diferentes ámbitos son distintas). Esto mismo también funciona con los nombres de las funciones. Si selecciona NavegaciónAnterior uso (o pulsa Meta+Mayúsculas+Izquierda) irá al anterior uso de un símbolo.

Nota

Para ver una lista con todos los usos de un nombre sobre los que funcionan estas órdenes, sitúe el cursor sobre él y abra el visor de la herramienta Navegador de código, o bien mantenga pulsada la tecla Alt. Esto se explica con mayor detalle en la sección sobre exploración del código.

  • La lista de contexto: los navegadores web tienen esta función con la que se puede ir atrás y adelante en la lista de las páginas web recientemente visitadas. KDevelop posee este mismo tipo de funcionalidad, excepto que, en lugar de páginas web, visita contextos. Un contexto es la posición actual del cursor, que puede cambiar navegando con cualquier método excepto órdenes de cursor (por ejemplo, pulsando en una dirección proporcionada por una ayuda emergente, en la vista de la herramienta Navegador de código, cualquiera de las opciones del menú Navegación o cualquier otra orden de navegación. El uso de NavegaciónContexto visitado anteriormente (Meta+Izquierda) y NavegaciónSiguiente contexto visitado (Meta+Derecha) le lleva de un lado a otro de la lista de contextos visitados, del mismo modo que los botones atrás y adelante de un navegador le llevan a la página web anterior o siguiente de la lista de páginas visitadas.

  • Finalmente, hay vistas de herramientas que le permiten navegar a diferentes lugares de su base de código fuente. Por ejemplo, la herramienta Clases le proporciona una lista de todos los espacios de nombres y clases de todos los proyectos de ls sesión actual, y le permite desplegar sus elementos para ver las funciones y variables miembros de cada una de las clases:

    Si hace doble clic sobre un elemento (o si usa la correspondiente opción del menú de contexto que se muestra al pulsar el botón derecho del ratón) puede saltar a la posición de la declaración de dicho elemento. Otras herramientas permiten hacer cosas similares; por ejemplo, la herramienta Proyectos proporciona una lista de los archivos que forman parte de una sesión:

    De nuevo, si hace doble clic sobre un archivo, se abrirá.