Indentation configurable de code Visual Basic - v1.0
Conception/développement : Vincent Dummer (cyrus@mageos.com)
Description :
-------------
Cet outil permet d'indenter (placer les décalages de début de ligne) automatiquement tout le code d'un projet Visual Basic.
Exemple :
Avant :
Private Sub MaSub
For i = 1 to 10
text1.text = Str(i)
Next
End Sub
Après :
Private Sub MaSub
|-->For i = 1 to 10
|------>Text1.text = Str(i)
|-->Next
End Sub
Fonctionnalités :
-----------------
-Indentation de d'un projet Visual Basic 6 ou inférieur
-Règles de l'indentation entièrement configurables
-Suppression des lignes vides inutiles
Mode d'emploi :
---------------
1-Sélectionnez le chemin de votre projet
2-Clickez sur le bouton 'GO'
Et c'est tout ! Le programme se chargera d'effectuer l'indentation sur tous les Forms/Modules/Classes trouvés dans votre projet.
NB : Il est possible de modifier les règles de l'indentation en cliquant sur le bouton 'Mode complet'.
Note sur le paramétrage de l'indentation :
------------------------------------------
Une structure est un ensemble comprenant une balise de début et une balise de fin (ex : For / Next).
Une ligne simple est une ligne comprenant une balise de début mais ne possédant pas de balise de fin (ex : Rem)
Colonne 1 (StartItem) : Balise de départ d'une structure ou d'une ligne simple
Colonne 2 (EndItem) : Balise de fin d'une structure
Colonne 3 (LinesBefore) : Nombre de lignes que l'on souhaite voir apparaitre avant la structure/ligne simple
Colonne 4 (LinesAfter) : Nombre de lignes que l'on souhaite voir apparaitre après la structure/ligne simple
Colonne 5 (InternalMargin) : Nombre de lignes qui seront placées au début et à la fin d'une structure
Colonne 6 (Offset) : Décalage par rapport au niveau d'indentation actuel
Principe de fonctionnement :
----------------------------
Le niveau d'indendation initial est de 0, ce qui veut dire que le texte n'est pas décalé par rapport à gauche.
On scrute ensuite chaque ligne pour voir si elle contient une balise de début ou de fin.
-Si la ligne contient un début de structure, on l'indente avec le niveau d'indentation actuel puis on incrémente ce niveau de 1.
-Si la ligne contient un début de ligne simple, on indente cette ligne avec le niveau d'indentation actuel + l'offset défini.
-Si la ligne contient une fin de structure, on décrémente le niveau d'indentation actuel et on indente la ligne actuelle avec cette valeur
Si le niveau d'indentation arrive à -1 à un momemt donné ou si le niveau final est supérieur à 0, cela veut alors dire qu'il y a un problème de structure du code et on affiche un message d'erreur. (Cela peut vouloir dire que l'il y a un End If isolé dans le code, par exemple)
Pour bien comprendre le fonctionnement, le mieux est de lire l'exemple suivant :
NB : - L'indentation se fera ici par l'insertion de 4 espaces blancs (comme dans l'environnement de développement de Visual Basic) en début de ligne
- La ligne simple commençant par 'Else' possède un offset de -1
Code avant indentation :
Private Function(A as Integer)
If A = 1 Then
MsgBox "A=1"
Else
MsgBox "A<>1"
End If
End Function
Indentation de ce code :
' (Début - Niveau d'indentation = 0)
Private Function(A as Integer) ' (Balise de début 'Private Function' : Niveau d'indentation++, soit 1)
|-->If A = 1 Then ' (Balise de début 'If' : Niveau d'indentation++, soit 2)
|------>MsgBox "A=1" ' (Niveau d'indentation = 2)
|-->Else ' (Balise de début de ligne simple 'Else': Niveau d'indentation - Offset, soit 1)
|------>MsgBox "A<>1" ' (Niveau d'indentation = 2)
|-->End If ' (Balise de fin 'End If' : --Niveau d'indentation, soit 1)
End Function ' (Balsie de fin 'End Function' : --Niveau d'indentation, soit 0)
' (Fin - Niveau d'indentation = 0 => OK)
Limitations :
-------------
Aucune
Bugs connus :
-------------
Aucun
Historique de versions:
-----------------------
V1.0 : - Version initiale