Exécution de l'assistant de code sur le code Java

Les API du JDT permettent à d'autres plug-ins d'exécuter l'assistant de code ou la sélection de code sur certains éléments Java. Les éléments autorisant cette manipulation implémentent ICodeAssist. Le modèle Java contient deux éléments implémentant cette interface : IClassFile et ICompilationUnit.

Il existe deux types de manipulation :

Remarque : le complément et la sélection renvoient des résultats pour un fichier de classe uniquement s'il est connecté à une source.

Complément de code

Exécution d'un complément de code

La seule façon de compléter le code via un programme est d'utiliser ICodeAssist.codeComplete. Indiquez l'emplacement du complément dans l'unité et fournissez une instance de ICompletionRequestor pour accepter les compléments possibles.

Chaque type de proposition est accepté par une méthode du demandeur. Les paramètres de ces méthodes décrivent l'élément (nom, paramètres, type de déclaration...) et sa position, ainsi que la pertinence de la proposition dans le contexte.

Lorsque vous n'êtes pas intéressé par tous les types de résultats, utilisez simplement CompletionRequestorAdapter.

   // Obtention de l'unité de compilation
   ICompilationUnit unit = ...;
   
   // Obtention du décalage
   int offset = ...;
   
   // Création du demandeur
   ICompletionRequestor requestor = new CompletionRequestorAdapter() {
      public void acceptClass(
         char[] packageName,
         char[] className,
         char[] completionName,
         int modifiers,
         int completionStart,
         int completionEnd,
         int relevance) {
         System.out.println("propose a class named " + new String(className));
      }
   };
   
   // Calcul des propositions
   unit.codeComplete(offset, requestor);

Options de complément de code

Les options de complément de code peuvent être modifiées par d'autres plug-ins. Vous pouvez changer les options de l'API principale (core) du JDT pour modifier le comportement de complément.

Il existe deux options :

Pour savoir comment modifier les options de l'API principale (core) du JDT, consultez la rubrique Quelles sont les options de l'API principale (core) du JDT ?

Sélection de code

Exécution d'une sélection de code

Si vous voulez sélectionner du code via un programme, utilisez la méthode ICodeAssist.codeSelect. Elle doit connaître l'emplacement de début de la sélection et sa longueur. Le résultat prend la forme d'un tableau d'éléments Java. La plupart du temps, le tableau ne contient qu'un élément, mais si la sélection est ambiguë, tous les éléments possibles sont renvoyés.

   // Obtention de l'unité de compilation
   ICompilationUnit unit = ...;
   
   // Obtention du décalage et de la longueur
   int offset = ...;
   int length = ...;
   
   // Exécution de la sélection
   IJavaElement[] elements = unit.codeSelect(offset, length);
   System.out.println("the selected element is " + element[0].getElementName());

Sélection à l'emplacement du curseur.

Si la longueur de la sélection est égale à 0, elle est calculée avec le jeton de conteneur complet.

   public void fooMethod(Object) {
   }
Lorsque le décalage se situe après le premier caractère de fooMethod et si la longueur est 0, la sélection est fooMethod. En revanche, si la longueur est 5, la sélection est ooMet.

 Copyright IBM Corporation and others 2000, 2002. All Rights Reserved.