A JDT API lehetővé teszi, hogy bedolgozók kódsegédet és kódkijelölést hajtsanak végre Java elemeken. Az ilyen kezelést lehetővé tevő elemeknek az ICodeAssist felületet valósítják meg.
Kétféle kezelés van:
A Java modellben két olyan elem van, ami megvalósítja ezt a felületet: IClassFile és ICompilationUnit. A kódkiegészítés és kódkijelölés egy osztályfájl esetében csak akkor tér vissza eredménnyel, ha a fájlnak csatolt forrása van.
Az egyeik módszer, hogy programozási eljárással kódkiegészítést hajtson végre, az ICodeAssist.codeComplete meghívása. Határozza meg az eltolást a fordítási egységben, ami után a kódkiegészítést szeretné. A lehetséges kiegészítések elfogadásához szükség van az CompletionRequestor egy példányára is.
A CompletionRequestor.accept metódusa minden ajánlatot elfogad kódkiegészítéshez. A CompletionProposal metódusai a javasolt elemet leíró információkat (nevét, deklarált típusát, stb.) nyújtanak. ), a javasolt beillesztési helyet a fordítási egységbe, és az ajánlás jelentőségét.
Egy befejezési kérelmező több különböző fajta kiegészítést is elfogadhat. Ezt a fajtát a CompletionProposal.getKind nyújtja.
Néhány lehetséges befejezésfajta (ezek teljes listáját lásd: CompletionProposal):
A kiegészítés kérelmezőnek képesnek kell lennie fordítási hibákat elfogadni.
Mivel több különböző kiegészítés lehetséges, ezért a rendszer a jelentőség fogalmát használja a javasolt kiegészítés összehasonlítására más ajánlatokkal. A jelentőséget egy pozitív egész szám képviseli. Az értéknek nincs önmagában jelentése, hanem relatív értékként használatos más ajánlatokhoz viszonyítva. Egy lehetséges kódkiegészítés jelentőségére hatással lehet, hogy a kifejezés várható típusa hogyan viszonyul a körülvevő kód típusához, úgy mint változó típusok, átalakító típusok, visszatérési típusok, stb. Egy várható előtag vagy utótag jelenléte a kiegészítésben is befolyásolja a kiegészítés jelentőségét.
A JDT törzs bedolgozó beállítási lehetőségeket ad, amelyek a kódkiegészítés viselkedését határozzák meg. Ezeket a beállításokat más bedolgozók módosíthatják.
További beállítások teszik lehetővé előtag és utótag megadását javasolt kiegészítő mező, statikus mező, helyi változók és metódus argumentum nevekhez.
A kódsegéd beállításairól és az alapértékekről további információkat a JDT törzs kódsegéd beállítások szakaszban tudhat meg.
A kódkijelölés egy fordítási egységben egy szövegtartomány (tipikusan a kijelölt szöveg) által képviselt Java elem megtalálására használható. A kódkiválasztás végrehajtása programozási eljárással az ICodeAssist.codeSelect meghívásával lehetséges. Meg kell adnia a kijelölés kezdő index helyszínét és hosszát.Az eredmény egy Java elemekből álló tömb. Legtöbbször csak egy elem van a tömbben, de ha a kiválasztás nem egyértelmű, akkor az eredményben minden lehetséges elem megjelenik.
A
következő példában a fordítási egységre kódkijelölés kerül meghívásra.
// Fordítási egység megadása
ICompilationUnit unit = ...;
// Az eltolás és a hossz megadása
int offset = ...;
int length = ...;
// kiválasztás végrehajtása
IJavaElement[] elements = unit.codeSelect(offset, length);
System.out.println("a kijelölt elem: " +
element[0].getElementName());
Ha a megadott kijelölés hossz 0, akkor a megadott eltolást magába foglaló teljes jelsor kijelölésre kerül. Gondoljon a következő példa metódusra:
public void fooMethod(Object) {
}