将启动器添加至平台

您的插件可以使用 org.eclipse.debug.core.launchConfigurationTypes 扩展点将启动配置类型添加至平台。 此扩展点允许您使用唯一标识声明配置类型。 必须在插件中提供相应的 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>

定义源定位器

对于支持调试方式的每种类型的启动配置,必须定义一种方式来查找与代码中的当前执行点相对应的源代码。ISourceLocatorIPersistableSourceLocator 定义一个接口,以从执行程序映射回源代码。

实现源定位器通常是为了使用相应的启动配置和启动配置代理。因为启动配置可能持续,所以可将源定位器与启动配置存储在一起。这是通过将启动配置的属性设置为源定位器的标识完成的。当从磁盘读取启动配置时,必须将源定位器的标识映射回实现类。这是通过使用 org.eclipse.debug.core.sourceLocators 扩展点完成的。

该扩展点允许您注册实现 IPersistableSourceLocator 的类并将其与将与启动配置存储在一起的标识相关联。这将允许调试插件在实例化启动配制时按标识查找源定位器类。

以下标记来自 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>

Copyright IBM Corporation and others 2000, 2003.