tutorial - how to use doxygen



Doxygen può essere facilmente configurato per riconoscere le linee TODO e FIXME? (1)

Ho appena installato e installato un'istanza di Doxygen, ma fuori dalla scatola trova solo i tag TODO nel codice quando marcati in un blocco come:

/**
 * @todo Foo
 */

Non sembra trovare:

// TODO Foo
// FIXME Bar
// @todo Baz

La maggior parte degli IDE e dei bug tracker che gestiscono l'analisi funzionano bene con loro, c'è un modo semplice per configurare Doxygen per trovarli ed elencarli come elementi ToDo?


Esistono numerosi esempi e metodi che possiamo usare:

  • Per un commento di una riga con comandi doxygen validi (ad es. \todo ) che useresti

    /// \todo Some (optional) text
    

    Nota le tre barre in avanti, non le solite due. Vedere il terzo punto del secondo elenco nella sezione relativa ai blocchi della documentazione speciale della documentazione doxygen. Questo può essere usato per aggiungere nuovi oggetti todo al tuo codice sorgente.

  • Generalmente si possono definire tag personalizzati (come FIXME ) definendo un alias nel file di configurazione di Doxygen. Per esempio

    ALIASES += FIXME="\todo"
    

    che ti permetterà di scrivere \FIXME nel tuo codice sorgente e i commenti con prefisso con \FIXME saranno inclusi nella tua lista di cose nella documentazione finale. Il problema qui è che devi anteporre i tuoi alias al simbolo \ (o @ ) e iniziare il commento con tre barre principali che, se vuoi lasciare le FIXME nel tuo codice così come sono, non è un'opzione.

  • Infine, un metodo alternativo, e quello che penso tu stia cercando, sarebbe quello di pre- INPUT_FILTER i tuoi file sorgente usando l'opzione del file di configurazione INPUT_FILTER . Questa opzione definisce un comando che viene applicato a ciascuno dei tuoi file sorgente prima che doxygen costruisca la documentazione, così possiamo definire un comando che sostituisce le istanze di TODO e FIXME con una marcatura Doxygen valida.

     INPUT_FILTER = "sed -e 's/\/\/.*FIXME/\/\/\/ \\todo/'"
    

    Questo filtro sostituisce tutte le istanze di // FIXME (con qualsiasi quantità (o nessuna) di spazi bianchi tra // e FIXME ) con /// \todo . Questa sostituzione viene eseguita internamente solo da doxygen: i tuoi file sorgente non vengono modificati sul disco.

Nota: Quest'ultimo punto è stato ispirato dalla risposta accettata alla domanda di ottenere i tag Doxygen e MSVC TODO per lavorare insieme . Tuttavia, tale risposta utilizzava l'opzione di configurazione FILE_VERSION_FILTER anziché INPUT_FILTER . Penso che quest'ultimo ( INPUT_FILTER ) sia effettivamente più appropriato qui. Inoltre, il comando sed usato in quella risposta non funziona per me.