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

Funksjoner som ikke vises

Kjøre Java Editor-eksempelet

  1. Opprette et prosjekt
  2. Opprett en fil med filtypen ".jav" i et prosjekt som nettopp er opprettet. Java Editor-eksempelet åpnes automatisk.
  3. 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.
  4. Å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.
  5. 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.
  6. 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.)
  7. Velg en av oppføringene i innholdsdisposisjonen. De tilsvarende linjene er merket med en blå stolpe i redigeringsprogrammets loddrette linjal.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. Å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.
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Bygg en konfigurasjon for et kildevisningsprogram ved hjelp av plugin-modulene og utvidelsene som tidligere er opprettet. Se JavaSourceViewerConfiguration i eksempelredigeringsprogrammet.
  6. 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.
  7. Konfigurer en passende handlingslinjebidragsyter som oppgir redigeringsprogramrelaterte handlinger på skrivebordets verktøylinje og menyer. Se JavaActionContributor i eksempelredigeringsprogrammet.
  8. 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: