Rozhraní API JDT poskytuje ostatním modulům plug-in službu Usnadnění práce s kódem nebo Výběr kódu pro určité prvky Java. Prvky umožňující takovouto manipulaci by měly implementovat ICodeAssist.
K dispozici jsou dva typy prováděných úkonů:
V modelu Java jsou dva prvky implementující toto rozhraní: IClassFile a ICompilationUnit. Dokončování kódu a výběr kódu poskytují výsledky pro soubor třídy pouze, pokud je připojen ke zdroji.
Jedním ze způsobů dokončování kódu z programu je spuštění ICodeAssist.codeComplete. Zadáte počáteční polohu té části kompilační jednotky, ve které chcete dokončení kódu provést. Rovněž musíte zřídit instanci CompletionRequestor, jež zajistí přijetí možných dokončení.
Metoda v CompletionRequestor.accept přijímá všechny druhy návrhů dokončování kódu. Metody CompletionProposal poskytují informaci popisující navrhovaný prvek (název, typ deklarace atd.), navrhovanou polohu jeho vložení do kompilační jednotky a jeho relevanci.
Žadatel dokončení může přijímat různé druhy dokončování. Tento druh určuje CompletionProposal.getKind.
Některé dostupné druhy dokončování (kompletní seznam použitelných dokončování naleznete v CompletionProposal):
Klient dokončování musí být rovněž schopen přijímat chyby kompilace.
Protože může být k dispozici více možných a vzájemně odlišných dokončení, používáme pojem relevance k porovnávání doporučeného dokončení s ostatními návrhy. Relevance je reprezentována kladným celým číslem. Hodnota nemá žádný implicitní význam a je určena výlučně k porovnávání s hodnotami ostatních návrhů. Relevance kandidáta na dokončení kódu může být ovlivněna očekávaným typem výrazu, protože se vztahuje k typům použitým v okolním kódu, např. k typům proměnných, přetypovaným typům, návratovým typům atd. Relevanci ovlivňuje rovněž přítomnost očekávané předpony či přípony v dokončení.
Modul plug-in JDT Core definuje volby, které ovládají chování dokončování kódu. Tyto volby lze měnit jinými moduly plug-in.
Další volby umožňují zadávání předpon a přípon pro navržené dokončovací názvy polí, statických polí, lokálních proměnných a argumentů metod.
Další informace o volbách Usnadnění práce s kódem a o jejich výchozích hodnotách naleznete v tématu Volby usnadnění práce s kódem JDT Core.
Výběr kódu se používá k vyhledání prvku Java představovaného úsekem textu (v typickém případě zvoleného textu) v kompilační jednotce. Chcete-li provést výběr textu v programu, musíte spustit ICodeAssist.codeSelect. Musíte poskytnout počáteční polohu a délku výběru. Výsledkem je pole prvků Java. Většinu času je v poli pouze jediný prvek. Je-li však volba nejednoznačná, vrací všechny možné prvky.
V následujícím příkladu je volán výběr kódu pro kompilační jednotku. // Získat kompilační jednotku
ICompilationUnit unit = ...;
// Získat ofset a délku
int offset = ...;
int length = ...;
// Provést volbu
IJavaElement[] elements = unit.codeSelect(offset, length);
System.out.println("vybrán je prvek" + element[0].getElementName());
Je-li zvolena nulová délka výběru, bude výběr vypočten vyhledáním kompletního tokenu, jehož délka se shoduje se zadaným ofsetem. Podívejte se na následující metodu:
public void fooMethod(Object) {
}