2008-10-25 4 views

Respuesta

6

Eche un vistazo a SynProject, una herramienta de código abierto escrita en Delphi.

Fue diseñado para manejar un flujo de trabajo de documentación completo, desde las especificaciones hasta las notas de la versión, incluidas las pruebas, la arquitectura y el diseño; y, por supuesto, hay un analizador Delphi integrado para generar documentación de arquitectura a partir del código fuente existente de Delphi.

Para el documento de arquitectura, el código fuente puede extraer comentarios (a la vez PasDoc) y luego insertar este texto en el documento de Arquitectura principal (con diagramas de jerarquía de clases y dependencias de unidades).

Escribe un archivo de texto sin formato con una sintaxis tipo wiki en un editor de texto dedicado, luego SynProject crea documentos de Word bien formateados a partir de él. Algunos asistentes están disponibles para acceder al contenido. Pero dado que se almacena como un archivo simple, múltiples programadores pueden escribir en él, usando cualquier herramienta SCM (SVN, Fossil ...).

Por ejemplo, actualmente lo uso para escribir documentación de mantenimiento para una aplicación Delphi grande y antigua (aproximadamente 2,000,000 de líneas de código escritas en Delphi 5 y 6), sin documentación previa disponible. Usted describe los cambios realizados en el código (al citar la unidad/clase/método), luego la herramienta actualizará todas las documentaciones para reflejar y rastrear esas modificaciones. SynProject fue diseñado para cumplir con algunas reglas de regulación muy "delicadas" (IEC 62304), pero puede ser utilizado para cualquier proyecto debido a su diseño único "plano".

Nota: Estoy publicando esto mucho tiempo después de la pregunta, porque SynProject no existía en este momento, y puede valer la pena mirarlo. Este hilo has been defined as a reference for that question.

5

Delphi + JavaDoc = DelphiCodeToDoc

+1

Intenté esto y se colgó y el archivo contenía un procedimiento anónimo. – awmross

5

Por lo que yo sé, no hay ninguna herramienta fácilmente compatible con Microsoft Castillo de arena - al menos hasta que alguien realmente molesta a escribir uno, para modificar una existente, o para crear una cadena de herramientas para transformar correctamente la salida.

He usado personalmente PasDoc con gran éxito. Recomiendo construir la última versión de SVN, ya que la versión actual de vez en cuando provoca complicadas definiciones de interfaz.

+1

También uso PasDoc y lo ejecuto desde un script de compilación Ant llamado por CruiseControl, FWIW. –

+0

Richard, ese es un buen punto ya que muestra que se puede automatizar a través de una compilación. – Pauk

5

Probar: Doxygen, Pas2Dox

+0

Lo uso con éxito en los últimos cinco años o así, sigue siendo una solución genial y simple. – mjn

+0

funciona muy bien (y se parece a la documentación para el proyecto c y C++ que también usamos) – sdu

+3

Al principio no estaba claro, así que quería agregar un comentario a otros que estos dos productos funcionan juntos. Pas2Dox parece ser un complemento para Doxygen, añadiendo soporte de Delphi. –

1

castillo de arena necesita para obtener acceso a las asambleas con el fin de generar la documentación que es, lo que significa que sólo es aplicable para los lenguajes .NET (aunque no estoy seguro de poder Delphi. Red). Sin embargo, Delphi 2007 y 2009 tiene una documentación XML en línea muy similar a C#. Cuando se activa la opción 'generar documentación XML' en las opciones del proyecto, se compilará la documentación XML basada en estos comentarios. XSLT se puede usar para generar cualquier formato de documentación que necesite (este es el bit más difícil).

1

DelphiCodeToDoc también tienen una línea de comandos para utilizarlo con la herramienta de integración continua (por ejemplo).

0

La pregunta es bastante antigua, pero tuve el mismo problema hoy y encontré esta publicación. Delphi 2007 permite siguiente sintaxis, que parece ser igual a las de C# documentaciones:

/// <summary> 
/// Summary of the function/class 
/// </summary> 
/// <param name="param1">Description of the parameter param1</param> 
/// <param name="param2">Description of the parameter param2</param> 
/// <param name="param3">Description of the parameter param3</param> 
/// <returns>Description of the return value</returns> 
function test(param1, param2, param3: string): string; 

Para <summary>, no parece haber una posibilidad para permitir saltos de línea. <br /> no funciona.

+0

Probar < br/> –

Cuestiones relacionadas