您的外掛程式可以利用 org.eclipse.debug.core.launchConfigurationTypes 延伸點,將啟動配置類型新增至平台上。這個延伸點可讓您使用專屬 ID 來宣告配置類型。 您必須在外掛程式中提供 ILaunchConfigurationDelegate 的對應實作。您也可以指定您的啟動程式支援哪一種模式(執行及/或除錯),以及當顯示此一類型的啟動程式給使用者時,該用哪一個名稱。
下列的標記顯示 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"> </launchConfigurationType> </extension>
對每一個支援除錯模式的啟動配置類型來說,定義一個方式去尋找與在程式碼中現行執行點相對應的原始碼是重要的。ISourceLocator 和 IPersistableSourceLocator 定義了一個介面,將正在執行的程式對映回原始碼。
來源定位器通常被實作來使用一個對應的啟動配置和啟動配置委派。由於可以保留啟動配置,來源定位器可能也可以與啟動配置一同儲存。 這可透過將啟動配置的屬性設定到來源定位器的 ID 中來完成。當從磁碟中讀取啟動配置時, 來源定位器的 ID 必須被對映回實作類別。做法為使用 org.eclipse.debug.core.sourceLocators 延伸點。
延伸點允許您登錄實作 IPersistableSourceLocator 的類別並且建立與啟動配置一同儲存的 ID 的關聯性。這允許除錯外掛程式於建立啟動配置實例時,經由 ID 去查閱來源定位器類別。
下列的標記來自於 Java 工具開發:
<extension point = "org.eclipse.debug.core.sourceLocators"> <sourceLocator id = "org.eclipse.jdt.debug.ui.javaSourceLocator" class="org.eclipse.jdt.debug.ui.JavaUISourceLocator" name="%javaSourceLocator"/> </extension>
外掛程式使用名稱屬性和值將重要資料連同啟動配置儲存起來。由於所有的屬性解譯不被平台所辨識,所以提供延伸點來允許您為一特定的屬性提供一個比較函式。這個比較函式是被用來判定,這些擁有特定名稱的屬性是否相同。在很多案例中,java.lang.Object.equals(Object)所提供的簡單字串比較,適合用來比較屬性。如果沒有提供任何比較函式的話,就會使用這個方法。然而,有些屬性值可能需要特殊的處理,例如在比較是否相等時,必須先將空白部分抽離出本文。
比較函式是經由使用 org.eclipse.debug.core.launchConfigurationComparators 延伸點來提供。
Java 工具為程式原始檔路徑和類別路徑的比較提供了啟動配置比較函式。
<extension point = "org.eclipse.debug.core.launchConfigurationComparators"> <launchConfigurationComparator id = "org.eclipse.jdt.launching.classpathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.CLASSPATH"/> <launchConfigurationComparator id = "org.eclipse.jdt.launching.sourcepathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/> </extension>