Tilføj startprogrammer til platformen

Din plugin kan tilføje startkonfigurationstyper til platformen vha. udvidelsespunktet org.eclipse.debug.core.launchConfigurationTypes. Dette udvidelsespunkt gør det muligt at erklære en konfigurationstype vha. en entydig id. Du skal sørge for en tilsvarende implementering af ILaunchConfigurationDelegate. Den delegerede er ansvarlig for at starte sin startkonfiguration i en bestemt tilstand. Du kan også vælge at implementere ILaunchConfigurationDelegate2, som forbedrer delegeringsgrænsefladen, så den delegerede kan afbryde en start, bygge relevante projekter i arbejdsområdet før en start og styre oprettelsen af det startobjekt, som bruges i en start.

Foruden at definere den delegerede kan du angive, hvilke starttilstande der understøttes af den delegerede, og et navn, som skal bruges, når startprogrammer af denne type vises for brugeren.

Følgende kodning viser, hvordan Java-værktøjer erklærer en Java-startkonfiguration til start af lokale Java-programmer:

<extension point = "org.eclipse.debug.core.launchConfigurationTypes">
<launchConfigurationType
   	   id="org.eclipse.jdt.launching.localJavaApplication"
	   name="%localJavaApplication"
	   delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate"
	   modes= "run, debug"
	   sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
       sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
   </launchConfigurationType>
 </extension>

Denne udvidelses definerer en startkonfigurations-delegeret, som kan bruges til at udføre eller udføre fejlfinding på programmer, som startes vha. den lokale Java-startkonfiguration.

Definér nye starttilstande

Vi har tidligere nævnt, at platformen definerer starttilstande for udførelse, fejlfinding eller profilfunktioner i et program. Disse tilstande defineres vha. udvidelsespunktetorg.eclipse.debug.core.launchModes. Dette udvidelsespunkt gør det muligt at erklære en starttilstand ved at definere dens strengtilstandsnavn og den etiket, der skal vises for brugeren som en beskrivelse af tilstanden. Følgende kodning viser definitionen på platformens tre standard-starttilstande:

<extension point="org.eclipse.debug.core.launchModes">
	<launchMode
		label="%run"
		mode="run">
	</launchMode>
	<launchMode
		label="%debug"
		mode="debug">
	</launchMode>
	<launchMode
		label="%profile"
		mode="profile">
	</launchMode>
</extension>   

Bemærk, at tilstanden ikke er knyttet til en bestemt startkonfigurationstype. Som tidligere nævnt forekommer denne tilknytning, når der angives en startdelegeret for en konfigurationstype.

Definér startdelegerede

Da starttilstande kan angives uafhængigt af startkonfigurationstyper, kan det forekomme, at nye tilstande defineres, som ikke implementeres af den oprindelige delegerede for en startkonfiguration. I dette tilfælde kan en plugin definere en startdelegeret, som implementerer en bestemt tilstand fo r en bestemt startkonfigurationstype. Det kan gøres vha. udvidelsespunktetorg.eclipse.debug.core.launchDelegates. Dette udvidelsespunkt gør det muligt at definere en startdelegeret, som implementerer de angivne tilstand for en given konfigurationstype. Følgende kodning viser, hvordan du kan definere en delegeret for profilfunktioner i et lokalt Java-program:

<extension point="org.eclipse.debug.core.launchDelegates">
<launchDelegate
   id="com.example.MyJavaProfileDelegate"
   delegate="com.example.MyJavaProfileDelegate"
   type="org.eclipse.jdt.launching.localJavaApplication"
   modes="profile">
  </launchDelegate>
</extension>   

Specifikationen af den delegerede minder om specifikationen under definition af enstartkonfiguration, bortset fra, at startkonfigurationstypen i dette tilfælde angives sammen med de understøttede tilstande. Som tidligere nævnt skal den delegerede implementere ILaunchConfigurationDelegate, og kan vælge at implementere ILaunchConfigurationDelegate2, som giver større kontrol over startsekvensen.

Andre referencer

Lift-off: Startstrukturen i Eclipse indeholder et fuldstændigt eksempel på definition af din egen starttype.