Généralités
Lorsqu'ils commentent le code source, les développeurs Adélia peuvent signaler qu'un commentaire doit être intégré dans la documentation technique à l'aide d'une syntaxe dédiée appelée "annotation".
Selon les types de programmes, les annotations doivent être insérées à un endroit spécifique du code source :
Pour les programmes Visual : qu'il s'agisse d'un programme, d'une procédure ou d'une règle de gestion, les annotations doivent impérativement être placées dans les blocs de déclaration (
DECL PGM/DECLARATION
), avant l'utilisation de l'ordre PARAM.Pour les programmes Adelia : par souci de lisibilité, les annotations doivent être placées en début de source, et dans tous les cas avant l'ordre RECEVOIR.
Pour les classes : les annotations ne sont pas supportées dans les sources des classes.
Néanmoins, pour les classes référencées dans des programmes Visual, AdeliaDoc exploite l'option de classe et d'attribut *SER_DESC pour insérer une description personnalisée lors de la génération de la documentation de la classe.
Syntaxe
L'ensemble des annotations AdeliaDoc répondent aux même règles de syntaxe, telles que décrites ci-dessous :
- Une annotation est constituée d'un mot clé, et d'un ou plusieurs paramètres.
- Un mot clé commence toujours par le digramme "
*@
". - Le caractère "
:
" est utilisé comme séparateur entre le mot clé et les paramètres ; des caractères "blanc
" peuvent éventuellement précéder et succéder le caractère séparateur. - Le caractère "
,
" est utilisé comme séparateur de paramètres ; il est déconseillé d'insérer des caractères "blanc
" avant ou après le caractère séparateur. - Un mot clé n'est pas sensible à la casse, mais ses paramètres oui.
- Une annotation doit impérativement figurer en début de ligne (il est cependant possible de la faire précéder de caractères "
blanc
" ou "tabulation
" ). - Les paramètres d'annotation correspondant à des descriptions textuelles peuvent être saisis sur plusieurs lignes, dans ce cas :
- le digramme "
*@
" devra marquer le début de la nouvelle ligne, - s'il s'agit de conserver la mise en forme multiligne dans le support, le trigramme "
*@|
" devra dans ce cas marquer le début de la nouvelle ligne.
- le digramme "
- Exemples :
- Annotation simple avec un paramètre :
*@deprecated : 3.2.5
Annotation avec un un paramètre multiligne - dans cet exemple, la description apparaîtra sous la forme de deux lignes dans le support de documentation :
*@description : Sélection d'un code article non consigné.
*@|Le paramètre P_DISP_ALL doit être initialisé à la valeur 0
*@pour filtrer sur les articles non consignés et actifs.
Résultat obtenu dans la documentation :Sélection d'un code article non consigné. Le paramètre P_DISP_ALL doit être initialisé à la valeur 0 pour filtrer sur les articles non consignés et actifs.
- Annotation simple avec un paramètre :
Tableau descriptif des annotations supportées
Chacune des annotations référencées ci-dessous peut être utilisée indifféremment dans un bloc de déclaration de programme ou de procédure.
Annotation | Rôle |
---|---|
*@adeliadoc
| Permet d'étiqueter (i.e. taguer) une section afin de pouvoir appliquer des règles de filtrage lors de la production de la documentation |
*@description
| Description de la section |
*@param
| Description d'un paramètre de section |
*@field
| Description d'un champ associé à un paramètre de type "Liste " |
*@version
| Indique la version d'une section |
*@author
| Nom du développeur de la section |
*@since
| Indique depuis quelle version la section a été ajoutée |
*@date
| Date de dernière modification de la section |
*@deprecated
| Indique que la section est dépréciée |
*@index
| Permet d'ajouter une entrée d'index associée à la section dans l'index global de la documentation |
Il est entendu que toutes les annotations sont optionnelles. En sachant que pour une section donnée, lorsqu'une partie ou la totalité des annotations attendues n'ont pas été saisies, quand cela est possible, et si le paramétrage d'AdeliaDoc l'autorise, des valeurs par défaut issues de l'analyse du source et des informations de description des programmes Adélia sont utilisées en lieu et place pour produire la documentation.
Description détaillée des annotations
Dans la suite du document :
le terme "markup" indique qu'il est possible d'utiliser certains éléments de la syntaxe reStructuredText ou certains rôles Sphinx pour mettre en forme un contenu textuel, et principalement pour ajouter des liens vers d'autres sections de la documentation.
Il est néanmoins fortement déconseillé de faire un usage intensif et inapproprié d'éléments de mise en forme, en sachant que la bonne restitution dans la documentation produite ne peut être totalement garantie.Dans le cadre de l'ajout de liens hypertexte, AdeliaDoc impose une codification particulière pour identifier les sections, qu'il est nécessaire de respecter si vous souhaitez utiliser le rôle "
:ref:
" ad hoc :Identification d'une section programme : l'identifiant est le nom du programme lui-même.
*@description: ce programme correspond à une déclinaison du calcul de marge par rapport à la version proposée dans le programme :ref:'COMPUTE_PROFIT'.
Identification d'une section procédure : l'identifiant est la concaténation du nom du programme et du nom de la procédure sous la forme PROGRAM.PROC.
*@description: ce programme correspond à une déclinaison du calcul de marge par rapport à la version proposée dans la procédure :ref:'COMMONSPROCS.PROC_PROFIT'.
Identification d'une section classe : l'identifiant de la classe s'exprime de la façon suivante : class_CLASSNAME :
*@description: ce programme utilise la classe :ref:'class_ORDER' pour créer une commande.
La notion de "valeur par défaut" correspond à la provenance de la donnée de substitution lorsque l'annotation correspondante n'a pas été renseignée par le développeur (en tenant compte des règles de substitution issues des paramètres de configuration d'AdeliaDoc)
*@adeliadoc
Rôle | Permet d'étiqueter (i.e. taguer) une section afin notamment d 'identifier des catégories de public visés. En lien direct avec le paramètre de génération filter , qui exploite cette annotation pour inclure/exclure des sections lors de la génération d'une documentation. Pour plus de détails, reportez-vous à la page d'aide du paramètre filter des paramètres d'appel AdeliaDoc. |
---|---|
Sections | Programme/procédure |
Paramètres |
|
Markup | Non |
Remarques | L'annotation |
Exemples |
|
*@description
Rôle | Permet de décrire une section à l'attention de l'utilisateur final |
---|---|
Section | Programme/procédure |
Paramètres | Description elle-même |
Markup | |
Valeur par défaut | Désignation du programme |
Exemples |
|
*@param
Rôle | Permet de décrire un paramètre de section, associé aux ordres PARAM ou RECEVOIR. |
---|---|
Section | Programme/procédure |
Paramètres | Quatre paramètres sous la forme :
|
Markup | Oui pour le paramètre |
Valeur par défaut | Dans tous les cas, le générateur exploite les ordres PARAM ou RECEVOIR du L4G pour produire ou compléter la documentation associée au paramètre, en générant automatiquement les informations relatives au type, à la longueur et aux dimensions de la variable. |
Remarques |
|
Exemples |
|
*@field
Rôle | Permet de décrire un champ associé à un paramètre de type |
---|---|
Section | Programme/procédure |
Paramètres | Trois paramètres sous la forme :
|
Markup | Oui pour le paramètre |
Valeur par défaut | Dans tous les cas, le générateur exploite la définition de la |
Remarques |
|
Exemple | Exemple d'un paramètre liste avec trois champs :
|
*@version
Rôle | Indique le numéro de version de la section |
---|---|
Section | Programme |
Paramètre | Version (format libre) |
Markup | Non |
Valeur par défaut | Version de l'objet Adelia |
Exemple |
|
*@author
Rôle | Indique le nom du développeur |
---|---|
Section | Programme/procédure |
Paramètre | Nom du développeur |
Markup | Non |
Valeur par défaut | Nom du concepteur de l'objet Adélia |
Exemple |
|
*@since
Rôle | Permet de préciser depuis quelle version l'élément a été ajouté. |
---|---|
Section | Programme/procédure |
Paramètre | Version en question (format libre) |
Markup | Non |
Valeur par défaut | Non supportée |
Exemple |
|
*@date
Rôle | Permet d'indiquer la date de dernière modification de la section. |
---|---|
Section | Programme/procédure |
Paramètre | Date en question (format libre) |
Markup | Non |
Valeur par défaut | Date de modification de l'objet Adélia |
Remarques | L'utilisation et l'exploitation de cette annotation dans la documentation pourrait, dans certaines situations, ne pas correspondre au comportement souhaité. C'est pourquoi le paramètre date_annotation du fichier de configuration permet de forcer la valeur par défaut (issue des informations du programme), en lieu et place du paramètre saisi. |
Exemple | *@date: 05/05/2021 |
*@deprecated
Rôle | Permet d'indiquer que l'entité est dépréciée |
---|---|
Section | Programme/procédure |
Paramètres | Deux paramètres sous la forme :
|
Markup | Oui pour le paramètre <description> |
Valeur par défaut | non supportée |
Remarques | AdeliaDoc utilise la directive Sphinx idoine pour générer cette annotation. |
Exemples |
|
*@index
Rôle | Permet d'indexer la section et de qualifier la façon doit elle doit apparaître dans l'index global de la documentation. |
---|---|
Section | Programme/procédure |
Paramètres | Valeurs d'indexation (cf. les remarques ci-dessous) |
Markup | Non |
Valeur par défaut | Nom de l'objet section |
Remarques |
|
Exemples |
|