logo MoniaSuite

Moniteur d'Initiation à l'Algorithmique

Monia Suite version 0.38.97 - novembre 2012


Modules additionnels

Nommage et arborescence - Descripteur - Distribution et installation - Suppression



MoniaSuite supporte l'ajout de modules additionnels (plugins). Sachant que MoniaPL utilise le compilateur FPC (Free Pascal Compiler) pour transformer le Pseudo-Langage en code exécutable, le code des modules additionnels doit être compatible avec ce compilateur.

Un module additionnel est en général constitué d'un ensemble de définitions liées à un domaine spécifique : protocole de communication, périphérique matériel, …

Cet ensemble de définitions peut regrouper des constantes, des types de données, des procédures et des fonctions qui viendront étendre les capacités du Pseudo-Langage reconnu par les outils Monia.

Un plugin Monia est constitué d'un fichier descripteur d'extension obligatoire .dta, d'une documentation HTML et du code d'implémentation de ses ressources. Il peut être complété par des exemples de programmes.

Après son installation, la prise en compte d'un plugin est réalisée par un simple redémarrage de MoniaOrg et de MoniaPL…



Nommage et arborescence

Par convention, chaque module additionnnel est identifié par un préfixe en majuscules si possible court mais explicite suivi d'un caractère de soulignement (underscore).

Exemples : LS_ pour liaison série, JS_ pour joystick (manette de jeu), …

Important : Ce préfixe doit impérativement être spécifié comme premier élément de la rubrique DOC (voir ci-dessous) pour que le module soit activable au sein de MoniaPL. Dans le cas contraire, le module, bien que présent dans le menu d'Aide, serait absent de la liste de sélection du menu Exécuter

Un module additionnnel doit par ailleurs respecter une arborescence spécifique pour l'organisation des fichiers qu'il contient, soit pour le plugin d'indicatif XYZ_ et de répertoire de base Plugins/XYZ/ :

    Plugins/XYZ/XYZ_Plugin.dta                  # descripteur du module 
                doc/XYZ_Plugin.html             # page de documentation HTML
                    images/*.png                # images de documentation HMTL
                exemples/XYZ_*.pl               # exemples de programmes
                fpc/units/plugins/XYZ_*.inc     # source Pascal à inclure
                                  XYZ_*.o       # modules objets
                                  XYZ_*.ppu     # unité Pascal précompilée
                src/*                           # sources du plugin
		

À noter que si le module s'appuie sur des ressources proposées par la RTL (Run Time Library) de FPC, il peut être réduit au fichier descripteur accompagné de la documentation… Cette situation permet donc de franciser simplement des parties de la RTL pour enrichir le Pseudo-Langage.



Contenu du fichier descripteur

Le fichier .dta de description d'un plugin Monia décrit les fonctionnalités du module : types de données, constantes, bibliothèque de procédures et fonctions, documentation, et contraintes d'édition de liens...

La rédaction de ce fichier est contrainte par les règles suivantes :

Syntaxe pour chacune des rubriques :

Les expressions rationnelles (RegExp) sont utilisées par la colorisation syntaxique de l'éditeur MoniaPL.



Distribution et installation d'un module additionnel

Un module additionnel doit impérativement respecter l'organisation des fichiers décrite plus haut. Cette arborescence doit être compressée au format ZIP ou TAR.GZ pour distribution.

Sous Linux et Windows, l'archive peut être directement décompressée dans le répertoire d'installation de MoniaSuite.

Sous Mac OS X, TODO

Note aux développeurs : pour la mise au point d'un module, MoniaPL peut être lancé avec l'argument "-v". Cette option ouvre un terminal de suivi d'exécution bien pratique qui permet notamment de suivre l'intégralité des messages générés par la chaîne de développement… :-)



Suppression d'un module additionnel

Un module additionnel peut être facilement désactivé, sans rien désinstaller, via le menu  Exécuter | Modules liés  qui permet de sélectionner un à un les modules disponibles.

Une fois désactivé, le plugin est toujours pris en charge par le système de colorisation de l'éditeur, sa documentation est toujours accessible, mais son code n'est plus lié lors de la fabrication des programmes.

Pour désinstaller définitivement un plugin, il faut supprimer à minima son fichier .dta (les éventuels fichiers .inc, .o et .ppu qui lui sont associés peuvent aussi être enlevés du sous-répertoire fpc/units/plugins, mais attention à ne pas supprimer d'autres fichiers par erreur…).