Ausführen von CodeAssist für den Java-Code

Die JDT-API erlaubt anderen Plug-ins die Ausführung von CodeAssist und CodeSelect für einige Java-Elemente. Elemente, die diese Bearbeitung zulassen, implementieren ICodeAssist. Im Java-Modell gibt es zwei Elemente, die diese Schnittstelle implementieren: IClassFile und ICompilationUnit.

Es gibt zwei Typen der Bearbeitung:

Hinweis: Die Antworten für Fertigstellung und Auswahl werden für eine Klassendatei nur dann ausgegeben, wenn diese über eine zugeordnete Quelle verfügt.

Codefertigstellung

Codefertigstellung ausführen

Die einzige Möglichkeit, die Codefertigstellung programmgestützt auszuführen, ist die Verwendung von ICodeAssist.codeComplete. Geben Sie die Adresse für die Fertigstellung in der Einheit an und stellen Sie ein Exemplar von ICompletionRequestor zur Verfügung, um die möglichen Fertigstellungen zu akzeptieren.

Jede Vorschlagsart wird von einer Methode der Anforderungskomponente (Requestor) akzeptiert. Die Parameter dieser Methoden beschreiben das Element (Name, Parameter, deklarierender Typ,...) und dessen Position sowie die Relevanz des Vorschlags im aktuellen Kontext.

Wenn Sie nicht an allen Ergebnistypen interessiert sind, besteht eine einfache Art der Ausführung der Codefertigstellung in der Verwendung von CompletionRequestorAdapter.

   // Get the compilation unit
   ICompilationUnit unit = ...;
   
   // Get the offset
   int offset = ...;
   
   // Create the requestor
   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));
      }
   };
   
   // Compute proposals
   unit.codeComplete(offset, requestor);

Optionen der Codefertigstellung

Die Optionen der Codefertigstellung können durch andere Plug-ins geändert werden. Sie können JDT-Kern-Optionen ändern, um das Fertigstellungsverhalten zu ändern.

Es gibt zwei Optionen:

Informationen über das Ändern von JDT-Kern-Optionen finden Sie im Abschnitt Was sind JDT-Kern-Optionen?.

Codeauswahl

Codeauswahl ausführen

Wenn Sie eine Codeauswahl programmgestützt ausführen möchten, verwenden Sie die Methode ICodeAssist.codeSelect. Diese Methode benötigt Informationen über die Startadresse der Auswahl und die Länge. Das Ergebnis besteht in einem Bereich von Java-Elementen. Meistens befindet sich in dem Bereich nur ein Element. Wenn die Auswahl jedoch mehrdeutig ist, werden alle möglichen Elemente zurückgegeben.

   // Get the compilation unit
   ICompilationUnit unit = ...;
   
   // Get the offset and length
   int offset = ...;
   int length = ...;
   
   // perform selection
   IJavaElement[] elements = unit.codeSelect(offset, length);
   System.out.println("the selected element is " + element[0].getElementName());

Auswahl an der Cursorposition

Ist die Länge der Auswahl gleich 0, wird die Auswahl mit dem vollständigen einschließenden Token berechnet.

   public void fooMethod(Object) {
   }
Wenn sich die relative Position nach dem ersten Zeichen von fooMethod befindet und die Länge 0 ist, dann ist die Auswahl fooMethod. Ist die Länge jedoch 5, ist die Auswahl ooMet.

 Copyright IBM Corporation und Andere 2000, 2002. Alle Rechte vorbehalten.