2012-03-12 13 views
7

Esistono diversi comandi doxygen che hanno lo scopo di creare collegamenti nella documentazione (@link, @ref).
Attualmente sto utilizzando il comando @ref per creare un collegamento a un file personalizzato, scritto in una lingua non supportata da doxygen (xml).
Vorrei modificare questo collegamento in modo che punti a una riga precisa nel file.
Esiste un comando doxygen che consente di farlo?Nella documentazione doxygen come creare un collegamento a una riga specifica di un file

risposta

6

Non sono sicuro che \ref o \link possa farlo. Tuttavia, se potessero, un problema nell'adottare questo approccio è che i collegamenti non saranno più validi se si modifica il contenuto del file a cui si sta collegando senza modificare il collegamento. Questo è uno dei problemi di separazione tra codice sorgente e documentazione.

Piuttosto che collegarsi a una particolare linea in un altro file, perché non includi la parte specifica del file che ti interessa nella documentazione? Si potrebbe o:

  • comprendono l'intero file con \include (c'è anche \includelineno) e appena riferimento parti rilevanti di esso nel testo (ad esempio "la funzione xxx nel seguente codice"), o
  • includono frammenti del file in cui è necessario fare riferimento ad essi nella documentazione utilizzando \snippet.

Edit: In alternativa, è possibile utilizzare il comando \dontinclude che, insieme con i \line, \skip, \skipline, e \until comandi consente di includere le linee/blocchi di un particolare file specifici. Vedere l'esempio nella documentazione \dontinclude.

+0

Grazie per i vostri suggerimenti. Il comando '\ snippet' sembrava promettente, tuttavia funziona solo per frammenti di codice da _source files_, mentre voglio mostrare i dati dal mio _xml resource file_. Non riesco ad aggiungere i tag che identificano la posizione snippet al mio file xml perché i commenti in stile "ossigeno" lo "spezzano". Anche l'uso di \ include è intelligente, ma è un file enorme e non voglio includerlo ogni volta (la documentazione verrebbe cancellata da dati irrilevanti). Tuttavia, quando uso un \ ref al mio file, faccio già riferimento a parti rilevanti, come suggerisci tu. Sto solo cercando un modo ancora migliore. – wil

+1

@wil Nessun problema. Ho anche aggiunto una nota sul comando '\ dontinclude', che sarebbe meglio per voi rispetto al comando' \ snippet' poiché non richiede l'aggiunta di alcun tag al file di risorse. Tuttavia, secondo la documentazione, sembra che questo comando funzioni solo sui file sorgente (non l'ho testato, quindi non sono sicuro che sia effettivamente così). È anche possibile includere l'XML direttamente nella documentazione. In caso contrario, temo che potresti dover semplicemente convivere con il tuo metodo '\ ref'. – Chris

+0

Ho provato i comandi '\ dontinclude' e funziona anche per i file xml! Mi sono accontentato di questa soluzione e ho impostato la tua risposta come "accettata" :-) – wil

Problemi correlati