O objetivo do ProtheusDOC é autodocumentar os programas-fontes escritos em Adv/PL.
O ProtheusDOC, é uma forma estruturada de escrever comentários, sobre funções, classes, métodos ou qualquer outro elemento de um programa-fonte Adv/PL, que descreve a utilização deste elemento.
Inicialmente os documentos serão gerados no formato HTML através de modelos customizáveis.
Estes modelos serão criados utilizando-se da tecnologia desenvolvida pela Apache Velocity.
A estrutura básica é formada por um bloco de comentários, com um identificador especial no seu início (/*/{Protheus.doc}
), seguido de um comentário sucinto, seguido ou não por marcadores especiais. Algo semelhante a:
/*/{Protheus.doc} areaQuad
Efetua o cálculo da área de alguns quadriláteros.
@author José Silva
@since 20/11/2012
@version P10 R4
@param nBase, numérico, Medida do lado ou da base
@param [nAltura], numérico, Medida da altura
@param [nBaseMenor], numérico, Medida da base menor (trapézios)
@return numérico, Área calculada
/*/
User Function areaQuad(nBase, nAltura, nBaseMenor)
...
Uso
Adicione um bloco de comentário do ProtheusDOC no elemento que você deseja descrever em seu programa-fonte.
Você pode adicionar um comentário rapidamente utilizando a combinação, CTRL + ALT + D
, mantendo o cursor sobre o nome da função, por exemplo.
Em seguida, para iniciar o assistente de geração do ProtheusDOC, clique em “Arquivo” > “Novo” > “Outras...”
. Expanda a seção “TOTVS Tools”
, escolha a opção “ProtheusDoc Generator”
e clique em “Avançar >”
(Next >
).
Localize e selecione o programa-fonte que será documentado em seguida clique em “Avançar >”
(Next >
).
Clique em “Concluir”
(Finish
) para gerar a documentação utilizando o template padrão e o local padrão de exportação (C:\export
).
Localize a pasta de exportação. Ela apresentará a mesma estrutura do projeto onde o programa-fonte está localizado.
Abra o arquivo HTML em seu navegador preferido para ler a documentação gerada.
Caso deseje, você pode criar um template customizado adicionando, removendo e/ou alterando a estrutura utilizando o modelo do Velocity.
*IMPORTANTE* O arquivo do template deve estar com o encoding UTF-8.
O arquivo pdoc.vm do template padrão pode ser obtido neste anexo.
Ao gerar a nova documentação, selecione o template customizado e/ou defina um local alternativo para a exportação da documentação.
Da mesma forma anterior, localize a pasta de exportação alternativa.
Abra o arquivo HTML em seu navegador preferido para ler a documentação customizada que foi gerada.
Marcações aceitas
As marcações aceitas pelo ProtheusDOC até o momento são:
Marcação | Parâmetros | Descrição da marcação |
---|---|---|
@accessLevel | Nível de acesso. | |
@author | name-text | Texto com o nome do autor. |
@build | Indica qual a versão do servidor requerido (similar a "@version"). | |
@country | Indica para qual país o elemento foi programado. | |
@database | Compatibilidade com base de dados. | |
@description | Cria uma entrada de descrição, para melhor detalhamento da funcionalidade. | |
@deprecated | deprecated-text | Texto com comentários sobre a depreciação, como por exemplo, motivo e alternativa que deve ser utilizada. |
@example | Cria uma entrada no tópico “Exemplos”. | |
@sample | O mesmo que "@example". | |
@language | Idioma para o qual elemento está customizado. | |
@link | Cria uma ligação (link) para o target especificado (ver notas). O atributo label será apresentado ao desenvolvedor no lugar da URI e é opcional. Esta marcação deve ser utilizada como complemento nas demais marcações. | |
@obs | Adiciona uma observação. | |
@param | parameter-name parameter-type description | Adiciona uma especificação de parâmetro (de função ou método), identificando-o como parameter-name. |
@protected | Indica que o método deve ser visto com escopo de “não publico”. | |
@return | return-type description | Especifica o retorno (de função ou método). |
@systemOper | Indica qual o Sistema Operacional requerido. | |
@see | see-text | Adiciona uma entrada “Veja também”. |
@since | Identifica a partir de quando, uma determinada funcionalidade foi implementada. | |
@table | table-name [ , another-table-name ]* | Identifica quais tabelas são utilizadas pela classe, método ou função. |
@todo | Identifica uma tarefa a ser realizada. | |
@version | Indica para qual versão de produto ou mesmo servidor, que uma determinada funcionalidade requer. |