Navigeren door broncode

In het vorige hoofdstuk hebben we het doorzoeken van broncode beschreven, bijv. het verkrijgen van informatie over symbols, bestanden en projecten. De volgende stap is het in uw broncode rondspringen, bijv. er in navigeren. Opnieuw is dit op verschillende niveaus mogelijk: lokaal, in een bestand en in een project.

Opmerking

Vanuit het menu Navigatie in het hoofdvenster van KDevelop zijn veel verschillende manieren beschikbaar om door de broncode te navigeren.

Lokale navigatie

KDevelop is veel meer dan een editor, maar het is ook een editor voor broncode. Bij gebruik als zodanig kunt u natuurlijk in een bronbestand de cursor omhoog, omlaag, naar links of naar rechts verplaatsen. U kunt ook de vorig scherm en volgende scherm toetsen gebruiken, en alle andere commando's die u kent uit andere editors.

Overzicht en navigatie op bestandsniveau

KDevelop heeft op bestandsniveau veel verschillende manieren om door de broncode te navigeren. Als voorbeeld:

  • Uitlijning: U kunt op minstens drie verschillende manieren een overzicht van het huidige bestand verkrijgen:

    • Klik in het tekstvak van Uitlijning rechtsboven van het hoofdvenster of toets in Alt+Ctrl+N om een keuzelijst met alle functies en klasse-declaraties te openen:

      U kunt vervolgens een keuze maken welke u wilt selecteren, of — als de keuze groot is — voer een tekst in wat vervolgens zal verschijnen in het tekstvak; als u doorgaat met het invoeren van tekst zal de lijst korter en korter worden omdat namen afvallen die niet overeenkomen met de al ingevoerde tekst totdat u tenslotte een keuze maakt.

    • Plaats uw cursor op het bestand-niveau (bijv. buiten elke functie of klassedeclaratie of definities) en houdt het Broncode Browser-venster geopend:

      Dit geeft u ook een overzicht van wat er in het geselecteerde bestand gebeurt, en hierdoor kunt u ook makkelijk selecteren waarnaar u naar toe wilt springen.

    • Als uw muis boven de tab van een geopend bestand zweeft dan krijgt u ook een overzicht van het bestand in die tab.

  • Bronbestanden zijn georganiseerd als een lijst met functiedeclaraties of definities. Toets in Alt+Ctrl+PgUp en Alt+Ctrl+PgDown om naar de vorige of volgende definitie in het bestand te gaan.

Navigeren in projecten en sessies: Semantische navigatie

Zoals ook op andere plaatsen gemeld, KDevelop kijkt niet zozeer naar aparte bronbestanden maar meer naar projecten als een geheel (of eigenlijk naar alle projecten die deel uitmaken van de huidige sessie). Als consequentie daarvan heeft het veel mogelijkheden om door complete projecten te navigeren. Sommige zijn al eerder beschreven in het hoofdstuk Broncode verkennen terwijl andere compleet anders zijn. De overeenkomst is dat deze navigatie mogelijkheden gebaseerd zijn op een begrip van de betekenis van de code, bijv. zij bieden iets waarbij het nodig is dat het complete project ontleedt wordt en de data met elkaar verbonden wordt. De volgende lijst toont enkele manieren hoe u door broncode kan navigeren die verspreidt is door een mogelijk groot aantal bestanden:

  • Zoals te lezen in het hoofdstuk over Broncode verkennen, u krijgt een tooltip waarin u de individuele namespace, klasse, functie of de naam van de variabele te zien krijgt als u met de muis erboven zweeft of door de Alt-toets enige tijd indrukt. Hier ziet u een voorbeeld:

    Als u klikt op de een declaratie van een symbool of de lijst met locaties uitklapt kunt u naar een van deze locaties springen waarbij indien noodzakelijk het bestand wordt geopend waarna de cursor op de locatie wordt geplaatst. Een vergelijkbaar resultaat krijgt u als u zoals eerder beschreven de Broncode Browser gebruikt.

  • Een snellere manier om naar de declaratie van een symbool te springen zonder te hoeven klikken op de koppelingen in de tekstballon is om tijdelijk Modus broncode browsen in te schakelen door de toets Alt of Ctrl ingedrukt te houden. In deze modus is het mogelijk om direct op een symbool in de editor te klikken om naar zijn declaratie te springen.

  • Snel openen: een zeer handige manier om snel naar andere bestanden of locaties te gaan is door het gebruik van de verschillende snel open methoden in KDevelop. Er zijn vier versies hiervan:

    • Snel openen van klasse (NavigatieSnel openen van klasse of Alt+Ctrl+C): U krijgt vervolgens een lijst met alle klassen in de projecten van deze sessie. Start met het typen van (een gedeelte van) de naam van een klas en lijst zal inkrimpen tot alleen die overblijven die overeenkomen met wat u tot dusver heeft ingevoerd. Als de lijst kort genoeg is dan kan u een element selecteren door gebruik van de up en down toetsen en KDevelop brengt u naar de plaats waar de klasse is gedeclareerd.

    • Functie snel openen (NavigatieFunctie snel openen of Alt+Ctrl+M): U krijgt vervolgens een lijst met alle (lid)functies in de projecten van deze sessie en u kunt ze op dezelfde manier selecteren als hierboven beschreven. Merk op dat deze lijst zowel functiedeclaraties als functiedefinities aanwezig kunnen zijn.

    • Snel openen van bestand (NavigatieSnel openen van bestand of Alt+Ctrl+O): U krijgt vervolgens een lijst met alle bestanden in de projecten van deze sessie en u kunt ze op dezelfde manier selecteren als hierboven beschreven.

    • Universeel snel openen (NavigatieSnel openen of Alt+Ctrl+Q): Als u vergeten bent welke toetscombinatie bij welke van bovengenoemde commando's hoort, deze is het universele Zwitserse zakmes — het toont u een gecombineerde lijst met alle bestanden, functies, klasses en andere zaken waaruit u kunt selecteren.

  • Ga naar declaratie/definitie: Wanneer men een (member) functie implementeert dan moet men vaak terug gaan naar de locatie waar de functie is declareert om bijvoorbeeld de lijst met functie argumenten bij de declaratie en de definitie synchroon te houden of om de documentatie bij te werken. Om dit te doen moet u de cursor op de naam van de functie plaatsen en vervolgens NavigatieGa naar declaratie (of toets in Ctrl+.) selecteren om naar de plaats te gaan waar de functie is gedeclareerd. Er zijn meerdere manieren om terug te gaan naar het startpunt:

    • Selecteer NavigatieGa naar definitie (or toets in Ctrl+,).

    • Selecteer NavigatieVorige bezochte context (of toets in Meta+Links), zoals hieronder beschreven.

