Discussion de l'article "Documentation générée automatiquement pour le code MQL5"

 

Un nouvel article Documentation générée automatiquement pour le code MQL5 a été publié :

La plupart des codeurs Java connaissent la documentation générée automatiquement qui peut être créée avec JavaDocs. L'idée est d'ajouter des commentaires dans le code de manière semi-structurée qui peuvent ensuite être extraits dans un fichier d'aide facile à naviguer. Le monde du C++ dispose également d'un certain nombre de générateurs automatiques de documentation, SandCastle de Microsoft et Doxygen étant les deux principaux. L'article décrit l'utilisation de Doxygen pour créer un fichier d'aide HTML à partir de commentaires structurés en code MQL5. L'expérience a très bien fonctionné et je pense que la documentation d'aide que Doxygen produit à partir du code MQL5 apportera une grande valeur ajoutée.

C'est dans la création d'un fichier d'aide pour les grands projets que Doxygen est le plus puissant. Plus d'une centaine de fichiers .mq5 et .mqh, dont beaucoup sont interdépendants, sont distribués avec MetaTrader 5 dans le dossier MQL5.

J'ai écrit un script utilitaire MetaquotesCommentsToDoxygen.mq5 (inclus dans le fichier zip ci-joint) qui effectue les conversions de base des commentaires Metaquotes vers Doxygen décrites ci-dessus. Il ne s'agit pas d'une étape essentielle pour produire un fichier d'aide, mais elle permet de démontrer l'utilité des fonctions de documentation supplémentaires de Doxygen.

La procédure que j'ai utilisée pour produire un fichier d'aide MQL5 codeset est la suivante

  • Copier le dossier et les sous-dossiers de MQL5 dans MQL5/files
  • Supprimer MQL5/files/MQL5/Include/Strings/string.mqh - pour une raison inconnue, ce fichier a empêché Doxygen de terminer son analyse de code

Facultatif pour la documentation supplémentaire à partir de commentaires structurés :

  • À partir du dossier MQL5/Files, exécutez la commande Windows/DOS xcopy *.mq* c:\ /S/L > MQL5codeList.txt
  • Exécutez le script MetaquotesCommentsToDoxygen.mq5 sur n'importe quel graphique

La documentation d'aide qui en résulte est de bonne qualité et démontre rapidement son utilité - Les figures 9 à 12 sont un exemple de ce que vous pouvez voir


Figure 9. Liste de classe générée par Doxygen

Auteur : Paul

 

Bien joué ! Bien qu'il ne convienne que si vous vendez des bibliothèques MQL5 :(

 

Excellent article !

 
Puis-je l'utiliser avec MQL4 ? C'est très proche du C après tout, et doxygen est censé le supporter aussi.
 
gordon   :
Puis-je l'utiliser avec MQL4 ? C'est très proche du C après tout, et doxygen est censé le supporter aussi.

Oui, cela fonctionne, Gordon. Il y a une option dans le deuxième écran du mode assistant pour "optimiser pour la sortie C ou PHP". Évidemment, toutes les fonctions MQL4 sont globales, donc il n'y a pas d'avantages du groupement de classes MQL5.

J'ai joint une capture d'écran ci-dessous de la sortie de LibOrderReliable en utilisant l'option C. LibOrderReliable est une enveloppe très bien documentée pour les fonctions de commerce MQL4 afin de les rendre plus sûres. Pour que la documentation apparaisse dans la sortie Doxygen, les commentaires dans le code auraient besoin d'ajustements similaires à ceux que j'ai faits sur le code MQL5.

Paul

http://p aulsfxrandomwalk.blogspot.com/

 

Oh, je vois ce que vous voulez dire à propos des classes. Cela ne vaut donc peut-être pas vraiment la peine de l'utiliser pour MQL4.

 
Merci pour cet article ! Exactement ce dont j'avais besoin. Et peut-être qu'il y a des générateurs avec le style msdn ?
 

Il est important de spécifier l'encodage correct lors de la création de la documentation pour les programmes contenant des commentaires en russe.

Sinon, vous risquez d'obtenir des carrés au lieu de commentaires en russe :

Par défaut, dans Doxygen, dans les options du projet (Expert->Projet), l'option DOXYFILE_ENCODING est fixée à UTF-8,

il est donc préférable, lors de la préparation de la documentation, de créer un dossier séparé avec des fichiers sauvegardés en encodage UTF-8 :

Le résultat est le suivant :

Une autre option importante, OUTPUT_LANGUAGE, avec la langue spécifiée (russe) vous permet de créer des menus et des descriptions en russe :

La documentation facilite l'étude de la structure et des propriétés des programmes ; essayez donc de joindre la documentation aux codes sources.

Автоматическое создание документации к программам на MQL5
Автоматическое создание документации к программам на MQL5
  • 2009.11.23
  • Paul
  • www.mql5.com
Большинство Java программистов знакомы с автоматическим созданием документации, которая может быть создана при помощи программы JavaDocs. В мире C++ также есть несколько автоматических генераторов документации, одними из лидеров являются программы Microsoft's SandCastle и Doxygen. В статье описано, как можно использовать программу Doxygen для создания структурированных файлов справки HTML для программ, написанных на MQL5. Результаты данной работы убедили меня использовать Doxygen (или похожие программы) в будущем для создания документации к любому моему коду на MQL5, это значительно облегчает его понимание и использование.
 
Automated-Trading писал(а) # :

Par conséquent, lors de la préparation de la documentation, il est préférable de créer un dossier séparé avec les fichiers enregistrés en encodage UTF-8 :

Il est plus facile de définir INPUT_ENCODING comme windows-1251 dans l'onglet Input. Et aucun problème avec les encodages
 
GarF1eld писал(а) # :
Il est plus facile de définir INPUT_ENCODING comme windows-1251 dans l'onglet Input. Et il n'y a pas de problèmes avec les encodages

Bien sûr, ce serait plus simple.

Mais pour une raison quelconque, doxygen (j'ai la version 1.6.2) insère dans tous les fichiers

<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>

bien que dans les paramètres

c'est-à-dire que les fichiers sont dans l'encodage requis, et l'affichage peut être corrigé si l'on remplace dans tous les fichiers html par :

<meta http-equiv="Content-Type" content="text/xhtml;charset=windows1251"/>

Mais la question est de savoir comment le désactiver pour qu'il le fasse de lui-même.
 
Honnêtement, je n'ai pas remarqué, car je suis assez satisfait de l'UTF-8, et lorsque j'ai eu un problème avec les crocoblastes, j'ai simplement changé INPUT_ENCODING.