gpt4 book ai didi

java - Eclipse 插件 : Custom icon for a Marker

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:11 25 4
gpt4 key购买 nike

我想为标记指定自定义图标。遗憾的是,我选择的图标没有显示。

以下是 plugin.xml 文件的相关部分(项目 ID“x”):

<extension
id="xmlProblem"
name="XML Problem"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.problemmarker"/>
<persistent
value="true">
</persistent>
</extension>

<extension
point="org.eclipse.ui.ide.markerImageProviders">
<imageprovider
markertype="x.xmlProblem"
icon="icons/marker.png"
id="xmlProblemImageProvider">
</imageprovider>
</extension>

我还尝试指定一个类(实现 IMarkerImageProvider)而不是图标,但是没有调用该类的 getImagePath() 方法。

对如何使自定义标记图标起作用有什么想法吗?

绝望地,你的。

-意大利

更新

VonC 的解决方案非常正确,除了您必须指定 org.eclipse.core.resources.problemmarker 作为标记的父类(super class)型。它仅在我将 org.eclipse.core.resources.textmarker 用作唯一父类(super class)型时起作用。

最佳答案

参见 bug 260909 “markerImageProviders扩展点不起作用”(阅读后发现this thread)

Tod Creasey 2009-01-21 07:32:38 EST

We have never had the push to make this API because it has some inflexibility that made it generally not consumable - it was written early on to enable the first marker views for the 3 severities we use and as a result was not used by the markerSupport as it was not API.

It is confusing that we have an internal extension point (we don't generally dothat) but removing it would likely break someone without warning.

[由 Itay 编辑]

根据 Vonc 的指示,我最终成功地使这件事成功了。以下是我的 plugin.xml 中的相关片段(假设插件名称是 a.b.c)

  <extension point="org.eclipse.core.resources.markers"   
id="myMarker">
<super type="org.eclipse.core.resources.textmarker"/>
<persistent value="true"/>
</extension>

<extension point="org.eclipse.ui.editors.annotationTypes">
<type
super="org.eclipse.ui.workbench.texteditor.warning"
markerType="a.b.c.myMarker"
name="a.b.c.myAnnotation"
markerSeverity="1"/>
</extension>

<extension point="org.eclipse.ui.editors.markerAnnotationSpecification">
<specification
annotationType="a.b.c.myAnnotation"
icon="icons/marker.png"
verticalRulerPreferenceKey="myMarkerIndicationInVerticalRuler"
verticalRulerPreferenceValue="true"/>
</extension>

陷阱

  • 标记的父类(super class)型必须设置为org.eclipse.core.resources.textmarker。任何其他值都会阻止使用您的自定义图标。
  • 当您在代码中创建标记时,确保其严重性与 org.eclipse.ui.editors.annotationTypes 扩展的 markerSeverity 属性中指定的严重性值相匹配观点。 1表示警告等
  • 确保在您的 build.properties 文件(或插件编辑器的“构建”选项卡)中指定了图标文件夹
  • 上面的声明只会指定一个自定义图标。如果您想自定义其他属性(概览标尺上的指示颜色等),请按照 here 中的示例进行操作此解决方案基于此。

关于java - Eclipse 插件 : Custom icon for a Marker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com