Détection des clones de code
Exigences:
CODESYS Static Analysis est installé.
Un CODESYS le projet est ouvert. Le projet inclut le même bloc de code dans au moins deux objets de programmation.
Cliquez sur Construire → Analyse statique → Détecter les clones .
le Résultats de la détection des clones la vue s'ouvre.
Cliquez sur
Résultats.
Les clones de code détectés sont affichés sous forme d'arborescence dans une fenêtre.
Si, en plus des clones de code identiques, il existe également des clones de code avec des déviations, ces nœuds enfants sont mis en surbrillance en couleur dans l'arborescence.
Dans l'arborescence, sélectionnez deux clones de code d'un nœud enfant et cliquez sur le Afficher les clones sélectionnés bouton.
Les deux objets de programmation contenant ce code dupliqué sont ouverts sous l'éditeur et affichés dans la partie supérieure de la vue.
Les clones de code identiques sont surlignés en jaune clair et les clones de code avec des écarts, tels que les noms de variables
ivar3
etivarx
dans cet exemple, sont surlignés en rouge.Pour créer une fonction à partir du clone de code identique de l'objet de programmation
POU_1
, double-cliquez d'abord dans l'arborescence sur la ligne contenant le code clone de ObjetPOU_1
.L'objet de programmation
POU_1
s'ouvre dans l'éditeur, et dans la partie implémentation les quatre lignes sont mises en surbrillance qui contiennent le code dupliqué.Lorsque vous cliquez sur le Fonction d'extraction commande dans le menu contextuel du bloc de code en surbrillance, le bloc de code est extrait de
POU_1
et une nouvelle méthode est créée à partir de celle-ci. Le bloc de code dans la partie implémentation dePOU_1
est remplacé automatiquement par l'appel de la méthode.Dans le deuxième objet de programmation, vous devez supprimer manuellement le code en double et remplacer l'appel de la méthode.
Astuce
Dans une version ultérieure, la fonctionnalité sera étendue afin que le bloc de code dupliqué soit automatiquement extrait des deux objets de programmation et qu'il puisse être remplacé par l'appel de fonction correct.