úterý 2. listopadu 2004

Eclipse a drobné maličkosti - uživatelské šablony

Nejsem typ uživatele, který by s železnou pravidelnosti hraničící se sadomasochismem, prozkoumával všechny vlastnosti IDE Eclipse, a to je možná škoda. Asi málokdo neocení podporu vestavěných templates (šablon) v Eclipse a já nejsem výjimka. Přiznám se rovnou, že jsem používal pouze ty jednodušší např. sysout => System.out.println().

Eclipse umožňuje velice snadno vytvářet vlastní templaty. Tuto vlastnost jsem naplno ocenil při včerejším rozjímání nad usnadněním psaní testovacích metod, které jsou společné všem objektům. Specielně se mi jednalo o testovací metody pro equals a hashCode.

Všechny šablony, jak předdefinované tak uživatelské se nalézají v okně Templates viz Window >> Preferences >> Java >> Editor >> Templates.

Zobrazení okna pro definici a úpravu šablon

Krom předpřipravených šablon, si můžeme nadefinovat vlastní a to pro javovský kód i Javadoc. Přes magické tlačítko New se pustíme do nové šablony.

Zobrazení okna pro definici nové šablony

Name
Jméno šablony, pod kterým bude dostupná. Doporučuji něco krátkého a smysluplného.
Description
Textový popis šablony.
Context
Výběr kontextu šablony, která může být použita pro javovský kód a nebo pro Javadoc.
Pattern
Vlastní obsah šablony.

Při psaní šablony by se vám mohly hodit předdefinované proměnné, které se nalézají pod tlačítkem Insert variable. Tímto jsme se dostali pomalu k proměnným, které představují motor šablon. V rámci šablony si můžete definovat libovolné množství proměnných, ale jejich síla se ukáže při opakovaném použití.

Využití proměnných

 
${objectUnderTest} o = new ${objectUnderTest}();
try{
    o.hashCode();
}catch(NullPointerException n){
    fail();
}

${objectUnderTest} o1 = new ${objectUnderTest}(${objectKey});
${objectUnderTest} o2 = new ${objectUnderTest}(${objectKey});

assertTrue(o1.hashCode() == o2.hashCode());
 

Tato šablona vytváří kód pro testování metody hashCode pro POJO objekty. Proměnné jsou uvozeny znakem $ a jejich název je uzavřen v složených závorkách. V této šabloně jsou definovány proměnné objectUnderTest a objectKey. Při použití šablony se definování hodnoty proměnné pronese do všech deklarací, bude vidět opodál.

Aktivace šablony

Pokud máme šablonu připravenou k použití, nic nám nebrání v jejím vyvolání v editoru kódu. Šablona se vyvolá zápisem jejího jména a stisknutím klávesové kombinace pro doplnění (ctrl + space).

Zobrazení vyvolání kontextové nabídky pro výběr šablony dle jejího jména.

Po vyvolání šablony se kolem proměnných vytvoří editovatelné boxy a přiřazení hodnoty do proměnné se pronese na všechna místa jejího užití, jak ukazuje následující obrázek (editována je proměnná objectUnderTest) .

Ukázka přiřazení hodnoty do proměnné a jejího pronesení.