Esplorare il codice sorgente

Informazioni locale

KDevelop interpreta il codice sorgente, e di conseguenza è veramente valido nel fornire informazioni sulle variabili o funzioni che possono apparire nel tuo programma. Per esempio, ecco un'istantanea del lavoro su un pezzo di codice e sul passaggio del mouse sopra il simbolo cell nella riga 1316 (se stai lavorando usando solo la tastiera, è possibile ottenere lo stesso effetto tenendo premuto per un po' il tasto Alt):

KDevelop mi mostra un suggerimento che include il tipo della variabile (qui: DoFHandler<dim>active_cell_iterator ), dove è dichiarata questa variabile (il contenitore, che qui è la funzione circondata get_maximal_velocity dal momento che è una variabile locale), cosa è (una variabile, non una funzione, classe o namespace) e dove è dichiarata (nella riga 1314, solo poche righe sopra).

Nel contesto attuale, il simbolo sul quale viene passato il mouse non ha alcuna documentazione associata. In questo esempio, il mouse viene fatto passare sopra il simbolo get_this_mpi_process nella riga 1318, il risultato è questo:

Qui, KDevelop ha fatto un riferimento incrociato della dichiarazione da un file completamente diverso (utilities.h, che in realtà sta anche in un diverso progetto della stessa sessione) con il commento in stile doxygen che accompagna la dichiarazione.

Ciò che rende questi suggerimenti ancora più utili è il fatto che sono dinamici: posso fare clic sul contenitore per ottenere informazioni sul contesto nel quale la variabile è dichiarata (cioè sul namespace di System, come per esempio dove è dichiarato, definito, usato, o com'è la sua documentazione) e posso fare clic sui collegamenti di color blu che consentono di resettare la posizione del cursore alla posizione della dichiarazione del simbolo (ad es. in utilities.h, riga 289) o darmi un elenco di posti in cui questo simbolo viene utilizzato nel file corrente o in tutti i progetti della sessione corrente. Quest'ultimo punto è spesso utile se vuoi analizzare come, per esempio, è utilizzata una funzione particolare in codici di grandi dimensioni.

Nota

Le informazioni contenute in un suggerimento sono rapide - dipende da te tenendo premuto il tasto Alt o passando il mouse. Se vuoi un posto permanente per queste, apri lo strumento Browser del codice in una delle sotto finestre. Per esempio, qui il cursore si trova sulla stessa funzione dell'esempio precedente, e la vista strumento a sinistra presenta lo stesso tipo di informazione del suggerimento di prima:

Spostando il cursore a destra cambiano le informazioni presentate sulla sinistra. Inoltre, facendo clic sul pulsante Blocca la vista corrente in alto a destra questo permette di bloccare queste informazioni, rendendole indipendenti dal movimento del cursore mentre analizzi l'informazione fornita.

Nota

Questo tipo di informazioni di contesto è disponibile in molti altri posti inKDevelop, non solo nell'editor di sorgente. Ad esempio, tenendo premuto Alt in un elenco di completamento (ad es. quando si esegue un'apertura rapida) fornisce anche informazioni di contesto relative al simbolo corrente.

Informazioni sul ambito del file

Il passo successivo è quello di ottenere informazioni su tutto il file sorgente a cui stai lavorando in questo momento. A tal fine, posiziona il cursore nell'ambito del file nel file corrente e guarda come viene mostrato lo strumento Browser del codice:

Qui sono mostrati un elenco di namespace, classi e funzioni dichiarate o definite nel file, offrendoti una panoramica di quello che sta succedendo in questo file e un mezzo per passare direttamente ad una qualsiasi di queste dichiarazioni o definizioni senza andare da un punto all'altro del file o alla ricerca di un simbolo particolare.

Nota

Le informazioni visualizzate dell'ambito del file sono le stesse di quelle presentate nella modalità «Schema riassuntivo» discusse di seguito per la navigazione del codice sorgente, la differenza è che la modalità schema riassuntivo rappresenta solo un suggerimento temporaneo.

Informazioni sull'ambito del progetto e della sessione

Ci sono molti modi per ottenere informazioni sull'intero progetto (o, di fatto, su tutti i progetti in una sessione). Questo tipo di informazione è tipicamente fornita attraverso vari strumenti vista. Ad esempio, lo strumento Classi fornisce una struttura ad albero di tutte le classi e circonda i namespace di tutti i progetti in una sessione, insieme con le funzioni membro e le variabili membro di ciascuna di queste classi:

Passando il mouse sopra una voce vengono fornite ulteriori informazioni sul simbolo, la posizione della sua dichiarazione e definizione, e i suoi usi. Facendo doppio clic su una voce in questa vista ad albero si apre una finestra nella posizione in cui il simbolo è dichiarato o definito.

Ma ci sono altri modi di vedere le informazioni globali. Ad esempio, lo strumento Documenti fornisce una vista di un progetto in termini di tipi di file o altri documenti di cui è composto questo progetto:

Spiegazione dei colori di evidenziazione

KDevelop usa una varietà di colori per evidenziare diversi oggetti nel codice sorgente. Se sai cosa significano i diversi colori, è possibile estrarre rapidamente molte informazioni dal codice sorgente solo guardando i colori, senza leggere un singolo carattere. Le regole di evidenziazione sono le seguenti:

  • Gli oggetti di tipo Class / Struct, Enum (i valori e il tipo), funzioni (globali), e i membri della classe hanno ciascuno un proprio colore assegnato (le classi sono verdi, le enumerazioni sono di colore rosso scuro, ed i membri sono di colore giallo scuro o viola, le funzioni (globali) sono sempre viola).

  • Tutte le variabili globali sono colorate di verde scuro.

  • Gli identificatori che sono dei typedef di altri tipi sono colorati di color foglia di tè.

  • Tutte le dichiarazioni e definizioni degli oggetti sono in neretto.

  • Se si accede ad un membro dall'interno del contesto dove è definito (classe di base o derivata) appare in giallo, altrimenti appare in viola.

  • Se un membro è privato o protetto, si colora di un colore leggermente più scuro quando viene usato.

  • Per le variabili locali nell'ambito del corpo della funzione, i colori sono scelti in base al hash della identificatore. Questo include i parametri della funzione. Un identificatore avrà sempre lo stesso colore nel suo ambito (ma lo stesso identificatore otterrà un colore diverso se rappresenta un oggetto diverso, cioè se viene ridefinito in un ambito nidificato), e di solito otterrai lo stesso colore per lo stesso nome dell'identificatore in ambiti diversi. Quindi, se disponi di molteplici funzioni che assumono gli stessi nomi per gli identificatori, tutti gli argomenti avranno lo stesso aspetto in termini di colore. Questi colori possono essere disattivati separatamente dalla colorazione globale nella finestra delle impostazioni.

  • Gli indentificatori per i quali KDevelop non può determinare la dichiarazione sono colorati in bianco. Questo talvolta può essere causato dalla perdita delle direttive #include.

  • In aggiunta a questa colorazione, sarà applicata la normale sintassi di evidenziazione dell'editor, come noto da Kate. La semantica di evidenziazione di KDevelop sovrascriverà sempre l'evidenziazione dell'editor in presenza di un conflitto.