Indentation configurable de code visual basic

Description

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

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.