Informatique

Gimp commentaire multiligne TinyScheme

Tout d’abord, comment Gimp accepte un commentaire multiligne en langage TinyScheme pour les scripts de la console Script-Fu ?

Ainsi, ouvrons une parenthèse de programmation dans le langage de script de l’éditeur open source d’images Gimp. D’autant plus que parenthèses et liste font penser au langage d’intelligence artificielle Lisp[1]Lisp : list processing. Par contre, il faudrait être fou pour mettre au point du Lisp — dialecte TinyScheme[2]TinyScheme : implémentation minimale de Scheme pour être embarquée dans Gimp — directement dans la console Script-Fu de Gimp.

Pour toutes ces raisons, il convient au préalable de saisir vos scripts Lisp dans l’éditeur open source de textes NotePad++ pour la coloration syntaxique et l’alignement des parenthèses.

NotePad++ menu > « Langage » > « S » > « Scheme[3]Scheme : dialecte Lisp » :

#| Returns the GIMP version.
(gimp-version)
 |# ;-> ("2.10.28")

Les trois lignes ci-dessus sont toutes des commentaires TinyScheme :

  • Premièrement, un commentaire multiligne de trois lignes sous forme de bloc entre « #| » et « |# » contenant des retours-charriots ;
  • Deuxièmement, un commentaire mono-ligne commençant par « ; » jusqu’à la fin de ligne.

1. Télécharger les commentaires multilignes pour Gimp

D’abord, télécharger l’archive zippée GimpLambdaLib.zip version 1.0.0

Par ailleurs, l’archive zippée GimpLambdaLib.zip de 208 Ko contient :

  • Premièrement, GimpLambdaLib\scripts\0srfi-030-comment.scm 9 Ko 211 lignes ;
  • Deuxièmement, tous les scripts *.scm font partie de la bibliothèque gratuite open source Gimp Lambda Lib pour Gimp 2.10.28.

Plus précisément, .scm est l’extension de fichier en langage Scheme, dans son implémentation minimale TinyScheme embarqué dans Gimp.

  1. Premièrement, fermer Gimp s’il est ouvert.
  2. Deuxièmement, dans l’explorateur de fichiers, copier GimpLambdaLib\scripts\0srfi-030-comment.scm dans « C:\Users\Chess\AppData\Roaming\GIMP\2.10\scripts\ » en ayant changé « Chess » par votre nom de compte utilisateur Windows 10.
  3. Troisièmement, lancer Gimp.

Dans l’interface graphique de Gimp :

  1. Premièrement, Gimp menu « Filtres » > « Script-Fu » > « Console« .
    La fenêtre « Console Script-Fu » doit s’ouvrir sans message d’erreurs.

En premier lieu, l’ouverture du fichier texte du script scm est sans danger car Gimp ne fait que lire ce .scm. Il n’y a aucune écriture.

Ensuite, à l’étape de l’ouverture de la console Script-Fu, s’il y a un message d’erreur, noter le numéro de ligne et tenter de corriger le bug dans NotePad++.
De sorte que, si le problème persiste, déplacer le .scm ailleurs pour qu’il ne soit pas auto-chargé à l’ouverture de la console Script-Fu.

D’abord, prenons l’hypothèse généralement constatée où Gimp interprète le .scm correctement lors de l’ouverture de la console Script-Fu.

Finalement, les modules .scm chargés après 0srfi-030-comment.scm peuvent contenir des commentaires multilignes.


1.1 NotePad++ : couleur de commentaire multiligne scheme

Notepad++ Gimp lambda lib comment colors
COMMENTLINE sur une ligne complète en vert par rapport au bloc COMMENT bleu foncé dans Notepad++

Consulter « 4.1.2 Configurer Notepad++ pour les couleurs des commentaires Script-Fu » dans la GimpλLib .

En conséquence, dans NotePad++, les commentaires multilignes entre « #| » et « |# » s’affichent en bleu foncé au lieu de la couleur grisée illisible.


1.2 Gimp console Script-Fu : commentaire multiligne TinyScheme

Tout d’abord, rappelons que pour voir la console TinyScheme, clic Gimp menu « Filtres » > « Script-Fu » > « Console« . Car lors du changement de dialecte Lisp en TinyScheme embarqué dans Gimp, l’ancien menu de filtres « Script-Fu » est historiquement resté.

Gimp lambda lib SRFI-30 nested multiline comment
Commentaires en blocs imbriqués dans la console Script-Fu de Gimp

Après cela, notez que le commentaire multiligne dans la zone de saisie de la console Script-Fu apparaît sur une seule ligne.
Puis après validation par Entrée, le commentaire multiligne s’affiche juste au-dessus sur trois lignes.

Ainsi, un commentaire mono-ligne ou multiligne renvoie #<EOF>[4]EOF: End Of File, fin de fichier d’entrée ;

De plus, retenons qu’un commentaire multiligne peut contenir des commentaires mono-lignes mais pas de commentaire multiligne embarqué.

De façon plus précise, l’erreur de fin de fichier « #<EOF> » est peu parlante. Elle revient un peu trop souvent quand le développeur oublie une parenthèse fermante ou colle un retour-charriot ou un espace final de trop dans la zone de saisie de la console Script-Fu.

Il faut souligner que la prise en compte des commentaires multilignes est une spécification du R6RS[5]R6RS: Revised^6 Report Scheme 2007. Alors que TinyScheme est un sous-ensemble du R5RS 1998 sans les commentaires multilignes. C’est la raison pour laquelle avant la fonction suivante, seuls les commentaires sur une seule ligne commençant par « ; » sont autorisés.

Cependant, la fonction « *sharp-hook* » en ligne 90 de 0srfi-030-comment.scm démontre que le Lisp peut s’auto-modifier en implémentant une gestion multiligne des commentaires non prévue.

En ce qui concerne l’analyseur syntaxique de commentaires, il n’analyse pas le contenu du commentaire jusqu’à la fin du commentaire.

En conclusion, avec le commentaire multiligne, il n’est plus nécessaire de supprimer chaque entête « ;  » de commentaire standard mono-ligne en TinyScheme. De sorte que le commentaire multiligne facilite le copier-copier de l’expression Lisp à évaluer dans la console Script-Fu.

Notes

Notes
1 Lisp : list processing
2 TinyScheme : implémentation minimale de Scheme pour être embarquée dans Gimp
3 Scheme : dialecte Lisp
4 EOF: End Of File, fin de fichier d’entrée
5 R6RS: Revised^6 Report Scheme