我想为标记指定一个自定义图标。遗憾的是,我选择的图标没有显示。
以下是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()
类的方法不会被调用。
关于如何使自定义标记图标发挥作用有什么想法吗?
绝望了,你的。
-Itay
Update
VonC 的解决方案几乎是正确的,除了你必须not指定org.eclipse.core.resources.problemmarker
作为标记的超类型。仅当我使用时才有效org.eclipse.core.resources.textmarker
as the only超类型。
See 错误 260909 https://bugs.eclipse.org/bugs/show_bug.cgi?id=260909“markerImageProviders扩展点不起作用”(阅读后发现这个线程 http://dev.eclipse.org/newslists/news.eclipse.platform/msg60675.html)
托德·克雷西 2009-01-21 07:32:38 美国东部时间
我们从来没有推动过这个 API,因为它有一些不灵活性,使得它通常不可使用 - 它是在早期编写的,以便为我们使用的 3 个严重性启用第一个标记视图,因此没有被标记支持使用这不是 API。
令人困惑的是我们有一个内部扩展点(我们通常不这样做
)但删除它可能会在没有警告的情况下伤害某人。
[伊泰编辑]
按照冯克的指示,我最终成功地让这件事成功了。
这是我的相关片段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>
Pitfalls
- 标记的超类型必须设置为
org.eclipse.core.resources.textmarker
。任何其他值都将阻止使用您的自定义图标。
- 当您在代码中创建标记时,请确保其严重性与中指定的严重性值相匹配
markerSeverity
属性位于org.eclipse.ui.editors.annotationTypes
扩展点。1
表示警告等。
- 确保在 build.properties 文件(或插件编辑器的“build”选项卡)中指定了图标文件夹
- 上面的声明只会指定一个自定义图标。如果您想自定义其他属性(概览标尺上的指示颜色等),请遵循以下示例here http://dev.eclipse.org/newslists/news.eclipse.platform/msg26505.html该解决方案基于此。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)