Utforska källkod

Lokal information

KDevelop förstår källkod, och är som en följd av det mycket bra på att tillhandahålla information om variabler eller funktioner som kan dyka upp i programmet. Här är exempelvis en ögonblicksbild av att arbeta med ett stycke kod och hålla musen över symbolen cell på rad 1316 (om du arbetar tangentbordsorienterat, kan du åstadkomma samma effekt genom att hålla ner tangenten Alt en stund):

KDevelop visar ett verktygstips som inkluderar variabelns typ (här: DoFHandler<dim>active_cell_iterator), var variabeln är deklarerad (behållaren, vilket här är den omgivande funktionen get_maximal_velocity eftersom det är en lokal variabel), vad den är (en variabel, inte en funktion, klass eller namnrymd) och var den är deklarerad (på rad 1314, bara några få rader upp i koden).

I det aktuella sammanhanget, har inte symbolen som musen hölls över någon tillhörande dokumentation. Hade musen hållits över symbolen get_this_mpi_process på rad 1318, hade resultatet blivit följande:

Här har KDevelop korsrefererat deklarationen från en helt annan fil (utilities.h, som i själva verket ingår i ett annat projekt i samma session) tillsammans med den doxygen-liknande kommentaren som hör till deklarationen där.

Vad som gör verktygstipsen ännu användbarare är att de är dynamiska: Man kan klicka på behållaren för att få information om sammanhanget där variabeln är deklarerad (dvs. om namnrymden System, såsom var den är deklarerad, definierad, använd, eller vad dess dokumentation är) och man kan klicka på de blåa länkarna som flyttar markörposition till platsen där Symbol är deklarerad (t.ex. i utilities.h, på rad 289) eller ger en lista över platser där symbolen används i den aktuella filen eller i den aktuella sessionens samtliga projekt. Det senare är ofta användbart om du exempelvis vill utforska hur en viss funktion används i en större kodbas.

Notera

Informationen i ett verktygstips är flyktig: den beror på att du håller nere tangenten Alt eller håller musen över det. Om du vill ha en mer permanent plats för det, öppna verktygsvyn Kodbläddrare i ett av delfönstren. Här är exempelvis markören på samma funktion som i exemplet ovan, och verktygsvyn till vänster visar samma sorts information som i verktygstipset tidigare:

Att flytta omkring markören till höger ändrar informationen som visas till vänster. Dessutom, att klicka på knappen Lås nuvarande vy låter dig låsa informationen, vilket gör den oberoende av markörförflyttningar medan du utforskar informationen som visas där.

Notera

Den här sortens sammanhangsberoende information är tillgänglig på många andra ställen i KDevelop, inte bara i källkodseditorn. Genom att exempelvis hålla ner tangenten Alt i en kompletteringslista (t.ex. vid snabböppna) ger också sammanhangsinformation om den aktuella symbolen.

Information på filnivå

Nästa nivå uppåt är att erhålla information om hela källkodsfilen som du för närvarande arbetar på. För att åstadkomma det, placera markören på filnivå i aktuell fil och titta på vad verktygsvyn Kodbläddrare visar:

Här visar den en lista över namnrymder, klasser och funktioner deklarerade eller definierade i den aktuella filen, ger dig en översikt av vad som händer i filen och ett sätt att gå direkt till vilken som helst av deklarationer eller definitioner utan att rulla uppåt eller neråt i filen eller söka efter en specifik symbol.

Notera

Informationen som visas för filnivå är samma som presenteras med Översikt som beskrivs nedan för att navigera i källkod. Skillnaden är att översikt bara ger ett tillfälligt verktygstips.

Information på projekt- och sessionsnivå

Det finns många sätt att erhålla information om ett helt projekt (eller, i själva verket, om alla projekt i en session). Den här sortens information tillhandahålls typiskt via diverse verktygsvyer. Exempelvis tillhandahåller verktygsvyn Klasser en trädstruktur över alla klasser och omgivande namnrymder för alla projekt i en session, tillsammans med medlemsfunktionerna och variablerna för var och en av klasserna:

Att hålla musen över en post tillhandahåller återigen information om symbolen. Platserna för dess deklaration och definition, och dess användningar. Att dubbelklicka på en post i trädvyn öppnar ett editorfönster på platsen där symbolen deklareras eller definieras.

Men det finns andra sätt att titta på global information. Exempelvis ger verktyget Dokument en vy av projektet med avseende på vilka sorters filer eller andra dokument som projektet består av:

Förklaring av färgläggning med regnbågsfärger

KDevelop använder diverse färger för att markera olika objekt i källkoden. Om du vet vad de olika färgerna betyder, kan du mycket snabbt extrahera en mängd information från källkoden bara genom att titta på färgerna, utan att läsa ett enda tecken. Färgläggningsreglerna är följande:

  • Objekt av typerna Klass, Struct, Enum (värdena och typen), (globala) funktionerna, och klassmedlemmarna har var och en sina egna färgtilldelningar (klasser är gröna, enum är mörkröda, och medlemmar är mörkgula eller violetta, (globala) funktioner är alltid violetta).

  • Alla globala variabler färgläggs med mörkgrönt

  • Identifierare som är en typedef av en annan typ färgläggs med blågrönt.

  • Alla deklarationer och definitioner av objekt använder fetstil.

  • Om en medlem används inne i sammanhanget den är definierad (basklass eller härledd klass) visas den med gult, annars visas den med violett.

  • Om en medlem är privat eller skyddad, färgläggs den med en något mörkare färg när den används.

  • För variabler lokala på funktionsnivå, väljs regnbågsfärger baserad på ett kondensat av identifieraren. Det inkluderar funktionens parametrar. En identifierare har alltid samma färg på dess nivå (men samma identifierare får en annan färg om den representerar ett annat objekt, dvs. om den definieras om på en mer nästlad nivå), och man får oftast samma färg på samma identifierarnamn på olika nivåer. Om du sålunda har olika funktioner som har parametrar med samma namn, ser argumenten alla likadana ut kodmässigt. Regnbågsfärgerna kan stängas av separat från den globala färgläggningen i inställningsdialogrutan:

  • Identifierare där KDevelop inte kan bestämma motsvarande deklaration är färglagda med vitt. Det kan ibland orsakas av saknade #include-direktiv.

  • Förutom den färgläggningen, används den vanliga syntaxfärgläggningen i editorn, som är känd från Kate. KDevelops semantiska färgläggning överskrider alltid editorns färgläggning om det finns en konflikt.