我目前正在进行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
。我无法删除单个标记。您可以指点我的任何来源或参考吗?谢谢。
答案 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。