Я пишу собственный редактор в Eclipse и просто интегрировал пользовательское распознавание ошибок. Теперь я столкнулся со странной проблемой: я могу добавить маркеры в мой редактор, которые отображаются нормально, я также могу удалить их во время работы редактора.
Что не работает: Когда я закрываю свой редактор, я хочу, чтобы маркеры исчезли / были удалены.
То, что я сейчас делаю, это
создание маркеров с переходным свойством, установленным следующим образом: marker.setAttribute(IMarker.TRANSIENT, true);
Это, похоже, ничего не меняет.
пытается удалить все аннотации через средства просмотра исходного кода модель-аннотации . Это не работает, потому что, когда я пытаюсь подключиться к своему методу dispose()
редактора или добавить DisposeListener
к моему textwidget * источника просмотра , просмотрщик источника уже был удален и getSourceViewer().getAnnotationModel();
возвращает null
.
Мой deleteMarkers
метод:
private void deleteMarkers() {
IAnnotationModel anmod = getSourceViewer().getAnnotationModel();
Iterator<Annotation> it = anmod.getAnnotationIterator();
while (it.hasNext()) {
SimpleMarkerAnnotation a = (SimpleMarkerAnnotation) it.next();
anmod.removeAnnotation(a);
try {
a.getMarker().delete();
} catch (CoreException e) {
e.printStackTrace();
}
}
}
Любая помощь приветствуется ^^