我目前正在开发一个Eclipse插件,它添加了自定义启动配置,这些配置链接到工作台中的某些资源。
背景:有时,基础资源会发生变化,导致启动配置无效,并且不应该可以运行
如何以编程方式从最近发布的下拉菜单中删除启动配置?
我的意思是这个向下的小箭头:
这将显示最近推出的所有最近的启动配置。
编辑:我目前正试图通过LaunchConfigurationManager访问历史记录,我似乎无法找到能告诉我在哪里可以获得正确实例的API,目前一切都为空。SECOND EDIT:LaunchConfigurationManager是内部包的一部分,不应该使用它。
答案 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启动配置相关的项目尝试),然后重新添加,启动配置将备份所有过去的详细信息