CaRMetal 4.2.8

Les nouveautés de cette version sont :

  • la finalisation du générateur de code (assistant de script), qui a été rendu contextuel;
  • le perfectionnement de ExecuteMacro avec modification de l'inspecteur de macro et la création d'une nouvelle CaRCommande.

 



* Finalisation du générateur de code

Dans l'interface de script, on dispose désormais d'une nouvelle case à cocher en forme de drapeau français.
Celle-ci a pour objectif de rendre plus clair le système de génération de code. On distingue :

  • la possibilité d'opter pour la génération de code en français plutôt qu'en anglais;
  • la possibilité d'opter pour la génération de code avec le moins possible d'affections Javascript (BEGINNER Mode).

On rappelle que les deux seront interprétés correctement, et que ce sera aussi le cas d'un script "mixte".

Par ailleurs, si l'on commence le script par pseudo-code, on écrit un script de nature différente, mais les deux cases à cocher resteront pertinentes.

A titre d'exemple, voyons ce que génère l'assistant de script lorsque l'on clique sur le deuxième bouton de la deuxième ligne (bouton demi-droite). Il y a 8 contextes :

En mode classique :

Des états différents pour les cases à cocher auront pour effet la génération d'un code différent.

en pseudo-code :

pseudo fr beginner

(Il n'y a pas beaucoup de différence quand on est en mode simplifié et en français, on a juste une virgule en plus. Dans un autre mode, la différence sera plus flagrante...)

Dans tous les cas, le code est généré selon une syntaxe cohérente. Ensuite, on peut l'ajuster.

Il en va de même de tous les boutons de droite.
On remarquera en particulier que la palette tortue 2D s'adapte dynamiquement au contexte : dès lors que le script commence par pseudo-code, des boutons disparaissent logiquement (et réapparaissent dès que le script ne commence plus par pseudo-code) :

Palette JS maths

En mode pseudo-code, les boutons de l'assistant génèrent un code sans le préfixe Math, mais un code Javascript classique avec préfixe sera interprété correctement.
On a désormais une coloration syntaxique cohérente des fonctions mathématiques selon le mode en vigueur :

En pseudo-code :

maths pseudo 2

Dans la copie d'écran ci-dessus, on a donné l'exemple d'un code mixte pour illustrer le fonctionnement de la coloration syntaxique. Ce type de code n'est pas recommandé.

En mode classique :

maths nonpseudo 1

 Là encore, l'exemple st un "body of proof" qui n'est pas recommandé en pratique...

Palette JS structures

Voici quelques exemples de code généré (ici en mode pseudo-code en français comme l'indiquent l'incipit et l'état des cases à cocher) :



Le mot-clé length a été traduit par taille.

 

Par ailleurs, on a également travaillé sur le bouton d'indentation pour qu'il devienne cohérent et appliquable en mode pseudo-code.

En mode pseudo-code, l'activation de ce bouton corrigera des erreurs d'indentation de 1 espace.

* ExecuteMacro quand il y a plusieurs finaux

Dans les versions précédentes, il fallait tester une fois la CaRCommande ExécuterMacro pour connaître l'ordre des finaux dans le tableau renvoyé.
Ce problème a été résolu de deux façons différentes :

1) Modification de l'inspecteur des macros

macro 02

On a désormais une nouvelle partie concernant les finaux et leur ordre dans ExecuteMacro.
Dans la colonne Construction index, on a l'ordre qui serait donné en appliquant une fois la CaRCommande ExecuteMacro comme il était d'usage de le faire.
Dans la colonne Click index, on a l'orde choisi par l'utilisateur lors de la définition de la macro. Et cet ordre très agréable à utiliser lorsque l'on vient de définir la macro peut être employé dans une nouvelle CaRCommande ExécuterMacroCommeDéfinie.
Remarque : la colonne Construction index sera fonctionnelle même pour des macros créées avec une version précedente de CaRMetal, contrairement à la colonne Click index (qui affichera alors une colonne de 0).

2) CaRCommande ExécuterMacroCommeDéfinie
Cette CaRCommande est comparable à ExécuterMacro mais dans le cas où il y a plusieurs finaux elle renvoie un tableau dans lequel les finaux sont dans le même ordre que celui choisi par l'utilisateur lors de la définition de la macro. Cet ordre est donné dans la colonne Click index de l'inspecteur de macro.