Eclipse PDE:如何获取IMarker类型的显示值
Eclipse PDE: how to get the display value of IMarker type
这看起来是一个简单的问题,但我没有从 google 那里得到任何想法。在 Eclipse IDE 中,当我使用 java 项目时,"Problems" 视图将动态显示错误和警告。我试图在我的 PDE 项目中包含一个类似的功能。我得到了 IMarker 对象
IMarker[] markers = ResourcesPlugin.getWorkspace().getRoot().findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
每个对象的类型都是 "org.eclipse.jdt.core.problem"。这是 IJavaModelMarker 中定义的 JAVA_MODEL_PROBLEM_MARKER 的常量值。在 IDE 的 "Markers" 视图中,它将显示为 "Java Problems"。我不确定如何获得 "org.eclipse.jdt.core.problem" 和 "Java Problems" 之间的映射?任何信息表示赞赏。谢谢
名称是使用 org.eclipse.jdt.core
插件中定义标记的扩展点的 'name' 属性声明的:
<extension id="problem" point="org.eclipse.core.resources.markers"
name="Java Problems">
<super type="org.eclipse.core.resources.problemmarker"/>
<super type="org.eclipse.core.resources.textmarker"/>
<persistent value="true"/>
<attribute name="id"/>
<attribute name="flags"/>
<attribute name="arguments"/>
<attribute name="categoryId"/>
</extension>
因此,要获得此值,您需要读取所有标记扩展点并找到您想要的那个:
IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(ResourcesPlugin.PI_RESOURCES,
ResourcesPlugin.PT_MARKERS);
IExtension [] extensions = point.getExtensions();
for (IExtension extension : extensions) {
String id = ext.getUniqueIdentifier();
if ("org.eclipse.jdt.core.problem".equals(id)) {
String label = ext.getLabel();
// TODO save the label
}
}
详情取自org.eclipse.ui.views.markers.internal.MarkerTypesModel
这看起来是一个简单的问题,但我没有从 google 那里得到任何想法。在 Eclipse IDE 中,当我使用 java 项目时,"Problems" 视图将动态显示错误和警告。我试图在我的 PDE 项目中包含一个类似的功能。我得到了 IMarker 对象
IMarker[] markers = ResourcesPlugin.getWorkspace().getRoot().findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
每个对象的类型都是 "org.eclipse.jdt.core.problem"。这是 IJavaModelMarker 中定义的 JAVA_MODEL_PROBLEM_MARKER 的常量值。在 IDE 的 "Markers" 视图中,它将显示为 "Java Problems"。我不确定如何获得 "org.eclipse.jdt.core.problem" 和 "Java Problems" 之间的映射?任何信息表示赞赏。谢谢
名称是使用 org.eclipse.jdt.core
插件中定义标记的扩展点的 'name' 属性声明的:
<extension id="problem" point="org.eclipse.core.resources.markers"
name="Java Problems">
<super type="org.eclipse.core.resources.problemmarker"/>
<super type="org.eclipse.core.resources.textmarker"/>
<persistent value="true"/>
<attribute name="id"/>
<attribute name="flags"/>
<attribute name="arguments"/>
<attribute name="categoryId"/>
</extension>
因此,要获得此值,您需要读取所有标记扩展点并找到您想要的那个:
IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(ResourcesPlugin.PI_RESOURCES,
ResourcesPlugin.PT_MARKERS);
IExtension [] extensions = point.getExtensions();
for (IExtension extension : extensions) {
String id = ext.getUniqueIdentifier();
if ("org.eclipse.jdt.core.problem".equals(id)) {
String label = ext.getLabel();
// TODO save the label
}
}
详情取自org.eclipse.ui.views.markers.internal.MarkerTypesModel