Présentation du renommage des symboles

De RAD Studio
Aller à : navigation, rechercher

Remonter à Refactoring des applications - Index


Renomme un identificateur et toutes les références à cet identificateur. Vous pouvez renommer un identificateur si sa déclaration originale réside dans votre projet ou dans un projet dont dépend votre projet, et si ce projet réside dans le même groupe de projets ouvert. Vous pouvez renommer les identificateurs tels que des noms de types, des noms de méthodes, des variables, des champs, et d'autres. Dans Delphi, vous pouvez renommer les identificateurs utilisés avec des génériques.

Le moteur de refactoring applique les règles de renommage suivantes :

  • Vous ne pouvez pas renommer un identificateur en mot clé.
  • Vous ne pouvez pas renommer un identificateur en lui affectant le même nom, à moins de changer la casse.
  • Vous ne pouvez pas renommer un identificateur depuis un projet dépendant si le projet contenant l'identificateur de la déclaration originale n'est pas ouvert.
  • Vous ne pouvez pas renommer des symboles importés par le compilateur.
  • Vous ne pouvez pas renommer une méthode redéfinie si la méthode de base est déclarée dans une classe qui ne réside pas dans votre projet.
  • Vous ne pouvez pas renommer les constructeurs ou les destructeurs.
  • Si une erreur se produit pendant un refactoring, le moteur ne peut pas appliquer la modification. Par exemple, vous ne pouvez pas renommer un identificateur avec un nom qui existe déjà dans la même portée de déclaration. Si vous souhaitez toujours renommer l'identificateur, vous devez d'abord renommer l'identificateur qui porte déjà le nom cible, puis actualiser le refactoring. Vous pouvez aussi rétablir le refactoring et sélectionner un nouveau nom. Le moteur de refactoring traverse les portées parents à la recherche d'un identificateur portant le même nom. S'il en trouve un, il émet un message d'avertissement.
  • Lors du renommage d'identificateurs utilisés avec des génériques, vous ne pouvez pas renommer les paramètres de type. Cela signifie que si vous avez la déclaration suivante :
     type
       List<Item> = class
       ...
       end;

vous ne pouvez pas renommer l'identificateur Item (le paramètre de type), mais vous pouvez renommer l'identificateur List.

Renommer les méthodes

Le renommage d'une méthode est fonctionnellement identique à celui d'un identificateur. Si vous sélectionnez le nom d'une procédure dans l'éditeur de code, vous pouvez la renommer en utilisant la commande Refactoring > Renommer. Si la procédure est surchargée, le moteur de refactoring ne renomme que la procédure surchargée et n'appelle que cette procédure. Voici un exemple de cette règle :

procedure Foo; overload;
procedure Foo(A:Integer); overload;
Foo();
Foo;
Foo(5);

Si, dans le bloc de code précédent, vous renommez la première procédure Foo, le moteur renomme les premier, troisième et quatrième éléments.

Si vous renommez un identificateur redéfini, le moteur renomme toutes les déclarations de base et les déclarations descendantes, c'est-à-dire l'identificateur virtuel original et tous les symboles redéfinis qui existent. Voici un exemple de cette règle :

TFoo = class
  procedure Foo; virtual;
  end;
TFoo2 = class(TFoo)
  procedure Foo; override;
  end;
TFoo3 = class(TFoo)
  procedure Foo; override;
  end;
TFoo4 = class(TFoo3)
  procedure Foo; override;
  end;

L'exécution d'une opération de renommage sur Foo renomme toutes les instances de Foo de l'exemple de code précédent.

Voir aussi