Vores Services » Editorer og Views

Editorer og Views

Det primære fokus af RCP Kompagniet er udviklingen af plug-in'er til Eclipse platformen. Hovedparten af plug-in'er til Eclipse er centreret omkring editorer og views. Andre plug-in'er udvider den basale funktionalitet af eksisterende plug-in'er - for eksempel for specifikke editorer eller views.

Disse plug-in'er vil i princippet være brugbare i alle produkter der er baseret på Eclipse platformen, inklusiv produkter fra IBM, BEA og Genuitec. Læs mere….

Editorer og views er meget centrale elementer i Eclipse platformen og udviklingen af disse kan være relativt let til temmelig kompleks alt efter den ønskede funktionalitet.

Editorer

Til en vis grad er editorer hovedfunktionaliteten i Eclipse platformen. Det meste af kompleksiteten i Eclipse platformen er centreret omkring funktionaliteten af editorer. De fleste editorer er rene tekst editorer og en editor svarer normalt til en specifik kontekst type (for eksempel Java, XML, eller egenskaber). Dette er dog ikke et krav. En editor kan også være rent grafisk, den kan være præsenteret ved en liste eller kan behandle flere filer på en gang. Et eksempel på det sidste er plugin.xml editoren i PDE.

Nye editorer laves normalt til interne sprog der er vigtige i udviklingsmiljøet.

For et ikke-trivielt sprog, er der et klart forhold mellem funktionaliteten og den øgede produktivitet. Den typiske Eclipse editor har et antal funktioner der vises i listen nedenfor.

Syntaks baseret farvning
Dette er muligheden for at farve forskellige dele af teksten i en editor baseret på den syntaktiske mening. For får eksempel strenge, kommentarer, nøgleord får forskellige farver. Den grad af syntaks baseret farvning der kan laves afhænger meget af sproget - hvis for eksempel et nøgleord kan bruges som et navn kan det være svært at fortage en god farvning i mange tilfælde.
Syntaksanalyse samt rapportering af problemer (i "Problems" view)
Teksten i editoren bliver syntaksanalyseret med en meget "tilgivende" parser der bygger et abstrakt syntaks træ (AST) som resultatet. Dette AST er essentiel for meget af den funktionalitet der er vist nedenfor. Som et biprodukt af syntaksanalysen, bliver alle syntaksfejl registreret i Eclipse platformen således at de bliver vist på det eksisterende "Problems" view.
Semantisk analyse af AST'en
Når teksten fra en editor er blevet helt analyseret, bliver den resulterende AST analyseret yderligere for at finde semantiske fejl. Disse kan være så simple som udefinerede navne men også komplekse som konstanter med forkerte typer eller andre problemer der involverer mere end en sætning fra teksten.
Semantisk baseret farvning
Dette er en udvidelse af den syntaks baserede farvning, hvor farvningen af nøgleord (for eksempel navne) er baseret på den faktiske brug af disse navne (for eksempel hvorvidt det er en klasse, en variabel, en metode eller lign).
"Outline" view
De fleste ikke-trivielle sprog tillader indlejring af sætninger på en eller anden form – for eksempel i Java hvor metode erklæringer er indlejret i klasse erklæringer og i SQL hvor felt erklæringer er i tabel erklæringer. Den faktiske indlejring i en editor vises normalt i "Outline" viewet. Selv for sprog uden indlejring kan "Outline" viewet bruges til på let vis at navigere i editoren. "Outline" viewet kan udvides på forskellig vis med filtrering og sortering af elementerne viewet.
Foldning baseret på syntaks
Informationen om indlejring, der bruges i "Outline" viewet, kan også bruges til at supportere foldning i editoren. På denne måde er det muligt at skjule specifikke sektioner af teksten og således gøre det lettere at forstå resten af teksten. Foldningen kan også inkludere kommentarer og strenge hvis disse fylder en større del af teksten.
"Hover" hjælp
Hover hjælp er den hjælp der vises når musen er over et nøgleord der har noget tilhørende hjælp. Denne hjælp er oftest en kommentar der er defineret i sammenhæng med definitionen af nøgleordet. Hover hjælp inkluderer også ofte information om de relevante problemer der er fundet på dette sted i editoren.
Templates
Brugen af templates kan øge produktiviteten meget når teksten der editeres indeholder mange sektion der er meget ens. Det er muligt for brugeren at skabe nye templates efter behov. Templates kan indeholder forskellige variable, inklusiv variable, der er baseret på den specifikke position hvor templates indsættes i teksten - for eksempel navnet på den aktuelle klasse i Java.
"Quick fixes"
Mange af de fejl der findes under syntaksanalysen af den efterfølgende semantiske analyse skyldes mindre og trivielle problemer og kan let rettes halv-automatisk. Trivielle eksempler er de fleste stavefejl (for eksempel manglede bogstaver i nøgleord) og manglende tegnsætning, men også mange situationer med manglede erklæringer af navne, konstanter med den forkerte type og lignende mere globale problemer.
Kontekst afhængig hjælp
Kontekst afhængig hjælp (Content Assist) er en udvidelse af "Quick Fixes" hvor der ikke behøver at være et problem på forhånd. Denne form for hjælp er primært beregnet til at hjælpe brugeren til at udføre korrekte ændringer af teksten i editoren. Eksempler er erklæring af nye variable eller metoder eller indsættelse af mulige methodenavne baseret på den aktuelle position i editoren.
Refaktorering
Refaktorering er en anden måde at lave korrekte ændringer af den eksisterende tekst i editoren. Et mere trivielt eksempel er at ændre en navn på tværs af flere filer (muligvis endda med forskellige sprog). Mere komplekse eksempler kan være at udtrække specifikke dele af teksten til en ekstern fil eller at ændre signaturen på en klasse eller metode.
Kontekst afhængig søgning
Eclipse platformen har en indbygget søgekommando der kan søge efter en specifik streng i et antal filer. Denne kommando kan udvides til kun at søge efter specifikke typer af information - såsom kun klassenavne eller metodenavne.
Præferencesider
Meget af den ovenstående funktionalitet kan blive udført på flere forskellige måder og i nogle tilfælde er det formålstjenlig at tillade brugeren at tilpasse den nøjagtige opførelse. Dette gøres via præferencesider. Korrekte præferencesider tillader brugeren at søge efter specifikke optioner blandt alle siderne. 

