Exempel - Java-redigerare
Introduktion
Exemplet för Java-redigeraren visar vilka standardfunktioner som finns för anpassade textredigerare. Det visar också hur du kan registrera en redigerare för ett filtillägg (.jav i det här fallet) och definiera en anpassad dokumentprovider för användning av redigeraren. Det här exemplet är bara avsett som demonstration. Java-redigeringssupport tillhandahålls av Eclipse Java-verktyg.
Koden i exemplet finns i insticksprogrammet org.eclipse.ui.examples.javaeditor
. Om du vill utforska koden rekommenderar vi att du importerar insticksprogrammet till arbetsytan.
Funktioner som visas i exempelredigeraren
-
syntaxmarkering
-
innehållshjälp som känner av innehållstypen (Javadoc och Java-kod)
-
kommunikation mellan innehållsdispositionsvy, dvs. urvalet föder redigerarens markeringsintervall
-
två olika presentationslägen
-
markera markeringsintervallet med hjälp av en visuell intervallindikator
-
avgränsa redigeraren så att bara text inom markeringintervallet visas (t.ex. visa en enda metod för en Java-klass)
-
markeringshantering
-
dokumentdelning
Funktioner som inte visas
-
innehållsformatering
-
dynamisk synkronisering av sidan för innehållets disposition
Köra exemplet med Java-redigeraren
-
Skapa ett projekt
-
Skapa en fil med filtillägget ".jav" i det nyligen skapade projektet.
Javas exempelredigerare öppnas automatiskt.
-
Infoga Java-kod. Java-koden färgas dynamiskt. Exempelredigeraren presenterar följande språkelement i olika färger: flerradskommentarer, enkelradskommentarer, reserverade ord i Java-språket, sträng- och teckenkonstanter, vanlig Java-kod samt flerradskommentarer enligt riktlinjer i Javadoc. Inuti dessa Javadoc-kommentarer är Javadoc-nyckelord (gröna) och HTML-märkord (grå) färgade på annat sätt.
-
Öppna en ny Java flerradskommentar genom att infoga "/*" utanför en Java-kommentar.
All text mellan infogade "/*" och den första förekomsten av "*/" eller slutet av texten byter färg till röd. Lägg till ytterligare en "*". Den röda färgen ändras till svart eftersom den vanliga flerradskommentaren nu anses innehålla Javadoc. Anropa kodhjälp med CTRL-MELLANSLAG.
Funktionen med innehållshjälp är att stödja användaren vid skrivning av kod.
Vid anrop, visar innehållshjälpen alla möjliga giltiga kompletteringar vid anropsplatsen. Inuti Javadoc föreslår exempelredigeraren alltid alla Javadoc- nyckelord.
-
Utanför en Java-kommentar anropas innehållstips med CTRL+SKIFT+MELLANSLAG. Fem förslag visas. Välj ett och tryck på ENTER. Ett litet flytande rött fönster visas ovanför aktuell rad med valt förslag.
Innehållstips används för att användaren ska kunna uttrycka sin intention (t.ex. ange ett metodanrop) och sedan presentera kontextinformation som hjälper användaren att utföra den. I exempelredigeraren anses förslaget validera fem tecken runt den initiala anropsplatsen. Medan innehållstipset visas anropar du innehållshjälpen genom att trycka på CTRL+MELLANSLAG. Den innehållshjälp som anropas i den här situationen hjälper användaren att åstadkomma det hon vill, vilket fortfarande visas i innehållstipset. Inuti vanlig Java-kod föreslår exempelredigeraren alltid alla Java-nyckelord.
-
Spara Java-koden. När du sparar uppdateras innehållsdispositionsvyn. Innehållsdispositionsvyn innehåller tio poster, vilka var och en representerar en av tio segment med Java-kod i redigeraren. Alla segmenten har samma storlek. Den här typen av innehållsdispositionsvy
har valts för att visa att semantiken i markerade intervall kan definieras godtyckligt. (Se nästa steg.)
-
Välj någon av posterna i innehållsdispositionsvyn. Motsvarande rader markeras med ett blått streck i redigerarens vertikala linjal.
-
Växla nu till det segmenterade presentationsläge som finns i Java-redigeraren. Se till att redigeraren har fokus och tryck på den knapp i skrivbordets verktygsfält vars bubbelhjälp innehåller "Aktivera/avaktivera segmenterad källvisning".
Funktionen används för enstaka metodvyer och liknande.
-
Välj en annan post i innehållsdispositionsvyn. Nu visas bara markerat segment i redigeraren. Om du avmarkerar posten i innehållsdispositionsvyn visas åter hela Java-koden.
-
Markera en post i innehållsdispositionsvyn, markera en del av den synliga texten och lägg till en uppgift för markeringen. Uppgiften visas i uppgiftslistan.
Ändra den kod som visas. I uppgiftslistan markerar du den tidigare skapade uppgiften och trycker på knappen "Gå till fil". Uppgiften markeras i det visade området, med hänsyn taget till tidigare infogade ändringar.
-
Markera en annan post i innehållsdispositionsvyn. Visa den tidigare uppgiften i uppgiftslistan. Redigerarens markeringsintervall förstoras automatiskt så att intervallet för den visade uppgiften omfattas.
-
Öppna en ny arbetsyta. På den nya arbetstytan öppnar du en Java-redigerare för samma fil som på den ursprungliga arbetsytan. Ändra redigerarens innehåll. Byt tillbaka till den ursprungliga arbetsytan. I redigeraren visas de ändringar som gjorts på den andra arbetsytan. De två redigerarna som visar samma fil är länkade.
Principer för att skapa anpassade textredigerare
Följande steg behövs vanligen för att utveckla en egen textredigerare.
-
Skapa en dokumentprovider. En dokumentprovider (se IDocumentProvider) skapar och hanterar dokument (se IDocument) som innehåller en textrepresentation av redigerarens indataelement. Det är viktigt att bestämma hur översättningen mellan element och textrepresentation ska utföras och om dokumentprovidern ska delas mellan flera redigerare eller ej. Se klassen FileDocumentProvider i Java exempelredigerare.
-
Skapa en dokumentpartitioneringsfunktion. En dokumentpartitioneringsfunktion (se IDocumentPartitioner) delar ett dokument i regioner som inte är sammanhängande. Partitioneringsfunktionen tilldelar varje region en innehållstyp från en uppsättning innehållstyper som fördefinierats i funktionen. Vid varje dokumentändring måste dokumentets partitionering uppdateras. Se klassenJavaPartitioner i Java-exempelredigerare. Med JavaPartitioner bestäms regioner med typerna "flerradskommentarer", "Javadoc-kommentarer" och "allt övrigt". Du måste säkerställa att dokumentprovidern ställs in på varje dokument som skapas av dokumentprovidern.
-
Bestäm vilken av källvisningens insticksprogram som ska tillhandahållas. Bland andra hanterbara insticksprogram finns också strategier för automatiskt indrag, dubbelklickning, innehållsformatering och jämkningsfunktion för textpresentation. Efterföljande beskrivning begränsas till jämkningsfunktion för textpresentation (se IPresentationReconciler).
I Java-exempelredigeraren används jämkningsfunktion för textpresentation för att implementera syntaxmarkering.
-
Skapa rätt utökningar för alla användbara innehållstyper, för alla källvisningsinsticksprogram. Som visats ovan definieras användbara innehållstyper i dokumentpartitioneringsfunktionen. Standardimplementationen IPresentationReconciler kan använda IPresentationDamagers och IPresentationRepairers som utökningar.
Dessa utökningar anses vara specifika för en viss innehållstyp. För en anpassad redigerare måste användaren först välja en delmängd av användbara innehållstyper. Regioner av en typ i vald delmängd kommer t.ex. att syntaxmarkeras. För var och en av dessa typer måste utökningarna implementeras. Se JavaDamagerRepairer och JavaDocDamagerRepairer i exempelredigeraren.
-
Skapa en källvisningskonfiguration med hjälp av tidigare skapade insticksprogram och utökningar. Se JavaSourceViewerConfiguration i exempelredigeraren.
-
Anpassa någon av klasserna TextEditor eller AbstractTextEditor med den utvecklade dokumentpartitioneringsfunktionen och källvisningskonfigurationen. Lägg till eller ersätt åtgärder och anpassa konstruktionen av redigerarens kontextmeny. I den faktiska versionen måste den här anpassningen göras i en underordnad klass. Se JavaEditor i exempelredigeraren.
-
Ställ in en lämplig åtgärdsfältsbidragare som tillhandahåller redigeringsrelaterade åtgärder till skrivbordets verktygsfält och menyer. Se JavaActionContributor i exempelredigeraren.
-
Utöka XML-konfigurationsfilen för redigerarens insticksprogram så att redigeraren registreras vid fördefinierad utökningspunkt för redigerare för en viss uppsättning filtillägg. Ställ också in åtgärdsfältsbidragaren i XML-filen.
Se plugin.xml för det här exemplet.
Kodordning i exemplet
Java-redigerarens exempelkod ordnas i fyra paket:
-
org.eclipse.ui.examples.javaeditor
innehåller alla redigerarspecifika klasser.
-
org.eclipse.ui.examples.javaeditor.java
innehåller alla Java-specifika källvisningsinsticksprogram, t.ex. JavaDamagerRepairer samt Java-specifik dokumentpartitioneringsfunktion.
-
org.eclipse.ui.examples.javaeditor.javadoc
innehåller alla Javadoc-specifika källvisningsinsticksprogram, t.ex. JavaDocDamagerRepairer.
org.eclipse.ui.examples.javaeditor.util
innehåller praktiska klasser som delas av de tre andra paketen.