Eksempel - Java Editor
Innledning
Java Editor-eksempelet viser standardfunksjonene som er tilgjengelige for tilpassede tekstredigeringsprogrammer. Det
viser også hvordan du registrerer et redigeringsprogram for en filtype (i dette tilfellet .jav), og hvordan
du definerer en tilpasset dokumentleverandør som skal brukes av redigeringsprogrammet.Dette eksempelet er bare
ment som en demonstrasjon.Java-redigeringsstøtten gis av Java-verktøy for Eclipse.
Koden for dette eksempelet er i plugin-modulen org.eclipse.ui.examples.javaeditor
.
Hvis du skal utforske koden, anbefaler vi at du importerer plugin-modulen til arbeidsområdet.
Funksjoner som blir vist i eksempelredigeringsprogrammet
-
syntaksutheving
-
innholdstypeavhengig innholdshjelp (Javadoc og Java-kode)
-
kommunikasjon mellom innholdsdisposisjon og redigeringsprogram, det vil si at valg av innholdsdisposisjon
mater uthevingsområdet til redigeringsprogrammet
-
to forskjellige presentasjonsmoduser
-
markere uthevingsområdet med en visuell områdeindikator
-
begrense redigeringsprogrammet slik at det bare viser tekst i uthevingsområdet (for eksempel vise en enkelt
metode for en Java-klasse)
-
merkehåndtering
-
dokumentdeling
Funksjoner som ikke vises
-
innholdsformatering
-
dynamisk avstemming av innholdsdisposisjonssiden
Kjøre Java Editor-eksempelet
-
Opprette et prosjekt
-
Opprett en fil med filtypen ".jav" i et prosjekt som nettopp er opprettet.
Java Editor-eksempelet åpnes automatisk.
-
Sett inn Java-kode. Java-koden blir dynamisk farget. Eksempelredigeringsprogrammet
presenterer følgende språkelementer i forskjellige farger: flerlinjekommentarer,
enkeltlinjekommentarer, reserverte ord i Java-språk, streng- og tegnkonstanter, vanlig Java-kode og
flerlinjekommentarer som følger Javadoc-retningslinjene. I Javadoc-kommentarene har Javadoc-nøkkelord (grønne) og
HTML-kode (grå) forskjellige farger.
-
Åpne en ny Java-flerlinjekommentar ved å sette inn "/*" utenfor en Java-kommentar.
All teksten mellom "/*" som
er satt inn, og første forekomst av "*/" eller slutten av teksten, får fargen rød. Føy til en annen "*". Det
røde området får fargen svart igjen, ettersom den vanlige flerlinjekommentaren nå anses å inneholde
Javadoc. Start kodehjelp med CTRL-MELLOMROMSTAST.
Innholdshjelpens funksjon er å støtte brukeren i å skrive kode.
Ved aktivering skal innholdshjelpen vise alle mulige gyldige fullføringer ved aktiveringsstedet. I Javadoc foreslår
eksempelredigeringsprogrammet alltid alle Javadoc-nøkkelord.
-
Utenfor en Java-kommentar aktiverer du innholdstips ved hjelp av CTRL+SKIFT+MELLOMROMSTAST. Du får fem forslag. Velg
et og trykk på ENTER. Et lite, flytende rødt vindu blir vist over den gjeldende linjen og viser det valgte
forslaget.
Innholdstips blir brukt for at brukerne skal uttrykke hensikten (for eksempel ved å oppgi et
metodekall), og til å presentere kontekstinformasjon som rettleder brukerne når de gjør det. I
eksempelredigeringsprogrammet anses forslaget som gyldig fem tegn rundt det første aktiveringsstedet. Mens
innholdstipset er synlig, aktiverer du innholdshjelpen med CTRL+MELLOMROMSTAST. Innholdshjelp som er aktivert i
denne situasjonen, skal hjelpe brukeren til å oppnå den oppgitte hensikten, som fremdeles er synlig i
innholdstipset. I vanlig Java-kode foreslår eksempelredigeringsprogrammet alltid alle Java-nøkkelord.
-
Lagre Java-koden. Innholdsdisposisjonen blir oppdatert ved lagring. Innholdsdisposisjonen inneholder ti
oppføringer, og hver av dem representerer et av ti segmenter av samme størrelse i Java-koden til
redigeringsprogrammet. Denne innholdsdisposisjonsstilen er valgt for å vise at semantikken til uthevingsområdet kan
defineres tilfeldig. (Se de neste trinnene.)
-
Velg en av oppføringene i innholdsdisposisjonen. De tilsvarende linjene er merket med en blå stolpe i
redigeringsprogrammets loddrette linjal.
-
Bytt nå til Java-redigeringsprogrammets segmenterte presentasjonsmodus. Pass på at redigeringsprogrammet har
fokus, og trykk på knappen på skrivebordets verktøylinje der pekehjelpen sier "Enable/Disable segmented source viewer". Denne
funksjonaliteten blir brukt ved enkeltmetodevisninger og liknende funksjonalitet.
-
Velg en annen oppføring i innholdsdisposisjonen. Nå viser redigeringsprogrammet bare det valgte segmentet. Ved å
oppheve valget av oppføringen i den gjeldende innholdsdisposisjonen, blir den fullstendige Java-koden vist på nytt.
-
Velg en oppføring i innholdsdisposisjonen, velg en liten del av den synlige teksten og legg til en oppgave for
valget. Oppgaven blir vist på oppgavelisten.
Endre den synlige koden. På oppgavelisten velger du oppgaven som er
opprettet tidligere, og trykker på knappen "Gå til fil". Oppgaven blir valgt i det synlige området, og de tidligere
endringene blir tatt hensyn til.
-
Velg en annen oppføring i innholdsdisposisjonen. Vis oppgaven som tidligere er lagt til fra oppgavelisten. Redigeringsprogrammets
uthevingsområde blir automatisk utvidet slik at det omfatter området til den viste oppgaven.
-
Åpne et nytt arbeidsområde. I det nye arbeidsområdet åpner du et Java-redigeringsprogram for den samme filen som i
det opprinnelige arbeidsområdet. Endre redigeringsinnholdet. Bytt tilbake til det opprinnelige arbeidsområdet. Redigeringsprogrammet
viser endringene som er gjort i de andre arbeidsområdene. De to redigeringsprogrammene som viser samme fil, er
linket.
Prinsipper for å opprette tilpassede tekstredigeringsprogrammer
Trinnene nedenfor kreves vanligvis for å utvikle et tilpasset tekstredigeringsprogram.
-
Opprett en dokumentleverandør. En dokumentleverandør (se IDocumentProvider) produserer og administrerer dokumenter
(seIDocument) som inneholder en tekstfremstilling av inndataelementer for redigeringsprogrammet. Det er viktig å
bestemme hvordan oversettelsen mellom elementet og tekstfremstillingen skal utføres, og om dokumentleverandøren
skal deles mellom flere redigeringsprogrammer eller ikke. Se klassen FileDocumentProvider i
Java-eksempelredigeringsprogrammet.
-
Opprett en dokumentpartisjonerer. En dokumentpartisjonerer (se IDocumentPartitioner) deler et dokument i atskilte
regioner. Partisjonereren tildeler hver region en innholdstype fra et sett med innholdstyper som er
forhåndsdefinert av partisjonereren. Hver gang dokumentet endres, må dokumentets partisjonering oppdateres. Se
JavaPartitioner-klassen i Java-eksempelredigeringsprogrammet. JavaPartitioner bestemmer regioner av typen
"flerlinjekommentarer", "Javadoc-kommentarer" og "alt annet". Pass på at dokumentleverandøren er definert for hvert
dokument som er produsert av dokumentleverandøren.
-
Bestem hvilke av plugin-modulene for kildevisningsprogrammer som skal leveres. Plugin-modulene som støttes, er
blant annet strategier for automatisk innrykk, strategier for dobbeltklikk, innholdsformaterer og
tekstpresentasjonsavstemmer. Den etterfølgende beskrivelsen vil være begrenset til tekstpresentasjonsavstemmeren (se IPresentationReconciler).
I Java-eksempelredigeringsprogrammet blir tekstpresentasjonsavstemmeren brukt til å implementere syntaksutheving.
-
Opprett passende utvidelser for hver innholdstype som støttes, for alle plugin-moduler for kildevisninger. Som vist
over, definerer dokumentpartisjonereren innholdstypene som støttes. Standardimplementeringen av
IPresentationReconciler støtter IPresentationDamagers og IPresentationRepairers som utvidelser.
De utvidelsene
blir betraktet som spesifikke for en bestemt innholdstype. I et tilpasset redigeringsprogram må derfor brukeren
først velge et delsett for innholdstypene som støttes. Regionene i en type i det valgte delsettet vil for
eksempel bli syntaksuthevet. For hver av de typene må utvidelsene implementeres. Se JavaDamagerRepairer og
JavaDocDamagerRepairer i eksempelredigeringsprogrammet.
-
Bygg en konfigurasjon for et kildevisningsprogram ved hjelp av plugin-modulene og utvidelsene som tidligere er
opprettet. Se
JavaSourceViewerConfiguration i eksempelredigeringsprogrammet.
-
Tilpass klassen TextEditor eller AbstractTextEditor med den utviklede dokumentpartisjonereren og konfigurasjonen
for kildevisningsprogrammet. Legg til eller erstatt handlinger og tilpass konstruksjonen til redigeringsprogrammets
hurtigmeny. I den faktiske versjonen må denne tilpassingen gjøres i en subklasse. Se JavaEditor
i eksempelredigeringsprogrammet.
-
Konfigurer en passende handlingslinjebidragsyter som oppgir redigeringsprogramrelaterte handlinger på
skrivebordets verktøylinje og menyer. Se JavaActionContributor i eksempelredigeringsprogrammet.
-
Utvide XML-konfigurasjonsfilen i redigeringsprogrammets plugin-modul, slik at redigeringsprogrammet registrerer et
bestemt sett med filtyper ved det forhåndsdefinerte utvidelsespunktet. Du skal også konfigurerer
handlingslinjebidragsyteren i XML-filen.
Se plugin.xml i dette eksempelet.
Kodeorganisering i eksempelet
Koden i Java-redigeringsprogrameksempelet er organisert i fire pakker:
-
org.eclipse.ui.examples.javaeditor
inneholder alle de redigeringsprogramspesifikke klassene.
-
org.eclipse.ui.examples.javaeditor.java
inneholder alle Java-spesifikke plugin-moduler for
kildevisningsprogrammer, for eksempel JavaDamagerRepairer i tillegg til den Java-spesifikke dokumentpartisjonereren.
-
org.eclipse.ui.examples.javaeditor.javadoc
inneholder alle Javadoc-spesifikke plugin-moduler for
kildevisningsprogrammet, for eksempel JavaDocDamagerRepairer.
org.eclipse.ui.examples.javaeditor.util
inneholder bekvemmelighetsklasser som deles av de tre
andre pakkene.