Page 1 of 1

Documentador automático de código?

PostPosted: Mon Sep 21, 2020 2:31 pm
by AngelSalom
Vuelvo con consultas, tenéis alguna experiencia con documentadores atomáticos de código?
Estoy testeando doxygen y naturaldocs ahora mismo con resultados bastante prometedores.

Re: Documentador automático de código?

PostPosted: Tue Sep 22, 2020 3:10 pm
by Otto
Hello Angel,

Gracias por tu aporte. Miré los productos.
Recibí algunas sugerencias para mi propio programa "HARBOURINO".


En "HARBOURINO" utilizo

|- para comentarios

en "incluir archivos" - esto no se muestra en el archivo prg de la versión "parcheada".

VS-Code puede abrir enlaces http directamente desde el editor.
Creo que puedo agregar aún más comentarios de esa manera.

Gracias nuevamente por abordar la documentación del código fuente.

Best regards,
Otto
La documentación se trata.

Re: Documentador automático de código?

PostPosted: Tue Sep 22, 2020 3:55 pm
by AngelSalom
Mi intención es darle un uso interno para documentar las clases de uso genérico.
Con Natural docs (https://naturaldocs.org/) estoy consiguiendo un resultado muy bueno simplemente ajustando algunos parámetros de la configuración :

Image

Re: Documentador automático de código?

PostPosted: Tue Sep 22, 2020 6:22 pm
by cnavarro
Gracias Angel por compartirlo
Qué configuración es necesaria para utilizarla con Harbour?

Re: Documentador automático de código?

PostPosted: Wed Sep 23, 2020 6:25 am
by AngelSalom
En Natural docs básicamente hay que crear un nuevo lenguaje con ciertas directivas para que "entienda" los comentarios de harbour.
En mi caso me bastó con modificar languages.txt y añadir :
Code: Select all  Expand view

Language: Harbour
 
   Extensions: prg inc ch c
   Shebang String: Harbour
   Line Comment: //
   Block Comment: /* */
   Member Operator: ::
   Case Sensitive: No


Aquí un pequeño prg con comentarios de ejemplo:
Code: Select all  Expand view
/* CLASS: TClasePruebas
    Este es la descripción de una clase que no hace nada
    Ejemplo de uso :
    --- Code
    Local oClas:=TClasePruebas():New()
    oClas:Activate(.T.)
    oClas:End()
    ---

*/


#include "fivewin.ch"

CLASS TClasePruebas FROM TWindow
    METHOD New() CONSTRUCTOR
    METHOD Activate(lNow)
    METHOD End()
END CLASS

// Group: EXPORTED METHODS
/* FUNCTION: New()
    Inicia la clase*/

METHOD New() CLASS TClasePruebas
Return (nil)

/* FUNCTION: Activate(lNow)
    Activa la clase

Parámetros:

   lNow - Activa la clase inmediatamente

Devuelve:

   nil

*/


METHOD Activate(lNow)
Return (nil)

// Group: PROTECTED METHODS

/* FUNCTION: End()
    Destruye el objeto

*/

METHOD End() CLASS TClasePruebas
Return (nil)

// Group: OTROS Datos

/*
Database Column: MyColumn

    --- Prototype ---
    TopicID INTEGER PRIMARY KEY NOT NULL
    -----------------

    Description of MyColumn
*/