删除构建器中的特定IMarker

时间:2012-11-20 11:24:47

标签: eclipse eclipse-plugin eclipse-rcp

我目前正在进行Eclipse插件开发。我需要使用IMarker作为自定义构建器。我正在通过org.eclipse.core.resources.IMarker创建项目标记,并且我在两种不同情况下使用IMarker.PROBLEM

如何在不删除项目资源中的所有IMarker的情况下删除和刷新特定iMarker

我在delete()实现中尝试了IMarker方法。但它并没有帮助我。我发现项目中只有方法deleteMarkers()实际上删除了项目资源中可用的所有标记。

iProject.deleteMarkers(IMarker.PROBLEM, true,
                    IProject.DEPTH_INFINITE);
iProject.refreshLocal(IProject.DEPTH_INFINITE, null);

请帮助我完成此操作,我想在指定的情况下仅删除特定的IMarker。我无法删除单个标记。您可以指点我的任何来源或参考吗?谢谢。

1 个答案:

答案 0 :(得分:2)

基本上,您可以存储或查找特定标记。您可以在所选资源中查找标记(不是在项目上,而是在当前资源中):

IMarker[] problems = null;
int depth = IResource.DEPTH_INFINITE;
try {
   problems = resource.findMarkers(IMarker.PROBLEM, true, depth);
} catch (CoreException e) {
   // something went wrong
}

如果你有正确的标记,你可以1)通过设置其属性来更新它,或2)使用IMarker.delete()删除它。

此处使用的代码段来自Mark My Words tutorial