Genera automaticamente la documentazione della funzione in Visual Studio


89

Mi chiedevo se esiste un modo (si spera che una scorciatoia da tastiera) per creare intestazioni di funzione di generazione automatica in Visual Studio.

Esempio:

Private Function Foo(ByVal param1 As String, ByVal param2 As Integer)

E diventerebbe automagicamente qualcosa del genere ...


'---------------------------------- 
'Pre: 
'Post:
'Author: 
'Date: 
'Param1 (String): 
'Param2 (Integer): 
'Summary: 
Private Function Foo(ByVal param1 As String, ByVal param2 As Integer)

1
Se sei arrivato su questa pagina perché questa funzione sembra non funzionare correttamente nel tuo IDE, assicurati che il tuo codice venga compilato e riprova. Questa funzione non funziona quando il codice presenta errori di analisi.
krowe2

Come generare un elenco di cose da fare in xamarin?
Manthan

Risposte:


158

Rendi i "tre marcatori di commenti singoli"

In C # è ///

che di default sputa:

/// <summary>
/// 
/// </summary>
/// <returns></returns>

Ecco alcuni suggerimenti sulla modifica dei modelli VS.


7
E in VB.NET sono le virgolette singole triple (come menzionato in un'altra risposta)
peSHIr

1
È abbastanza carino, non lo sapevo
Brendan

"Genera commenti di documentazione XML per ///" non funzionerà se la precedente riga di spazio non bianco inizia con "///"
Luna crescente

È possibile farlo automaticamente su ogni metodo, proprietà e variabile? Anche se il codice esiste già?
Robin Bruneel

collegamento suggerimenti risolto di nuovo . maledizione, ragnatela a senso unico!
Michael Paulukonis,

48

GhostDoc !

Fare clic con il tasto destro sulla funzione, selezionare "Document this" e

private bool FindTheFoo(int numberOfFoos)

diventa

/// <summary>
/// Finds the foo.
/// </summary>
/// <param name="numberOfFoos">The number of foos.</param>
/// <returns></returns>
private bool FindTheFoo(int numberOfFoos)

(sì, è tutto autogenerato).

Supporta C #, VB.NET e C / C ++. Per impostazione predefinita è mappato su Ctrl+ Shift+ D.

Ricorda: dovresti aggiungere informazioni oltre la firma del metodo alla documentazione. Non limitarti alla documentazione generata automaticamente. Il valore di uno strumento come questo è che genera automaticamente la documentazione che può essere estratta dalla firma del metodo, quindi qualsiasi informazione aggiunta dovrebbe essere nuova .

Detto questo, personalmente preferisco quando i metodi sono totalmente autodocumentanti, ma a volte avrai standard di codifica che richiedono documentazione esterna, e quindi uno strumento come questo ti farà risparmiare un sacco di digitazione cerebrale.


16
E questo è esattamente il tipo di "documentazione" che detesto. Aggiunge solo byte senza dirmi nulla che i nomi dei metodi e dei parametri non mi dicono già. Non farlo, senza modificare il commento in qualcosa di utile ... :-(
peSHIr

12
Ovviamente dovresti modificarlo per aggiungere informazioni. Ma come modello è molto carino.
Rasmus Faber

3
@Rasmus: È un modello che, per una buona documentazione, dovrebbe essere buttato via completamente e riscritto comunque, poiché non ha contenuto informativo. Quindi è in realtà più sforzo che se fosse solo vuoto.
Joey

35
///

è la scorciatoia per ottenere il blocco di commenti Descrizione metodo. Ma assicurati di aver scritto il nome della funzione e la firma prima di aggiungerla. Prima scrivi il nome e la firma della funzione.

Quindi sopra il nome della funzione basta digitare ///

e lo otterrai automaticamente

inserisci qui la descrizione dell'immagine


4
bella insolita caratteristica di un post, la tua animazione.
n611x007

1
Come hai fatto? Mi piace quella risposta. Mai visto prima.
Matthis Kohli

2
è carino. un'aggiunta sarebbe parametri alla funzione.
amit jha

19

Anche Visual Assist ha una bella soluzione ed è altamente personalizzabile.

Dopo averlo modificato per generare commenti in stile doxygen, questi due clic produrranno:

/**
* Method:    FindTheFoo
* FullName:  FindTheFoo
* Access:    private 
* Qualifier:
* @param    int numberOfFoos
* @return   bool
*/
private bool FindTheFoo(int numberOfFoos)
{

}

(Con le impostazioni predefinite, è un po 'diverso.)


Modifica: il modo per personalizzare il testo del "metodo del documento" è in VassistX-> Opzioni di assistenza visiva-> Suggerimenti, seleziona "Modifica frammenti VA", Lingua: C ++, Tipo: Refactoring, quindi vai a "Metodo documento" e personalizza. L'esempio sopra è generato da:

va_doxy


Per favore condividi come hai impostato questo in VA
Damian

Elaborato alla risposta. Spero che questo ti aiuti.
Ofek Shilon

Per inserire lo snippet: con il cursore nel nome / firma del metodo, alt + maiusc + q> "metodo del documento"
Andrew

13

Normalmente, Visual Studio lo crea automaticamente se aggiungi tre singoli marcatori di commento sopra l'elemento che desideri commentare (metodo, classe).

In C # questo sarebbe ///.

Se Visual Studio non esegue questa operazione, puoi abilitarlo in

Opzioni-> Editor di testo-> C # -> Avanzate

e controlla

Genera commenti di documentazione XML per ///

descrizione nella foto


3

In visual basic, se crei prima la tua funzione / sottotitolo, poi nella riga sopra di essa, digiti 'tre volte, genererà automaticamente l'xml pertinente per la documentazione. Questo viene visualizzato anche quando si passa il mouse su intellisense e quando si utilizza la funzione.


2

Puoi utilizzare frammenti di codice per inserire le righe che desideri.

Inoltre, se si digitano tre virgolette singole ('' ') sulla riga sopra l'intestazione della funzione, verrà inserito il modello di intestazione XML che è possibile compilare.

Questi commenti XML possono essere interpretati dal software di documentazione e sono inclusi nell'output di compilazione come file assembly.xml. Se si mantiene quel file XML con la DLL e si fa riferimento a quella DLL in un altro progetto, quei commenti diventano disponibili in intellisense.


Questo è VB.NET: in C # è ///
peSHIr

0

Sto lavorando a un progetto open-source chiamato Todoc che analizza le parole per produrre automaticamente un output di documentazione appropriato quando si salva un file. Rispetta i commenti esistenti ed è davvero veloce e fluido.

http://todoc.codeplex.com/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.