Как сгруппировать пользовательские маркеры в пользовательском представлении? - PullRequest
2 голосов
/ 07 апреля 2011

Я создаю подключаемый модуль eclipse, который проверяет код XML и XSL, применяя некоторые конкретные правила, и генерирует некоторые пользовательские маркеры ошибок (например: Error, Warning, Info ) в настраиваемом представлении ( называется PCC Маркеры ).

Я создаю свои маркеры так:

marker = resource.createMarker("pccplug.myMarker");
        marker.setAttribute(IMarker.MESSAGE, message);
        marker.setAttribute(IMarker.LINE_NUMBER, line);
        marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);

Вот мой plugin.xml:

<extension point="org.eclipse.ui.ide.markerSupport">
   <markerField class="pccplug.views.Recommendations" id="champRecommendations"
          name="Recommendations" /> 
   <markerContentGenerator id="pccplug.views.myCustomMarkerGenerator" 
          name="My Marker Generator">
     <markerTypeReference id="pccplug.coolMarker" /> 
     <markerFieldReference id="org.eclipse.ui.ide.severityAndDescriptionField"/> 
     <markerFieldReference id="org.eclipse.ui.ide.resourceField" /> 
     <markerFieldReference id="org.eclipse.ui.ide.pathField" /> 
     <markerFieldReference id="org.eclipse.ui.ide.locationField" /> 
     <markerFieldReference id="org.eclipse.ui.ide.markerType" /> 
     <markerFieldReference id="org.eclipse.ui.ide.priorityField" /> 
     <markerFieldReference id="champRecommendations" /> 
   </markerContentGenerator>
</extension>

Моя проблема в том, что все ошибки не сгруппированы, все они расположены одна за другой: Мой токовый выход

И я бы хотел, чтобы они были сгруппированы по категориям (например, SEVERITY или PRIORITY), как это уже имеет место в представлении задач: Мой желаемый результат

Как я могу создать эти группы маркеров (я перепробовал почти все MarkerField, Type, Group, но не смог этого сделать)?

Кто-нибудь знает, как это сделать?

1 Ответ

2 голосов
/ 07 апреля 2011

Ваш текущий и желаемый выходы одинаковы, так что, я думаю, вы уже достигли того, что вам нужно; -)

Вы должны указать defaultMarkerGrouping в вашем маркере ContentGenerator. Как в:

    <extension point="org.eclipse.ui.ide.markerSupport">
       <markerContentGenerator id="pccplug.views.myCustomMarkerGenerator" 
              defaultMarkerGrouping="org.eclipse.ui.ide.severity"
              name="My Marker Generator">

... others here ...
       </markerContentGenerator>
    </extension>
...