Generar automáticamente documentación de funciones en Visual Studio

89

Me preguntaba si hay una forma (con suerte, un atajo de teclado) para crear encabezados de función de generación automática en Visual Studio.

Ejemplo:

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

Y automáticamente se convertiría en algo como esto ...


'---------------------------------- 
'Pre: 
'Post:
'Author: 
'Date: 
'Param1 (String): 
'Param2 (Integer): 
'Summary: 
Private Function Foo(ByVal param1 As String, ByVal param2 As Integer)
Ryan M
fuente
1
Si ha llegado a esta página porque esta función parece estar rota en su IDE, debe asegurarse de que su código se compile y vuelva a intentarlo. Esta función no funciona cuando su código tiene errores de análisis.
krowe2
¿Cómo generar una lista de tareas pendientes en xamarin?
Manthan

Respuestas:

158

Haga que "tres marcadores de comentarios únicos"

En C # es ///

que por defecto escupe:

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

Aquí hay algunos consejos sobre cómo editar plantillas de VS.

Michael Paulukonis
fuente
7
Y en VB.NET son comillas simples triples (como se menciona en otra respuesta)
peSHIr
1
Eso es bastante bueno, no sabía sobre eso
Brendan
El "Generar comentarios de documentación XML para ///" no funcionará si la línea anterior sin espacios en blanco comienza con "///"
Moon Waxing
¿Es posible hacer esto automáticamente en cada método, propiedad y variable? ¿Incluso si el código ya existe?
Robin Bruneel
enlace de consejos arreglado de nuevo . ¡Maldito seas, web unidireccional!
Michael Paulukonis
48

GhostDoc !

Haga clic con el botón derecho en la función, seleccione "Documentar esto" y

private bool FindTheFoo(int numberOfFoos)

se convierte en

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

(sí, todo está autogenerado).

Tiene soporte para C #, VB.NET y C / C ++. Se asigna de forma predeterminada a Ctrl+ Shift+ D.

Recuerde: debe agregar información más allá de la firma del método a la documentación. No se limite a la documentación generada automáticamente. El valor de una herramienta como esta es que genera automáticamente la documentación que se puede extraer de la firma del método, por lo que cualquier información que agregue debe ser información nueva .

Habiendo dicho eso, personalmente prefiero cuando los métodos son totalmente autodocumentados, pero a veces tendrás estándares de codificación que exigen documentación externa, y luego una herramienta como esta te ahorrará una gran cantidad de mecanografía.

Rasmus Faber
fuente
16
Y este es exactamente el tipo de "documentación" que detesto. Simplemente agrega bytes sin decirme nada que los nombres de métodos y parámetros no me dicen ya. No hagas esto, sin editar el comentario en algo valioso ... :-(
peSHIr
12
Por supuesto, debería editarlo para agregar información. Pero como plantilla es muy agradable.
Rasmus Faber
3
@Rasmus: Es una plantilla que, para una buena documentación, debe desecharse por completo y reescribirse de todos modos, ya que no tiene contenido informativo. Así que en realidad es más esfuerzo que si estuviera en blanco.
Joey
35
///

es el atajo para obtener el bloque de comentarios de la descripción del método. Pero asegúrese de haber escrito el nombre de la función y la firma antes de agregarla. Primero escriba el nombre y la firma de la función.

Luego, encima del nombre de la función, simplemente escriba ///

y lo obtendrás automáticamente

ingrese la descripción de la imagen aquí

Bimzee
fuente
4
bonita característica inusual de una publicación, tu animación.
n611x007
1
¿Cómo hiciste eso? Me gusta esa respuesta. Nunca había visto esto antes.
Matthis Kohli
2
es agradable. una adición serían los parámetros de la función.
amit jha
19

Visual Assist también tiene una buena solución y es muy personalizable.

Después de ajustarlo para generar comentarios de estilo Doxygen, estos dos clics producirían:

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

}

(Bajo la configuración predeterminada, es un poco diferente).


Editar: la forma de personalizar el texto del 'método de documento' es en VassistX-> Opciones de asistencia visual-> Sugerencias, seleccione 'Editar fragmentos de código VA', Idioma: C ++, Tipo: Refactorización, luego vaya a 'Método de documento' y personalice. El ejemplo anterior es generado por:

va_doxy

Ofek Shilon
fuente
Comparta cómo configuró esto en VA
Damian
Elaborado en la respuesta. Espero que esto ayude.
Ofek Shilon
Para insertar el fragmento: con el cursor en el nombre / firma del método, alt + shift + q> "método del documento"
Andrew
13

Normalmente, Visual Studio lo crea automáticamente si agrega tres marcadores de comentario únicos encima de lo que le gusta comentar (método, clase).

En C # esto sería ///.

Si Visual Studio no hace esto, puede habilitarlo en

Opciones-> Editor de texto-> C # -> Avanzado

y comprobar

Genere comentarios de documentación XML para ///

descripción en la foto

Domysee
fuente
3

En Visual Basic, si crea su función / sub primero, luego en la línea de arriba, escribe 'tres veces, se generará automáticamente el xml relevante para la documentación. Esto también aparece cuando pasa el mouse por encima en intellisense y cuando está utilizando la función.

Paul Ishak
fuente
2

Puede utilizar fragmentos de código para insertar las líneas que desee.

Además, si escribe tres comillas simples ('' ') en la línea sobre el encabezado de la función, insertará la plantilla de encabezado XML que luego podrá completar.

Estos comentarios XML pueden ser interpretados por software de documentación y se incluyen en el resultado de la compilación como un archivo assembly.xml. Si conserva ese archivo XML con la DLL y hace referencia a esa DLL en otro proyecto, esos comentarios estarán disponibles en intellisense.

DCNYAM
fuente
Eso es VB.NET: en C # es ///
peSHIr
0

Estoy trabajando en un proyecto de código abierto llamado Todoc que analiza palabras para producir una salida de documentación adecuada automáticamente al guardar un archivo. Respeta los comentarios existentes y es realmente rápido y fluido.

http://todoc.codeplex.com/

Mathias Lykkegaard Lorenzen
fuente