gpt4 book ai didi

java - eclipse : saved LaunchConfiguration overrides LaunchType

转载 作者:行者123 更新时间:2023-12-01 04:19:02 25 4
gpt4 key购买 nike

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

open-source Nodeclipse项目plugin.xml defines that .coffee file can be launched coffee , coffee --compileNode with monitor (有3 defined LaunchShortcuts)。

第一次它工作正常,但随后的启动仅重复以前的启动类型。我发现删除保存的 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 defines that .coffee file can be launched ,我注意到我实际上使用的是相同的 <configurationType
id= "org.nodeclipse.debug.launch.LaunchConfigurationType" >
在所有 5 种情况下。但是,为每次启动添加唯一的 LaunchConfigurationType id 没有什么区别。

最佳答案

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

Creating a Java application launch configuration

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

Launch Group

到目前为止,我很确定您已经了解了,所以让我们继续前进;您可以对同一个文件有不同的启动配置,这是使用启动组工具处理的,我不知道您是否想要在同一环境中使用这些不同的配置。

也在这里Launch Configuration Types在这里Adding launchers to the platform您可以找到有关启动类型文件的结构的信息

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

我在代码行中的建议:

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

<"launchConfigurationType1"

<"/launchConfigurationType1">

<"launchConfigurationType2"

<"/launchConfigurationType2">

//and so on...

</launchConfigurationTabGroup>
</extension>

关于java - eclipse : saved LaunchConfiguration overrides LaunchType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19157302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com