我是学生,作为年度项目的一部分,我正在开发eclipse插件 我遇到了一个奇怪的问题,并试图将其修复2天:
我在plugin.xml
中添加了3种新类型的标记
对于我添加annotationTypes
的每个标记,对于每annotationType
我添加了markerAnnotationSpecification
我的目的是为背景线着色
在每个markerAnnotationSpecification
我都添加了不同的图标和不同的colorPreferenceValue
。
奇怪的是这个:
创建标记时,一切都很好,甚至显示图标(每个标记的图标不同),但每条标记的线条背景颜色相同。
我注意到每次都会进行最后一次markerAnnotationSpecification colorPreferenceValue
当我更改markerAnnotationSpecification
中plugin.xml
的顺序时,颜色更改为最后一个。
我不知道该怎么办?
此外,我进入首选项页面并更改了注释类型颜色 - 应用后我看到它将3注释类型颜色更新为相同颜色。
我不能添加更多(我不这么认为......)
我可以通过编程方式控制markerAnnotationSpecification.colorPreferenceValue
吗?如果是这样,怎么样?
我正在添加我的代码 - 也许你会看到我没看到的内容:
<extension id="BatonPassing.diff_marker_b"
name="SiteBDiffMarker"
point="org.eclipse.core.resources.markers">
<super type="org.eclipse.core.resources.textmarker"/>
<persistent value="true"/>
</extension>
<extension
point="org.eclipse.ui.editors.annotationTypes">
<type
name="diffAnnotationB"
super="org.eclipse.ui.workbench.texteditor.info"
markerType="BatonPassing.diff_marker_b">
<!--markerSeverity="0"-->
</type>
</extension>
<extension
point="org.eclipse.ui.editors.markerAnnotationSpecification">
<specification
icon = "icons/il.gif"
annotationType="diffAnnotationB"
verticalRulerPreferenceKey="highlight.rulers.vertical"
textPreferenceKey="highlight.text"
colorPreferenceKey="highlight.color"
highlightPreferenceKey="highlight.background"
textPreferenceValue="true"
textStylePreferenceValue="BOX"
overviewRulerPreferenceKey="highlight.rulers.overview"
presentationLayer="4"
highlightPreferenceValue="true"
label="DiffSiteB"
symbolicIcon="warning"
colorPreferenceValue="255,0,0"
verticalRulerPreferenceValue="true"
overviewRulerPreferenceValue="true"
textStylePreferenceKey="highlight.text.style" >
</specification >
</extension>
每个标记代码都相同,但ID,名称colorPreferenceValue
不是。
请帮帮我。非常感谢你 哈达
答案 0 :(得分:2)
对于每个markerAnnotation规范,colorPreferenceKey应该是唯一的。这应该可以解决你的问题。
答案 1 :(得分:1)
如果有人仍在努力解决这个问题。您需要将presentationLayer
属性更改为specification
下每个markerAnnotationSpecification
的单独属性。最好是使最高优先级的注释得到最小的数字,即1
,其余的从那里得到增量数字。
答案 2 :(得分:0)
在插件的Java代码中创建它们时,您确定要指定不同的标记ID类型字符串吗?只是一个健全检查...