Java Eclipse标记是不可见的

Java Eclipse标记是不可见的,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,在添加自定义eclipse标记时,我遇到了一个奇怪的问题。场景是,在添加标记时,当资源(我需要添加标记)打开时,标记图标可见。但如果资源未打开,则会添加标记,但图标不可见 下面是我正在使用的一段代码 <extension id="HighPriority" name="High Priority problem" point="org.eclipse.core.resources.markers"> <persi

在添加自定义eclipse标记时,我遇到了一个奇怪的问题。场景是,在添加标记时,当资源(我需要添加标记)打开时,标记图标可见。但如果资源未打开,则会添加标记,但图标不可见

下面是我正在使用的一段代码

<extension
         id="HighPriority"
         name="High Priority problem"
         point="org.eclipse.core.resources.markers">
      <persistent value="true">
      </persistent>
      <super type="org.eclipse.core.resources.problemmarker"/>
      <super type="org.eclipse.core.resources.textmarker"/>
 </extension>

 <extension point="org.eclipse.ui.editors.annotationTypes">
      <type
         name="X.X.X.HighPriorityAnnotation"
         super="org.eclipse.ui.workbench.texteditor.warning"
         markerType="X.X.X.HighPriority"/>

 </extension>
 <extension point="X.X.X.markerAnnotationSpecification">
      <specification
            annotationType="X.X.X.HighPriorityAnnotation"
            icon="icons\img.gif"
       />

 </extension>
打开编辑器时,我还需要做其他事情吗


任何建议…?

您可以将您的代码与发布在
旧bug(Eclipse3.1)的上下文与您的不一样,但可以给您一些关于尝试什么的线索或想法。
您使用的是什么Eclipse和Java版本

从该错误报告中摘录:

此代码也可以正常工作

IWorkspaceRoot root=ResourcesPlugin.getWorkspace().getRoot();
IMarker[]markers=root.findMarkers(IMarker.PROBLEM,false,IResource.DEPTH_ZERO);
for(int i=0;i
之前,我已将代码转储到操作中。但在我用一个项目建设者替换它之后,它开始工作了


我不知道哪里出了问题:)

大家好,我正在使用Eclipse3.5和JDK5。提供的代码u将向IWorkspaceRoot添加标记??但我想在特定文件中添加标记。我试过那个代码,但没用。。。我怀疑我在Plugin.xml中遗漏了什么…@VinAy:我提供的代码只是我在bug报告中找到的代码的一个副本,没有必要根据您的上下文进行修改。这只是希望能给你一个关于一些可能缺失的元素的想法。如果您找到其他详细信息,我很感兴趣;)
IMarker marker = markerNode.getTargetFile().createMarker(markerNode.getPriority().getMarkerName());

Map<String, Object> attributes = new HashMap<String,Object>();
attributes.put(IMarker.LINE_NUMBER, markerNode.getLineNumber());
attributes.put(IMarker.SEVERITY, Integer.valueOf(IMarker.SEVERITY_WARNING));
attributes.put(IMarker.MESSAGE, markerNode.getMessage());
attributes.put(IMarker.PRIORITY, Integer.valueOf(IMarker.PRIORITY_HIGH));
marker.setAttributes(attributes);
IDE.openEditor(this.getSite().getPage(), marker, OpenStrategy.activateOnOpen());
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();

IMarker[] markers = root.findMarkers(IMarker.PROBLEM, false, IResource.DEPTH_ZERO);

for (int i = 0; i < markers.length; i++) {
  String message = (String) markers[i].getAttribute(IMarker.MESSAGE);

  if (message != null && message.startsWith("this is a test")) {
    markers[i].delete();
  }
}

//IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
Map attribs = new HashMap();
for (int i = 0; i < 8; i++) {
  attribs.put(IMarker.SEVERITY, new Integer(IMarker.SEVERITY_ERROR));
  attribs.put(IMarker.MESSAGE, "this is a test " + i);
  attribs.put("bogus field", "some text");
  MarkerUtilities.createMarker(root, attribs, IMarker.PROBLEM);
}