プラグインは、org.eclipse.debug.core.launchConfigurationTypes 拡張ポイントを使用して、起動構成型をプラットフォームに追加することができます。 この拡張ポイントによって、固有 ID を使用して構成型を宣言できます。 ILaunchConfigurationDelegate の対応する実装を提供する必要があります。 代行者は、その起動構成を指定されたモードで起動することを担当します。 オプションで、代行インターフェースを拡張する ILaunchConfigurationDelegate2 を実装することにより、起動の中断、起動前のワークスペース内の関連プロジェクトのビルド、および起動で使用される起動オブジェクトの作成の制御を、代行者が行えるようになります。
代行者の定義に加えて、その代行者でサポートされる起動モード、およびこのタイプのランチャーをユーザーに示す場合に使用される名前を指定できます。
次のマークアップは、Java ツールが、ローカル Java プログラムを起動するための Java 起動構成を宣言する方法を示しています。
<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>
この拡張により、ローカルの Java 起動構成を使用して起動されたプログラムを実行またはデバッグする場合に使用できる、起動構成代行者が定義されます。
すでに説明したように、プラットフォームにより、プログラムの実行、デバッグ、またはプロファイル作成の各起動モードが定義されます。 これらのモードは、org.eclipse.debug.core.launchModes 拡張ポイントを使用して定義されます。 この拡張ポイントを使用すると、そのストリングのモード名、およびそのモードをユーザーに示すために使用されるラベルを定義することにより、起動モードを宣言できます。 以下のマークアップには、プラットフォームの 3 つの標準起動モードの定義が示されています。
<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>
モードは、特定の起動構成タイプには関連付けられていないことに注意してください。 前に示したように、その関連付けは、構成タイプに対して起動代行が指定されたときに発生します。
起動モードは起動構成タイプに関係なく指定できるため、起動構成のオリジナルの代行者によって実装されていない新規のモードが定義される可能性があります。 この場合は、プラグインにより、特定の起動構成タイプに対する特定のモードを実装した起動代行が定義されます。 これは、org.eclipse.debug.core.launchDelegates 拡張ポイントを使用して実行できます。 この拡張ポイントにより、特定の構成タイプに対して指定されたモードを実装する起動代行を定義できます。 以下のマークアップには、ローカル Java アプリケーションのプロファイル作成用の代行者を定義する方法が示されています。
<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>
この代行者の仕様は、起動構成タイプを定義する場合に実行される方法と類似していますが、この場合は、起動構成のタイプがサポートされているモードと共に指定されている点が異なります。 前に説明したように、代行者は ILaunchConfigurationDelegate を実装する必要があり、オプションで、起動シーケンスをさらに制御するため ILaunchConfigurationDelegate2 を実装できます。
We Have Lift-off: The Launching Framework in Eclipse には、独自の起動タイプを定義するための開始から終了までの例が提供されています。