Plugin plugin &tdevelop; contiene un grande numero di piccoli strumenti che aiutano ad eseguire alcuni compiti. La maggior parte di essi è realizzata come plugin, che quando non sono necessari possono essere disabilitati. Se si sta cercando un funzionalità che dovrebbe essere presente ma no lo è, allora potrebbe essere stata implementata in un plugin che è disattivato. Ad esempio, nel menu file è presente la funzionalità Apertura rapida file, ma solo se è stata abilitato nella finestra di dialogo Opzioni Progetto. Tecnicamente, i plugin sono costituiti dalla classe KDevPlugin definita nel file lib/interfaces/kdevplugin.h. Le informazioni seguenti sono tratte da un commento presente in quel file. KDevPlugin è la classe base per tutti i plugin di KDevelop. Un plugin è un componente che viene caricato nella shell di KDevelop all'avvio o su richiesta. Un plugin ha un ambito che può essere: Core Globale Progetto I plugin core sono plugin globali che forniscono alcune funzionalità fondamentali che non sono selezionabili dall'utente nella finestra di configurazione dei plugin. I plugin globali richiedono solo la shell per essere caricati, non funzionano con l'interfaccia di KDevProject e/o non usano le informazioni del progetto. Ad esempio, il plugin uimode permette allo sviluppatore di selezionare l'interfaccia utente desiderata. I plugin di progetto richiedono un progetto per essere caricati e sono normalmente caricati/scaricati assieme al progetto stesso. Se un plugin funziona con le informazioni relative ad un progetto allora è un plugin di progetto. Ad esempio, il gestore automake deve essere attivo solo quando viene caricato un progetto basato su automake. Come detto precedentemente, i plugin core non possono essere disabilitati. I plugin globali possono essere abilitati/disabilitati in Impostazioni Configura KDevelop... selezionando Plugin. I plugin di progetto possono essere abilitati/disabilitati in Progetto Opzioni Progetto... in Plugin. A seconda della loro funzione, i plugin abilitati possono avere molti effetti su KDevelop, come aggiungere menu, voci di menu, pulsanti, ecc. I plugin disabilitati non disturberanno i menu e non verranno caricati in memoria. Il seguente elenco di plugin è generato da un piccolo script (listplugins.sh) scritto da Volker Paul. Tutti i plugin possiedono un file .desktop contenente informazioni come il nome e i commenti. La eventuale scarsa utilità di quest'ultimi è da attribuire agli autori dei plugin. I plugin vengono raggruppati a seconda del loro ambito (core, globale, di progetto). Ambito: Core Procedura guidata per le applicazioni Procedura guidata Nuovo Progetto Difference Viewer Visualizzatore differenze FileCreate FileCreate FullScreen FullScreen Tip of the Day Consiglio del giorno Selezione dell'interfaccia utente Fornisce una finestra di dialogo per la selezione della modalità dell'interfaccia utente VCSManager Gestore del sistema di controllo della versione Ambito: Globale Espansione delle abbreviazioni Fornisce il supporto per le abbreviazioni personalizzabili - parole brevi che vengono espanse in strutture di codice usate frequentemente. Documentazione Il plugin Documentation permette di navigare e di effettuare ricerche nella documentazione locale e online con il supporto per vari sistemi di documentazione. ListaFile Fornisce un elenco di tutti i file attualmente aperti. (Comodo quando la barra delle schede non è abbastanza lunga). Selettore File Una potente utility trasparente alla rete per sfogliare i file. Inserimento e filtraggio da shell Permette di modificare il testo nell'editor usando strumenti a linea di comando. È presente nel menu Strumenti. Interfaccia a Grep Integra le funzioni di ricerca e del programma grep in KDevelop - permette la ricerca veloce in file multipli usando pattern o espressioni regolari. Konsole integrata Questo plugin fornisce una console integrata in KDevelop che permette un accesso facile e rapido alla linea di comando. Aggiunta al menu della voce "Apri con" Questo plugin fornisce varie alternative di apertura nei vari menu contestuali. Strumento per l'esplorazione di componenti Uno strumento a interfaccia grafica per effettuare interrogazioni di tipo TDETrader ai servizi registrati. Convalidatore per espressioni regolari Strumento per scrivere e effettuare il test di espressioni regolari in base alle sintassi più comuni. Componente per sostituire Questo plugin è uno strumento interattivo per effettuare ricerche e sostituzioni. Le ricerche sono basate su stringhe o espressioni regolari e le sostituzioni da effettuare possono essere visualizzate in un'anteprima. Quando il plugin viene caricato, appare nel menu Modifica. Script Questo plugin fornisce le funzionalità di scripting basate su KScript Frammenti di codice Questo plugin permette di memorizzare i frammenti di codice e aggiungerli al proprio codice Struttura testo Fornisce una visualizzazione strutturata e la navigazione nei file HTML e TEX. Aggiunte al menu Strumenti Questo plugin fornisce un sistema semplice per aggiungere applicazioni esterne al menu strumenti e alla barra degli strumenti. Interfaccia a Valgrind Valgrind è uno strumento che aiuta a trovare i problemi di gestione della memoria nei programmi. http://developer.kde.org/~sewardj/ Ambito: Progetti Plugin annotation Descrizione di annotation Formattatore del codice sorgente Plugin per la formattazione del codice sorgente in base a specifiche regole. Quando viene caricato si trova nel menu Strumenti. Segnalibri Questo plugin permette la navigazione tra i segnalibri e li memorizza tra una sessione e l'altra. Visualizza Classe Questo plugin fornisce una visuale grafica di tutte le classi del progetto con i loro metodi e attributi, assieme ad un sistema per navigare direttamente nel codice sorgente. CopyTo Semplice plugin per il caricamento dei file (upload). Effettua la copia dei file attraverso qualunque protocollo supportato da TDEIO. Interfaccia a CTags CTags è uno strumento per la navigazione nel codice sorgente che supporta molti linguaggi. Quando è caricato fornisce un menu contestuale per trovare le definizioni/dichiarazioni e una finestra di dialogo per le interrogazioni (query). http://ctags.sourceforge.net/ Supporto finale per la creazione dei pacchetti Aiuta nella costruzione e pubblicazione del progetto finale. Per il momento è supportato solo il tipo di pacchetto RPM. Supporto Doxygen Il plugin doxygen consente di specificare e controllare la generazione della documentazione per un progetto, in base al contenuto del codice sorgente. È necessario avere installato doxygen: per ulteriori informazioni vedere http://www.doxygen.org. Apertura rapida Permette di trovare e aprire in modo efficiente i file, le classi e i metodi in un progetto di grosse dimensioni. Quando viene caricato si trova nei menu File e Strumenti. Security Checker Controlla la sicurezza del codice Per l'elenco dei plugin generato è tutto. Plugin per la gestione dei progetti in &tdevelop; antproject Gestore di progetto ANT (per applicazioni &Java;) autoproject Gestore di progetto Automake customproject Gestore di progetto personalizzato trollproject Gestore di progetto basato su QMake
I precedenti plugin sono attualmente (maggio 2005) vuoti. È possibile che il supporto per la gestione dei progetti venga in futuro implementato sotto forma di plugin. Plugin per il supporto dei linguaggi in &tdevelop; cppsupportSupporto per C/C++fortransupportSupporto per FortranjavasupportSupporto per &Java;perlsupportSupporto per PerlphpsupportSupporto per PHPpythonsupportSupporto per Phyton
Di seguito verranno esaminati alcuni tra questi plugin. Il plugin <command>abbrev</command> abbrev Questo plugin espande le abbreviazioni in frammenti di codice molto usati. Si attiva premendo Ctrl Spazio. Per esempio, se si inserisce nell'editor "ife" in un file C++ e si preme CtrlSpazio, si ottiene un modello di codice if-else e si risparmia qualche battitura di tasti. L'insieme delle abbreviazioni supportate dipende dal linguaggio di programmazione del file che viene modificato. Per esempio, per PHP si sarà ovviamente interessati ad altri modelli di codice rispetto a quelli di &Java;. L'insieme dei modelli di codice è configurabile. Se il plugin è abilitato, si possono vedere quelli disponibili in Impostazioni Configura KDevelop... in Abbreviazioni. Il plugin <command>filter</command> filter Questo plugin fornisce due funzioni. Se si seleziona Strumenti Esegui comando..., si può inserire un comando di shell. L'output del comando è inserito nel buffer dell'editor quando si preme il pulsante Avvia. La funzione relativa è disponibile in StrumentiSelezione filtro tramite comando.... Per usarla, si deve selezionare un'area di testo nell'editor. Se si inserisce un comando e si preme il pulsante Avvia esso verrà avviato e verrà usata la selezione come input. Lo standard output del comando viene quindi inserito nell'editor. Ad esempio, scrivendo della documentazione si deve fare spesso riferimento alle voci dei menu. Per farlo correttamente, considerando ad es. il comando Copia del menu Modifica, si deve scrivere: <menuchoice><guimenu>Modifica</guimenu><guimenuitem>Copia</guimenuitem></menuchoice>. Siccome è piuttosto complesso, si può invece scrivere semplicemente "Modifica - Copia" e lasciare che sia il computer ad aggiungere i tag in questo modo. Si scrive un piccolo script per la shell chiamato mef e lo si memorizza ad es. nella directory bin di home: sed s/"^\(.*\) - \(.*\)\$"/"<menuchoice><guimenu>\1<\/guimenu><guimenuitem>\2<\/guimenuitem><\/menuchoice>"/ Non si deve dimenticare di renderlo eseguibile. Ora, nel file sorgente .docbook della documentazione si può scrivere "Modifica - Copia", selezionare questo testo, scegliere StrumentiSelezione filtro tramite comando... e chiamare il file ~/bin/mef. Istantaneamente il testo "Modifica - Copia" verrà sostituito dal testo <menuchoice><guimenu>Modifica</guimenu><guimenuitem>Copia</guimenuitem></menuchoice> Il plugin &doxygen; &doxygen; strumento per la documentazione documentazione API Questo plugin aiuta ad utilizzare lo strumento per la documentazione API &doxygen; (). Per generare la documentazione API del proprio progetto, in base alla configurazione contenuta nel file Doxyfile presente nella directory del progetto, selezionare Progetto Esegui doxygen. Inoltre, si può configurare &doxygen; nella finestra di dialogo Progetto Opzioni progetto..., che è molto simile allo strumento &doxywizard;. Il plugin &ctags; &ctags; Anche se il browser per le classi fornisce una visione approfondita dei simboli e delle classi del progetto, si può utilizzare anche lo strumento ctags, che supporta molti più linguaggi. Il plugin viene attivato in Strumenti CTags.... Al primo avvio verrà chiesto di generare un database di ricerca. Quando si accetta, il programma &ctags; verrà avviato e creerà un file chiamato tags nella directory del progetto. È un file di testo contenente tutti i simboli dei file sorgenti. Si possono effettuare ricerche nel database dei simboli in due modi: quando è marcata la casella Regular expression match, il testo inserito verrà interpretato come una espressione regolare (tipo POSIX) e confrontata con i simboli esistenti. Ad esempio, il testo .*Widget corrisponde a tutti i simboli che terminano con Widget. Se la casella non è marcata, la ricerca sarà effettuata letteralmente. Quando viene fatta una ricerca si riceverà una lista di simboli corrispondenti accompagnati dal numero di linea del punto dove sono definiti. Facendo clic sulla lista si passerà al punto relativo. &ctags; per alcuni linguaggi distingue i vari tipi di simboli. Ad esempio, Python ha classi e funzioni: si può decidere di cercare solo le classi selezionando il tipo relativo nella finestra di dialogo. Normalmente il database dei simboli non viene aggiornato quando si modificano i file sorgente. Di conseguenza dopo un po' i numeri di linea non saranno più corretti e mancheranno le nuove classi e funzioni. Perciò si dovrebbe aggiornare il file tags ad intervalli regolari premendo il pulsante Rigenerare. Il plugin <command>astyle</command> astyle Artistic Style indentazione Il plugin Astyle formatta il codice sorgente in base a specifiche regole. Il plugin <command>regexptest</command> regexptest debugespressioni regolari espressioni regolaridebug La progettazione con le espressioni regolari può diventare un lavoro pesante. Spesso al primo tentativo l'espressione corrisponde a troppe stringhe. In particolare, quando si lavora con un linguaggio compilato, i tempi di debug di una espressione regolare possono essere scomodi. Il plugin regexptest permette di esplorare direttamente i cambiamenti in una espressione regolare. Viene attivato con Strumenti Debug dell'espressione regolare. Nelle caselle si può scegliere il tipo di motore di espressioni regolari da usare. Attualmente sono supportati il tipo definito dallo standard POSIX, usato dal programma &grep;, e la sintassi POSIX estesa usata dal programma &egrep;. Quando si inserisce un'espressione si riceverà un feedback immediato su ogni errore di sintassi. Inserendo un testo in Test stringa, si può vedere se l'espressione corrisponde alla stringa. In particolare, se l'espressione regolare include gruppi come ([a-z]), viene visualizzato il contenuto del sottogruppo corrispondente in un elenco.