Java Eclipse插件自定义视图标记数
我创建了一个新的Eclipse插件,它安装了一个新视图。 经过一些操作后,我用标记填充此视图 该视图仅显示前100个标记,如下图所示: 我怎样才能增加100个标记的限制 下面是我如何实现该视图的: plugin.xml:Java Eclipse插件自定义视图标记数,java,eclipse,eclipse-plugin,marker,Java,Eclipse,Eclipse Plugin,Marker,我创建了一个新的Eclipse插件,它安装了一个新视图。 经过一些操作后,我用标记填充此视图 该视图仅显示前100个标记,如下图所示: 我怎样才能增加100个标记的限制 下面是我如何实现该视图的: plugin.xml: <extension id="code_presentation.marker" name="Code Presentation Markers" point="org.eclipse.core.resourc
<extension
id="code_presentation.marker"
name="Code Presentation Markers"
point="org.eclipse.core.resources.markers">
<persistent
value="true">
</persistent>
<super
type="org.eclipse.core.resources.textmarker">
</super>
<attribute
name="owner">
</attribute>
</extension>
<extension
point="org.eclipse.ui.editors.annotationTypes">
<type
markerSeverity="0"
markerType="code_presentation.marker"
name="code_presentation.marker.type">
</type>
</extension>
<extension
point="org.eclipse.ui.editors.markerAnnotationSpecification">
<specification
annotationType="code_presentation.marker.type"
colorPreferenceKey="code_presentation.marker.type.color"
colorPreferenceValue="255,255,0"
contributesToHeader="true"
highlightPreferenceKey="code_presentation.marker.type.highlight"
highlightPreferenceValue="false"
includeOnPreferencePage="true"
isGoToNextNavigationTargetKey="code_presentation.marker.type.nextnavigation"
isGoToNextNavigationTarget="true"
isGoToPreviousNavigationTargetKey="code_presentation.marker.type.previousnavigation"
isGoToPreviousNavigationTarget = "true"
icon="icons/Code_Presentation_Small.png"
label="Qac error marker"
overviewRulerPreferenceKey="code_presentation.marker.type.overview"
overviewRulerPreferenceValue="true"
presentationLayer="0"
textPreferenceKey="code_presentation.marker.type.text"
textPreferenceValue="false"
textStylePreferenceValue="BOX"
verticalRulerPreferenceKey="code_presentation.marker.type.ruler"
verticalRulerPreferenceValue="true">
</specification>
</extension>
<extension
point="org.eclipse.ui.views">
<view
class="code_presentation.markersview.MyCustomMarkersView"
icon="icons/Code_Presentation_Small.png"
id="code_presentation.markersview.customMarker"
name="Code Presentation Markers">
</view>
</extension>
<extension
point="org.eclipse.ui.ide.markerSupport">
<markerField
class="code_presentation.markersview.JustificationField"
id="code_presentation.markersview.Justificationfield"
name="Justification">
</markerField>
<markerContentGenerator
id="code_presentation.markersview.myCustomMarkerGenerator"
name="My Marker Generator">
<markerTypeReference
id="code_presentation.marker"/>
<markerFieldReference
id="org.eclipse.ui.ide.priorityField"/>
<markerFieldReference
id="org.eclipse.ui.ide.severityAndDescriptionField"/>
<markerFieldReference
id="org.eclipse.ui.ide.resourceField"/>
<markerFieldReference
id="org.eclipse.ui.ide.locationField"/>
<markerFieldReference
id="code_presentation.markersview.justificationfield"/>
</markerContentGenerator>
</extension>
限制是在org.eclipse.ui.internal.views.markers.MarkerContentGenerator
中设置的,但这是一个内部类,因此无法直接访问
唯一设置限制的是org.eclipse.ui.internal.views.markers.FiltersConfigurationDialog
,它也是内部的
您可以通过添加命令idorg.eclipse.ui.ide.configureFilters
的菜单贡献来显示此过滤器配置对话框
这是Problems View plugin.xml菜单定义的一部分,它链接到过滤器菜单:
您应该能够为视图执行类似的操作。限制在org.eclipse.ui.internal.views.markers.MarkerContentGenerator中设置,但这是一个内部类,因此无法直接访问
唯一设置限制的是org.eclipse.ui.internal.views.markers.FiltersConfigurationDialog
,它也是内部的
您可以通过添加命令idorg.eclipse.ui.ide.configureFilters
的菜单贡献来显示此过滤器配置对话框
这是Problems View plugin.xml菜单定义的一部分,它链接到过滤器菜单:
您应该能够为视图执行类似的操作。ExtendedMarkersView从PreferenceStore获取限制数。您必须更改该值
如果禁用MarkerView的限制,请编写如下代码:
IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(
IDEInternalPreferences.USE_MARKER_LIMITS, false);
IDEWorkbenchPlugin.getDefault().getPreferenceStore()
.setValue(IDEInternalPreferences.MARKER_LIMITS_VALUE, 200);
如果更改MarkerView的限制,请编写如下代码:
IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(
IDEInternalPreferences.USE_MARKER_LIMITS, false);
IDEWorkbenchPlugin.getDefault().getPreferenceStore()
.setValue(IDEInternalPreferences.MARKER_LIMITS_VALUE, 200);
注意:
当您更改PreferenceStore的值时,MarkerView的所有限制都将更改。
如果不想更改它,则必须自己重写ExtendedMarkersView#getStatusMessage
编辑:
在使用IDEWorkbenchPlugin
之前,将org.eclipse.ui.ide
包添加到plugin.xml
中所需的插件中
ExtendedMarkersView从PreferenceStore获取限制数量。您必须更改该值
如果禁用MarkerView的限制,请编写如下代码:
IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(
IDEInternalPreferences.USE_MARKER_LIMITS, false);
IDEWorkbenchPlugin.getDefault().getPreferenceStore()
.setValue(IDEInternalPreferences.MARKER_LIMITS_VALUE, 200);
如果更改MarkerView的限制,请编写如下代码:
IDEWorkbenchPlugin.getDefault().getPreferenceStore().setValue(
IDEInternalPreferences.USE_MARKER_LIMITS, false);
IDEWorkbenchPlugin.getDefault().getPreferenceStore()
.setValue(IDEInternalPreferences.MARKER_LIMITS_VALUE, 200);
注意:
当您更改PreferenceStore的值时,MarkerView的所有限制都将更改。
如果不想更改它,则必须自己重写ExtendedMarkersView#getStatusMessage
编辑:
在使用IDEWorkbenchPlugin
之前,将org.eclipse.ui.ide
包添加到plugin.xml
中所需的插件中
我们需要更多的信息。这是你写的观点吗?它是基于一些现有的观点吗?顶部的一行表示你有一个过滤器处于活动状态,它限制了内容。我已经更新了评论。如果有任何多余或必要的步骤,请告诉我。或者如果有更简单的方法来实现同样的目标。谢谢:)对不起,我更新了问题*而不是“评论”:我们需要更多的信息。这是你写的观点吗?它是基于一些现有的观点吗?顶部的一行表示你有一个过滤器处于活动状态,它限制了内容。我已经更新了评论。如果有任何多余或必要的步骤,请告诉我。或者如果有更简单的方法来实现同样的目标。谢谢:)对不起,我更新了问题*而不是“评论”:我已经理解了你的前两段。请您详细说明如何实现第三个目标?我是Eclipse插件开发的新手。我已经更新了问题图片链接,因为它们没有显示在我这边。我还是不明白你的建议。我已经把你的代码放在我的XML中,我没有注意到任何变化。我已经理解了你的前两段。请您详细说明如何实现第三个目标?我是Eclipse插件开发的新手。我已经更新了问题图片链接,因为它们没有显示在我这边。我还是不明白你的建议。我已经把你的代码放在我的XML中,我没有注意到任何更改。我已经更新了问题图片链接,因为它们没有显示在我的侧边。我到底应该在哪里调用该函数?我在构造函数中调用了它,但它无法识别IDEWorkbenchPlugin
。您可以从或方法调用它。我尝试了此操作,但无法识别IDEWorkbenchPlugin
。这就是为什么我问:)也许你没有在plugin.xml
中添加所需的插件。我编辑了答案。在E4中,另一种方法是将XML属性markerLimitEnabled=“false”添加到Application.e4xmi文件中persistedState->memento值的根“view”XML元素中。这样做的好处是只影响你的标记视图。我已经更新了问题图像链接,因为它们没有显示在我的侧边。我到底应该在哪里调用该函数?我在构造函数中调用了它,但它无法识别IDEWorkbenchPlugin
。您可以从或方法调用它。我尝试了此操作,但无法识别IDEWorkbenchPlugin
。这就是为什么我问:)也许你没有在plugin.xml
中添加所需的插件。我编辑了答案。在E4中,另一种方法是将XML属性markerLimitEnabled=“false”添加到Application.e4xmi文件中persistedState->memento值的根“view”XML元素中。这样做的优点是只影响标记视图。