Esimerkki - Java-muokkausohjelma
Johdanto
Java-muokkausohjelman esimerkki esittelee mukautettujen tekstinmuokkausohjelmien käytettävissä olevat vakiotuoteominaisuudet.Se myös näyttää, miten rekisteröidään muokkausohjelma tiedoston tunnisteelle (tässä tapauksessa tunnisteelle .jav) ja miten määritetään mukautettu asiakirjan toimittaja kyseisen muokkausohjelman käyttöön.Tämä esimerkki on tarkoitettu vain esittelytarkoituksiin.Eclipse Java Tooling -ympäristö tukee Java-muokkausta.
Tämän esimerkin koodi on org.eclipse.ui.examples.javaeditor
-lisäosassa.
Koodin tarkastelua varten on suositeltavaa tuoda kyseinen lisäosa työtilaan.
Esimerkkimuokkausohjelmassa esitetyt tuoteominaisuudet
-
syntaksin korostus
-
sisällönhallinnan aputoiminto, jossa sisällön tyyppi on merkitsevä (Javadoc ja Java-koodi)
-
sisällön jäsentelytoiminnon ja muokkausohjelman välinen yhteys eli sisällön jäsentelytoimintovalinta määrittää muokkausohjelman korostusalueen
-
kaksi erilaista esitystilaa
-
korostusalueen merkintä käyttämällä visuaalista alueilmaisinta
-
muokkausohjelman määritys sellaiseksi, että se näyttää vain tekstiä korostusalueella (se näyttää esimerkiksi Java-luokan yksittäisen metodin)
-
merkinnän käsittely
-
asiakirjan yhteiskäyttö
Tuoteominaisuudet, joita ei ole esitetty
-
sisällön muotoilu
-
sisällön jäsennyssivun dynaaminen sovitus
Java-esimerkkimuokkausohjelman ajo
-
Luo projekti.
-
Luo juuri luomaasi projektiin tiedosto, jolla on tunniste ".jav".
Java-esimerkkimuokkausohjelma avautuu automaattisesti.
-
Lisää Java-koodi. Java-koodi on väritetty dynaamisesti. Esimerkkimuokkausohjelma esittää seuraavat kielen elementit erivärisinä: moniriviset kommentit, yksiriviset kommentit, Java-kielelle varatut sanat, merkkijono- ja merkkivakiot, tavallinen Java-koodi sekä Javadoc-ohjeiden mukaiset moniriviset kommentit. Javadoc-avainsanat (vihreä) ja HTML-tunnisteet (harmaa) on merkitty eri väreillä näiden Javadoc-kommenttien sisällä.
-
Avaa uusi monirivinen Java-kommentti lisäämällä Java-kommentin ulkopuolelle merkintä "/*".
Kaikki teksti, joka on lisätyn merkinnän "/*" ja ensimmäisen merkinnän "*/" esiintymän tai tekstin lopun välillä, muuttuu punaiseksi. Liitä toinen "*". Punainen väri muuttuu mustaksi, koska tavallisen monirivisen kommentin katsotaan nyt sisältävän Javadoc-kommentin. Kutsu koodinhallinnan aputoiminto käyttämällä näppäinyhdistelmää CTRL+VÄLILYÖNTI.
Sisällönhallinnan aputoiminto tukee käyttäjää koodin kirjoituksessa.
Kun sisällönhallinnon aputoimintoa kutsutaan, se luetteloi kaikki kelvolliset täydennykset, jotka ovat mahdollisia kutsukohdassa. Javadoc-dokumentaation sisällä esimerkkimuokkausohjelma ehdottaa aina Javadoc-avainsanoja.
-
Kutsu sisältövihje Java-kommentin ulkopuolella näppäinyhdistelmällä CTRL+VAIHTO+VÄLILYÖNTI. Esiin tulee viisi ehdotusta. Valitse jokin niistä ja paina ENTER-näppäintä. Nykyisen rivin yläpuolelle tulee näkyviin pieni punainen irrallinen ikkuna, jossa näkyy valittu ehdotus.
Kun sisältövihjeitä käytetään, käyttäjä voi ilmaista aikomuksensa (joka voi olla esimerkiksi metodin kutsun syöttö). Sitten esitetään kontekstuaaliset tiedot, jotka ohjaavat käyttäjää. Esimerkkimuokkausohjelmassa kelvollinen ehdotus on viiden merkin sisällä alkuperäisestä kutsupaikasta. Kun sisältövihje on näkyvissä, kutsu sisällönhallinnan aputoiminto näppäinyhdistelmällä CTRL+VÄLILYÖNTI.
Tässä tilanteessa kutsuttu sisällönhallinnan aputoiminto auttaa käyttäjää tekemään aiotun asian, joka näkyy edelleen sisältövihjeessä. Tavallisen Java-koodin sisällä esimerkkimuokkausohjelma ehdottaa aina kaikkia Java-avainsanoja.
-
Tallenna Java-koodi. Tallentamalla voit päivittää sisällön jäsentelytoiminnon. Sisällön jäsentelytoiminto sisältää 10 merkintää, joista jokainen esittää yhtä kymmenestä samankokoisesta muokkausohjelmassa olevasta Java-koodin segmentistä. Tämän sisällön jäsentelytyylin avulla voidaan osoittaa, että korostusalueiden semantiikka voidaan määrittää sattumanvaraisesti. (Katso seuraavat kohdat.)
-
Valitse jokin merkinnöistä sisällön jäsentelytoiminnossa. Vastaavat rivit on merkitty sinisellä palkilla muokkausohjelman vasemmassa pystyviivaimessa.
-
Siirry nyt Java-muokkausohjelman segmentoidun esityksen tilaan. Varmista tätä varten, että muokkausohjelma on aktiivinen ja paina työpöydän työkalurivin painiketta, jonka koho-ohje ilmoittaa, että sillä voidaan ottaa käyttöön/poistaa käytöstä segmentoidun lähteen katseluohjelma.Tätä toimintoa käytetään yksittäisiä metodinäkymiä ja muita samankaltaisia toimintoja varten.
-
Valitse jokin toinen merkintä sisällön jäsentelytoiminnossa. Nyt muokkausohjelmassa näkyy vain valittu segmentti. Poistamalla valinnan merkinnän kohdalta sisällön jäsentelytoiminnossa saat jälleen esiin koko Java-koodin.
-
Valitse merkintä sisällön jäsentelytoiminnassa, valitse näkyvissä olevan tekstin osa ja lisää tehtävä valintaa varten. Tehtävä tulee näkyviin tehtäväluetteloon.
Muuta näkyvissä olevaa koodia. Valitse tehtäväluettelosta aikaisemmin luotu tehtävä ja napsauta Siirry tiedostoon -painiketta. Tehtävä on valittu näkyvissä olevalla alueella, ja siinä on otettu huomioon aikaisemmin tehdyt muutokset.
-
Valitse toinen merkintä sisällön jäsentelytoiminnossa. Tuo esiin aikaisemmin lisätty tehtävä tehtäväluettelosta. Muokkausohjelman korostusalue suurenee automaattisesti niin, että se sisältää esiin tuodun tehtävän alueen.
-
Avaa uusi työtila. Avaa uudessa työtilassa Java-muokkausohjelma samaa tiedostoa varten kuin alkuperäisessä työtilassa. Muuta muokkausohjelman sisältöä. Siirry takaisin alkuperäiseen työtilaan. Muokkausohjelma näyttää toisessa työtilassa tehdyt muutokset. Näiden kahden saman tiedoston näyttävän muokkausohjelman välillä on linkki.
Mukautettujen tekstinmuokkausohjelmien luonnin periaatteet
Seuraavat toimet ovat tavallisesti tarpeen mukautetun tekstinmuokkausohjelman kehittämisessä.
-
Luo asiakirjan toimittaja. Asiakirjan toimittaja (katso IDocumentProvider)
tuottaa ja käsittelee asiakirjoja (katso IDocument), jotka sisältävät muokkausohjelman syöttöelementtien tekstiesityksen. On tärkeää päättää, miten elementin ja tekstiesityksen välinen muunto tehdään ja pitääkö asiakirjan toimittaja määrittää yhteiskäyttöön useiden muokkausohjelmien kanssa vai ei. Katso luokkaa
FileDocumentProvider Java-esimerkkimuokkausohjelmassa.
-
Luo asiakirjan osiointitoiminto. Asiakirjan osiointitoiminto (katso IDocumentPartitioner)
jakaa asiakirjan erillisiin alueisiin. Osiointitoiminto määrittää kullekin alueelle sisältötyypin niistä sisältötyypeistä, jotka osiointitoiminto on määrittänyt etukäteen. Asiakirjan osiointi pitää päivittää jokaisen asiakirjamuutoksen yhteydessä. Katso Java-esimerkkimuokkausohjelmassa olevaa JavaPartitioner-luokkaa.
JavaPartitioner määrittää alueet, joiden tyyppi on "moniriviset kommentit", "Javadoc-kommentit" ja "kaikki muu". On varmistettava, että asiakirjan toimittaja on määritetty jokaisessa sen tuottamassa asiakirjassa.
-
Päätä, mikä lähdekoodin katseluohjelmalisäosa toimitetaan. Muissa tuetuissa lisäosissa on automaattisen sisennyksen strategiat, kaksoisnapsautusstrategiat, sisällön muotoilutoiminto ja tekstin esityksen yhdistämistoiminto. Seuraava kuvaus rajataan tekstin esityksen yhdistämistoiminnolle (katso IPresentationReconciler).
Java-esimerkkimuokkausohjelmassa tekstin esityksen yhdistämistoimintoa käytetään syntaksin korostuksen toteutukseen.
-
Luo kaikkia lähdekoodin katseluohjelmalisäosia varten sopivat tunnisteet jokaisen tuetun sisältötyypin osalta. Kuten edellä olevasta voidaan todeta, asiakirjan osiointitoiminto määrittää tuetut sisältötyypit. IPresentationReconciler-rajapinnan oletustoteutus tukee rajapintoja IPresentationDamager ja IPresentationRepairer tunnisteina.
Näitä tunnisteita pidetään jonkin tietyn sisältötyypin tunnisteina. Mukautettua muokkausohjelmaa varten käyttäjän täytyy siksi ensin valita tuettujen sisältötyyppien osajoukko. Esimerkiksi valitun osajoukon tyypin alueiden syntaksi korostetaan. Näiden jokaisen tyypin osalta tunnisteet on toteutettava. Katso esimerkkimuokkausohjelman JavaDamagerRepairer- ja JavaDocDamagerRepairer-lisäosia.
-
Kokoa lähdekoodin katseluohjelmakokoonpano käyttämällä aikaisemmin luotuja lisäosia ja tunnisteita. Katso esimerkkimuokkausohjelman JavaSourceViewerConfiguration-luokkaa.
-
Mukauta TextEditor- tai AbstractTextEditor-luokka kehitetyn asiakirjan osiointitoiminnon ja lähdekoodin katseluohjelman kokoonpanon avulla. Lisää tai korvaa toiminnot ja mukauta muokkausohjelman pikavalikon rakenne. Varsinaisessa versiossa mukautus täytyy tehdä aliluokassa. Katso esimerkkimuokkausohjelman JavaEditor-luokkaa.
-
Määritä sopiva toimintopalkin välittäjä, joka välittää muokkausohjelmaan liittyviä toimintoja työpöydän työkaluriville ja valikkoihin. Katso esimerkkimuokkausohjelman JavaActionContributor-luokkaa.
-
Laajenna muokkausohjelman lisäosan XML-kokoonpanotiedosto niin, että muokkausohjelma tekee rekisteröinnin ennalta määritetyssä muokkausohjelman laajennuspisteessä tietyn tiedostotunnistejoukon osalta. Määritä myös toimintopalkin välittäjä XML-tiedostoon.
Katso tämän esimerkin plugin.xml-tiedostoa.
Esimerkin koodirakenne
Java-muokkausohjelmaesimerkin koodi on järjestetty neljään seuraavaan pakettiin:
-
org.eclipse.ui.examples.javaeditor
sisältää kaikki muokkausohjelmakohtaiset luokat.
-
org.eclipse.ui.examples.javaeditor.java
sisältää kaikki Java-kohtaiset lähdekoodin katseluohjelmalisäosat, kuten JavaDamagerRepairer-lisäosan ja Java-kohtaisen asiakirjan osiointitoiminnon.
-
org.eclipse.ui.examples.javaeditor.javadoc
sisältää kaikki Javadoc-kohtaiset lähdekoodin katseluohjelmalisäosat, kuten JavaDocDamagerRepairer-lisäosan.
org.eclipse.ui.examples.javaeditor.util
sisältää lisäluokkia, joita myös kolme muuta pakettia käyttävät.