如何从最近的启动下拉列表中删除无效的启动配置

时间:2014-11-04 11:48:50

标签: java eclipse eclipse-rcp eclipse-plugin

我目前正在开发一个Eclipse插件,它添加了自定义启动配置,这些配置链接到工作台中的某些资源。

背景:有时,基础资源会发生变化,导致启动配置无效,并且不应该可以运行

如何以编程方式从最近发布的下拉菜单中删除启动配置?

我的意思是这个向下的小箭头:

enter image description here

这将显示最近推出的所有最近的启动配置。

编辑:我目前正试图通过LaunchConfigurationManager访问历史记录,我似乎无法找到能告诉我在哪里可以获得正确实例的API,目前一切都为空。

SECOND EDIT:LaunchConfigurationManager是内部包的一部分,不应该使用它。

2 个答案:

答案 0 :(得分:1)

  

背景:有时,底层资源会发生变化,导致启动配置无效,并且不应该是可运行的

为什么要从历史记录中删除“无效”启动配置,否则保持原封不动?如果无效,请将其完全删除或修复。但这只是我的两分钱而不知道申请的细节。

如果您愿意承担风险并使用内部API,则应该可以通过LaunchHistory获取DebugUIPlugin.getDefault().getLaunchConfigurationManager()lgetLaunchHistory()

但您是否尝试立即删除并重新添加无效的启动配置,只是将其从历史记录中删除?

ILaunchConfigurationWorkingCopy workingCopy = launchConfig.getWorkingCopy();
workingCopy.delete();
ILaunchConfigurationType launchType = launchConfig.getType();
IContainer container = launchConfig.getFile() == null ? null : launchConfig.getFile().getParent();
ILaunchConfigurationWorkingCopy newLaunchConfig = launchType.newInstance( container, workingCopy.getName() );
// copy all attributes from 'launchConfig' to 'newLaunchConfig'
newLaunchConfig.doSave();

答案 1 :(得分:1)

为了反映删除Resource,需要将其与启动配置相关联,使用ILaunchConfigurationWorkingCopy.setMappedResources(IResource[])

之后,当您从工作区中删除此资源时(无论是否也在磁盘上),这将隐藏将此资源映射到它的启动配置。

我的解决方案是在所使用的performApply()

AbstractLaunchConfigurationTab方法中包含该方法调用

我找到此内容的ILaunchConfigurationWorkingCopy API的链接

P.S。现在,当资源被删除(但不是在磁盘上,您可以使用与普通Java启动配置相关的项目尝试),然后重新添加,启动配置将备份所有过去的详细信息