Funktionaliteten af en editor kan deles blandt simple funktionalitet og den mere komplekse funktionalitet afhængigt af om det er nødvendigt at syntaksanalysere teksten eller ej.

Views

I Eclipse bliver views oftest brugt til at vise ikke-modal information. De fleste views er bundet til en specifik type af editor og viser information om den aktive editor. Andre views viser global information der omhandler hele Eclipse platformen eller nogle løbende opgaver.

Følgende er nogle af de mere vigtige views i Eclipse platformen der alle kan udvides. 

Problems
Viser de fundne problemer og fejl. Dette view indehold nogle meget avancerede filter muligheder så antallet af viste fejl kan begrænses.
Outline
Viser strukturen af teksten af den aktive editor - for eksempel klasser, metoder og felter for Java.
Search
Viser resultaterne af de aktuelle søgninger. Igen kan resultaterne begrænses gennem filtrering.
Tasks
Viser identificerede opgaver i de åbne projekter. Som før kan filtrering bruges til at begrænse de viste elementer.

RCP Kompagniet har meget erfaring både i at konstruere nye views og i at udvide eksisterende views fra Eclipse platformen. 

plug-in'er kan også bruges til at integrere 3. parts applikationer i Eclipse platformen. Normalt er dette blot et specialtilfælde af ovenstående. Læs mere….

Relevante Kurser

Hvis du har brug for at udvikle en editor eller et view så se venligst vores kurser: RC0604 - Udvikling af Eclipse Plug-in'er og RC0605 - Avanceret Eclipse Plug-in Udvikling. Disse kurser gennemgår alle de nødvendige skridt til at udvikle en editor eller et view.