Příklad - Editor Java

Úvod

Příklad Editoru Java demonstruje standardní vlastnosti dostupné pro vlastní textové editory.  Také ukazuje, jak  zaregistrovat editor pro nějakou příponu souboru (v tomto případě .jav) a jak definovat vlastního Poskytovatele dokumentů pro použití daným editorem. Tento příklad je určen pouze pro předváděcí účely. Podporu úprav jazyka Java nabízí  nástroje Eclipse Java Tooling.

Kód pro tento příklad je v modulu plug-in org.eclipse.ui.examples.javaeditor. Chcete-li tento kód prozkoumat, doporučujeme naimportovat daný modul plug-in do vašeho pracovního prostoru.

Vlastnosti demonstrované v ukázkovém editoru

Vlastnosti, které demonstrovány nejsou

Spuštění ukázkového editoru Java

  1. Vytvořit projekt
  2. V nově vytvořeném projektu vytvořte soubor s příponou ".jav". Automaticky se otevře ukázkový editor Java.
  3. Vložte kód Java. Kód jazyka Java je dynamicky barevně značen. Ukázkový editor prezentuje v různých barvách následující prvky jazyka: víceřádkové komentáře, jednořádkové komentáře, rezervovaná slova jazyka Java, řetězcové a znakové konstanty, běžný kód Java a víceřádkové komentáře podle pokynů pro tvorbu dokumentace Javadoc. V těchto komentářích Javadoc jsou jinak barevně označena klíčová slova Javadoc (zeleně) a HTML značky (šedě).
  4. Otevřete nový víceřádkový komentář Java vložením "/*" mimo komentář Java. Veškerý text mezi vloženým "/*" a prvním výskytem "*/" nebo koncem textu změní barvu na červenou. Přidejte další "*". Červeně zbarvený úsek zčerná, protože je tento běžný víceřádkový komentář nyní považován za komentář obsahující dokumentaci Javadoc. Pomocí CTRL-SPACE vyvolejte usnadnění práce s kódem. Funkce obsahové asistence má uživatele podporovat při psaní kódu. Při vyvolání by proto měla obsahová asistence uvést v seznamu všechna možná platná dokončení v místě vyvolání. Uvnitř dokumentace Javadoc nabízí ukázkový editor vždy všechna klíčová slova Javadoc.
  5. Pomocí CTRL+SHIFT+SPACE vyvolejte obsahový tip mimo komentář Java. Je zde uvedeno pět návrhů. Jeden vyberte a stiskněte ENTER. Nad aktuálním řádkem se zobrazí malé červené plovoucí okno zobrazující vybraný návrh. Obsahové tipy se používají k tomu, aby uživatel vyjádřil svůj záměr (například zadat volání metody). Poté jsou uživateli předloženy kontextové informace, které mu pomohou jej uskutečnit. V ukázkovém editoru je návrh považován za platný pět znaků kolem místa počátečního vyvolání. Zatímco je obsahový tip viditelný, vyvolejte obsahovou asistenci pomocí CTRL+SPACE. Obsahová asistence vyvolaná v této situaci by měla uživateli pomoci dosáhnout deklarovaného záměru viditelného v obsahovém tipu. Uvnitř běžného kódu Java nabízí ukázkový editor vždy všechna klíčová slova Java.
  6. Uložte kód Java. Uložení aktualizuje prohlížeč osnovy obsahu. Prohlížeč osnovy obsahu obsahuje deset položek, z nichž každá představuje jeden z deseti stejně velikých segmentů kódu Java v editoru. Tento styl osnovy obsahu byl zvolen, aby ukázal, že je možné sémantiku rozsahů zvýraznění definovat podle svého. (Viz další kroky.)
  7. Vyberte jednu z položek v prohlížeči osnovy obsahu. Odpovídající řádky jsou v levém vertikálním pravítku editoru označené modrým pruhem.
  8. Nyní přepněte do režimu segmentovaných prezentací editoru Java. Abyste toho dosáhli, ujistěte se, že má editor fokus, a v panelu nástrojů pracovní plochy stiskněte to tlačítko, jehož plovoucí nápověda zní "Povolit/Nepovolit prohlížeč segmentovaného zdroje".  Tato funkčnost se používá pro pohledy s jednotlivými metodami a podobné funkce.
  9. Vyberte v prohlížeči osnovy obsahu jinou položku. Nyní editor zobrazuje pouze vybraný segment. Po zrušení výběru dané položky v prohlížeči osnovy obsahu bude znovu zobrazen celý kód Java.
  10. Vyberte v prohlížeči osnovy obsahu položku, vyberte úsek viditelného textu a přidejte úlohu pro daný výběr. Tato úloha se zobrazí v seznamu úloh. Upravte viditelný kód. V seznamu úloh vyberte dříve vytvořenou úlohu a stiskněte tlačítko "Přejít na soubor". Úloha je vybraná ve viditelné oblasti a správně zohledňuje předchozí úpravy.
  11. Vyberte v prohlížeči osnovy obsahu další položku. Ze seznamu úloh zobrazte dříve přidanou úlohu. Rozsah zvýraznění editoru se automaticky rozšíří, aby zahrnoval i rozsah zobrazené úlohy.
  12. Otevřete nový pracovní prostor. V tomto novém pracovním prostoru otevřete editor Java pro stejný soubor jako v původním pracovním prostoru. Upravte obsah editoru. Přepněte zpět do původního pracovního prostoru. Editor zobrazuje změny provedené v druhém pracovním prostoru. Tyto dva editory zobrazující stejný soubor jsou vzájemně propojeny.

