APIet JDT gjør at andre plugin-moduler kan utføre kodehjelp eller kodevalg på noen Java-elementer. Elementer som tillater slik manipulering, bør implementere ICodeAssist.
Det er to typer manipulering:
I Java-modellen er det to elementer som implementerer dette grensesnittet: IClassFile og ICompilationUnit. Kodefullføring og kodevalg gir resultater bare for en klassefil dersom den har en tilknyttet kilde.
En metode for å utføre kodefullføring programmatisk er å aktivere ICodeAssist.codeComplete. Du oppgir forskyvningen i kompileringsenheten du ønsker kodefullføring etter. Du må også sørge for en forekomst av CompletionRequestor for å godta mulige fullføringer.
Metoden i CompletionRequestor.accept godtar alle typer forslag for kodefullføring. Metodene til CompletionProposal gir informasjon som beskriver det foreslått elementet (dets navn, deklarasjonstype osv.), dets foreslåtte posisjon for innsetting i kompileringsenheten og dets relevans.
En fullføringsbestiller kan godta mange forskjellige former for fullføringer. Denne formen gis av CompletionProposal.getKind.
Noen av de mulige fullføringstypene er (du finner den fullstendige listen i CompletionProposal):
Fullføringsbestilleren må også kunne godta kompileringsfeil.
Siden det kan være mange forskjellige mulige fullføringer, brukes begrepet relevans til å sammenlikne relevansen til en foreslått fullføring mot andre forslag. Relevans representeres ved et positivt heltall. Verdien har ingen implisitt mening utover å brukes relativt i forhold til verdiene til andre forslag. Relevansen til en kodefullføringskandidat kan påvirkes av forventet type uttrykk, siden det forholder seg til typene i den omgivende koden, for eksempel variabeltyper, cast-typer, returtyper osv. Tilstedeværelsen av et forventet prefiks eller suffiks i en fullføring påvirker også relevansen.
Plugin-modulen JDT-kjerne definerer alternativene som styrer oppførselen til kodefullføringen. Disse alternativene kan endres av andre plugin-moduler.
Andre alternativer gjør det mulig å spesifisere prefikser og suffikser for foreslåtte fullføringsnavn for felt, statiske felt, lokale variabler og metodeargumenter.
Du finner flere opplysninger om kodesettalternativer og deres standardverdier i JDT Core Code Assist Options.
Kodevalg brukes til å finne Java-elementet som representeres ved et tekstområde (typisk valgt tekst) i en kompileringsenhet. For å utføre kodevalg programmatisk må du aktivere ICodeAssist.codeSelect. Du må oppgi startindeksplassering for valget samt lengde.Resultatet er en matrise med Java-elementer.For det meste er det bare ett element i matrisen, men hvis valget er tvetydig, returneres alle mulige elementer.
I eksempelet nedenfor aktiveres kodevalg for en kompileringsenhet.
// Hent kompileringsenhet
ICompilationUnit unit = ...;
// Hent forskyvning og lengde
int offset = ...;
int length = ...;
// utfør valg
IJavaElement[] elements = unit.codeSelect(offset, length);
System.out.println("the selected element is " + element[0].getElementName());
Når valglengden spesifiseres som 0, vil valget beregnes ved at fullføringssymbolet som omgir den bestemte forskyvningen, finnes. La oss ta følgende metodeeksempel:
public void fooMethod(Object) {
}