Opmerking

Het springen naar de declaratie van een symbool is iets dat niet alleen werkt wanneer de cursor is geplaatst op de functienaam waaraan u werkt. Maar dit werkt ook bij andere symbolen: plaats de cursor op een (locale, globale, of member) variabele en springen naar zijn declaratie verplaatst u ook naar de locatie van zijn declaratie. Vergelijkbaar kan u ook de cursor op de naam van een klasse plaatsen, bijvoorbeeld in een variabele of een functiedeclaratie en vervolgens naar de locatie van de declaratie daarvan springen.

  • Schakel definitie/declaratie om: In het voorbeeld hierboven , om naar de locatie van de declaratie van de huidige functie te springen moet u eerst de cursor op de functienaam plaatsen. U kunt ook NavigatieSchakel definitie/declaratie om gebruiken (of toets Shift+Ctrl+C) om naar de declaratie te springen van de functie waar de cursor op dit moment is. Door het dezelfde menu-item opnieuw te selecteren springt u terug naar de plaats waar de functie is gedefinieerd.

  • Vorig/Volgend gebruik: plaats de cursor op de naam van een lokale variabele en selecteer NavigatieVolgend gebruik (of toets Meta+Shift+Rechts) en u springt naar de volgende plaats waar deze variabele in de code is gebruikt. (Merk op dat er niet alleen gezocht wordt naar de volgende plek waar de variabele voorkomt maar neemt ook in overweging dat variabele met dezelfde naam in andere scopes verschillend zijn.) Dit werkt op dezelfde manier bij het gebruik van functienamen. Selecteer NavigatieVorig gebruik (of toets Meta+Shift+Links) en u springt naar de vorige plaats waar deze variabele in de code is gebruikt.

Opmerking

Voor het bekijken van een lijst met alle locaties waar deze commando's doorheen springen, plaatst u de cursor er boven op en opent het Broncode Browser venster of houdt de Alt toets ingedrukt. Dit wordt meer gedetailleerd uitgelegd in het hoofdstuk Broncode verkennen.

  • De context lijst: Web browsers hebben deze mogelijkheid waarmee u de mogelijkheid heeft om vooruit en achteruit te gaan in de lijst met recent bezochte webpagina's. KDevelop heeft dezelfde mogelijkheid, behalve dat u in plaats van webpagina's contexts bezoekt. Een context is de huidige locatie van de cursor, en u wijzigt deze door naar een andere locatie te navigeren met behulp van cursor opdrachten — bijvoorbeeld, door te klikken op een locatie die u via een tooltip is aangereikt, via het Broncode Browser-venster, een item te kiezen in het Navigatie menu, of een ander navigatie-commando. Door het gebruik van de NavigatieVorige bezochte Context (Meta+Links) en NavigatieVolgende bezochte Context (Meta+Rechts) gaat u door de lijst met bezochte context op dezelfde manier als u met de knoppen vorige en volgende van een browser naar de vorige of volgende webpagina in de lijst met bezochte pagina's gaat.

  • Tenslotte zijn er hulpmiddelen waarmee u naar andere locaties in uw broncode kunt navigeren. Bijvoorbeeld, het hulpmiddel Klasses toont een lijst met alle namespaces en klasses in alle projecten van de huidige sessie, deze lijst kunt u uitklappen zodat u van elke klasse de member functies en variabelen kunt zien:

    Door dubbelklikken op een item (of via het contextmenu door te klikken met de rechtermuisknop) springt u naar de locatie van de declaratie van het item. Andere hulpmiddelen werken vergelijkbaar; bijvoorbeeld, het venster Projecten toont een lijst met bestanden die deel uitmaken van een sessie:

    Ook hier, dubbelklikken opent het bestand.