Principy tvorby vlastních textových editorů

K vytvoření vlastního textového editoru jsou obvykle nutné následující kroky.
  1. Vytvořte poskytovatele dokumentů. Poskytovatel dokumentů (viz IDocumentProvider) produkuje a spravuje dokumenty (viz IDocument) obsahující textové znázornění vstupních prvků editoru. Je důležité rozhodnout se, jak bude vypadat převod mezi prvkem a textovým znázorněním a zda má být poskytovatel dokumentů sdílený několika editory či nikoli. Viz třída FileDocumentProvider v ukázkovém editoru Java.
  2. Vytvořte segmentovač dokumentů. Segmentovač dokumentů (viz IDocumentPartitioner) rozděluje dokument na samostatné oblasti. Každé oblasti přiřadí segmentovač jeden typ obsahu z množiny předdefinované segmentovačem. Segmentaci dokumentu je třeba aktualizovat při každé změně dokumentu. Viz třída JavaPartitioner v ukázkovém editoru Java. JavaPartitioner určuje oblasti "víceřádkových komentářů" tipů, "komentářů Javadoc" a "všeho ostatního". Musí být zajištěno, že bude poskytovatel dokumentů nastaven pro každý dokument vytvořený poskytovatelem dokumentů.
  3. Je třeba určit, který modul plug-in prohlížeče zdroje by měl být poskytován. Mezi dalšími podporovanými moduly plug-in jsou i strategie automatického odsazování, strategie poklepání, formátovač obsahu a sesouhlasovač textových prezentací. Následující popis se omezí na sesouhlasovač textových prezentací (viz IPresentationReconciler). V ukázkovém editoru jazyka Java se sesouhlasovač textových prezentací používá k implementaci zvýraznění syntaxe.
  4. Vytvořte pro všechny moduly plug-in prohlížečů zdroje příslušná rozšíření pro jednotlivé podporované typy obsahu. Jak je vidět výše, definuje segmentovač dokumentů podporované typy obsahu. Výchozí implementace třídy IPresentationReconciler podporuje rozšíření IPresentationDamager a IPresentationRepairer. Tato rozšíření se považují za specifická pro určitý typ obsahu. Proto musí uživatel u vlastního editoru nejprve vybrat podmnožinu podporovaných typů obsahu. Oblasti typu, který je členem vybrané podmnožiny, budou například zvýrazněné v syntaxi. Pro každý z těchto typů musí být implementovaná rozšíření. Viz JavaDamagerRepairer a JavaDocDamagerRepairer v ukázkovém editoru.
  5. Sestavte konfiguraci prohlížeče zdroje pomocí dříve vytvořených rozšíření a modulů plug-in. Viz JavaSourceViewerConfiguration v ukázkovém editoru.
  6. Přizpůsobit třídu TextEditor nebo AbstractTextEditor pomocí vytvořeného segmentovače dokumentů a konfigurace prohlížeče zdroje. Přidejte nebo nahraďte akce a upravte konstrukci kontextové nabídky editoru. V této verzi je třeba provést toto přizpůsobení v podtřídě. Viz JavaEditor v ukázkovém editoru.
  7. Nastavte odpovídajícího přispěvatele řádku s akcemi, který do panelu nástrojů a nabídek pracovní plochy přidává akce související s editorem. Viz JavaActionContributor v ukázkovém editoru.
  8. Rozšiřte konfigurační soubor XML modulu plug-in editoru tak, aby editor registroval na předdefinovaném bodu rozšíření editoru specifickou množinu přípon souborů. Také nastavte přispěvatele řádku s akcemi v souboru XML. Viz plugin.xml tohoto příkladu.

Uspořádání kódu v příkladu

Kód příkladu editoru Java je uspořádán ve čtyřech balíčcích: