1

不确定它是 Eclipse 还是 Eclipse-plugin-dev 答案。

开源的 Nodeclipse项目plugin.xml 中定义了 .coffee 文件可以作为coffee,coffee --compileNode with monitor(有3 个定义的 LaunchShortcuts ) 启动。

第一次它工作正常,但随后的启动只重复以前的 LaunchType。我发现删除已保存的 LaunchConfiguration(从运行 -> 运行配置)将让它再次运行(然后仅作为这种类型再次运行)

有问题的代码是LaunchShortcut(见下面的代码片段),但是没有任何if检查,所以这个行为应该在 Eclipse org.eclipse.debug 模块中更深入。

保存的 LaunchConfiguration 如何覆盖 LaunchType ?

/**
* Launch an file,using the file information, which means using default
* launch configurations.
*
* @param file
* @param mode
*/
private void launchFile(IFile file, String mode) throws CoreException {
    // check for an existing launch config for the file
    String path = file.getFullPath().toString();
    ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
    ILaunchConfigurationType type = launchManager.getLaunchConfigurationType(Constants.LAUNCH_CONFIGURATION_TYPE_ID);
    ILaunchConfiguration configuration = createLaunchConfiguration(type, path, file);
    DebugUITools.launch(configuration, mode);
    // then execution goes in LaunchConfigurationDelegate.java launch() method
}

/**
* Create a new configuration and set useful data.
*
* @param type
* @param path
* @param file
* @return
* @throws CoreException
*/

private ILaunchConfiguration createLaunchConfiguration(ILaunchConfigurationType type, String path, IFile file) throws CoreException {
 String configname = file.getFullPath().toString().replace('/', '-');
 if(configname.startsWith("-")) {
 configname = configname.substring(1);
 }

 ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations(type);
 for(ILaunchConfiguration config : configs) {
 if(configname.equals(config.getName())) {
 return config;
 }
 }

 // create a new configuration for the file
    ILaunchConfigurationWorkingCopy workingCopy = type.newInstance(null, configname);
    workingCopy.setAttribute(Constants.KEY_FILE_PATH, path);
    setMoreAttributes(workingCopy);
    return workingCopy.doSave();
}

protected void setMoreAttributes(ILaunchConfigurationWorkingCopy workingCopy) {
// stub for extension
}

帮助!代码片段可能不足以回答问题,但引用文件和所有内容都在 Github 存储库中。提出了这个问题,因为我不确定是否有可能为同一个文件设置多个运行配置。然后代码片段根本不重要。

更新:看了一段时间plugin.xml 定义了 .coffee 文件可以启动,我注意到我实际上<configurationType id= "org.nodeclipse.debug.launch.LaunchConfigurationType" >在所有 5 种情况下都使用相同的。但是,为每次启动添加唯一的 LaunchConfigurationType id 并没有什么区别。

4

1 回答 1

0

您可以使用以下命令创建启动配置:

创建 Java 应用程序启动配置

也可以通过以下帮助设置启动组:

发射组

到这里为止,我很确定您对此有所了解,所以让我们继续前进;对于同一个文件,您可以有不同的启动配置,这是使用启动组工具处理的,我没有得到的是,如果您想要相同环境的不同配置。

同样在这里启动配置类型和在这里向平台添加启动器,您可以找到有关启动类型文件结构的信息

到这里结束Interface ILaunchConfigurationTabGroup是启动类型选项卡组的接口;

我在代码行中的建议:

<extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
   <launchConfigurationTabGroup 

        <"launchConfigurationType1"

        <"/launchConfigurationType1"> 

             <"launchConfigurationType2"

             <"/launchConfigurationType2">

       //and so on... 

   </launchConfigurationTabGroup>
 </extension>
于 2013-11-01T09:49:36.727 回答