Commenter en bloc

Donc l’autre jour je suis tombé sur cette fonctionnalité appelée le block comment.

C’est documenté dans la partie : Commenting in MATLAB Code Using Any Text Editor

Voici l’exemple fourni dans la doc :

block comment

  • Comment ça marche :

Il faut à minima avoir sur son clavier les Curly braces {} et le percent % ;)

1ère étape vous utilisez un pourcentage suivi d’une accolade : %{
2ème étape vous écrivez vos lignes de commentaires
3ème étape vous fermez le bloc de commentaires avec un %}

Important : Comme spécifié dans la doc , il ne faut pas de texte sur les lignes où se trouve les %{ et %} , sinon ça ne marche pas.

  • Avantages de cette fonctionnalité:

Moi ça m’arrive pleins de fois que je télécharge des fichiers du File Exchange et que pour les tester , j’utilise les exemples (quand il y en a) fournis par le code.
Ces exemples sont généralement dans le header du M-file et sur plusieurs lignes, il faut donc « décommenter » ces lignes pour les évaluer.

1. Donc c’est là le gros avantage du block comment c’est de pouvoir évaluer PLUSIEURS lignes de code qui sont commentées.

2. Avec le block comment , on gagne du temps, pas besoin de faire un Ctrl+T.

3. De plus on ne risque pas d’oublier de recommenter ces lignes , sans ça le code va planter.

  • Exemple

Pour vous montrer les avantages ci-dessus , je vais prendre une fonction MATLAB qui n’est pas une built-in et qui a un exemple dans son header. Alors le big deal c’est d’utiliser la fonction deal de MATLAB … blague de MATLAB Geek ;)

>>edit deal

On trouve 2 exemples dans deal.m :

deal example

Prenons le second qui permet entre autres de comprendre la puissance de deal et que j’utilise dans la plupart de mes logiciels.

Donc là si je veux évaluer les lignes 26 et 27 dans MATLAB je suis obligé de décommenter les lignes.
Pour cela je sélectionne à la souris ces lignes et je fais Ctrl+T puis F9 , ce qui est équivalent sans utiliser ces shortcuts MATLAB à faire: clic droit -> « Uncomment » puis « Evaluate Selection »
Si ce même code était dans un block comment, j’aurais juste eu à faire F9 sur ces lignes.

Deuxièmement imaginons que j’oublie de recommenter ces lignes 26 et 27 :

deal uncomment

et que plus tard je réutilise deal. Bon beh c’est là que MATLAB va tourner en boucle :

>>   [filenames{1:length(direc),1}] = deal(direc.name)

??? Maximum recursion limit of 500 reached. Use set(0,’RecursionLimit’,N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.

Error in == > deal

C’est ce que je disais dans le point 3 précédent : MATLAB plante et c’est normal. Vu qu’on a laissé les exemples décommentés , la fonction deal va s’appeler elle-même récursivement. Bon MATLAB il est pas con , au bout de 500 fois il arrête le délire!

  • Limitation:

Trouvant cette fonctionnalité pas mal, je me suis dit que ce serait bien de l’avoir dans le contextmenu .
Par exemple prenons mon utilitaire emailtool_nodisplay (posté sur le FEx). Ce code contient 160 lignes de commentaires avant la première ligne de code. Si je fais un clic droit, le menu qui s’ouvre est le suivant :

emailtool comment

Il n’y a aucune référence à l’option block comment. Alors qu’est ce que j’ai fait à votre avis? Et beh comme d’hab j’ai contacté le support technique de The MathWorks le 16 novembre 2010 pour leur proposer cet enhancement.
Voici leur réponse:

enhancement comment

Donc à voir ;)

Laisser un commentaire